[Tuto] Installer SWAG en Docker ( Reverse Proxy )

MilesTEG1

Modérateur
Membre du personnel
À tous ceux qui utilisent le fail2ban intégré à SWAG.
J'ai un soucis, aucun de mes fichier .local dans le dossier jail.d n'est pris en compte...
Seul ce que j'ai mis dans le jail.local est pris en compte.
Comment ça se fait ?
Voilà ce que j'ai dans mon jail.local :
INI:
## Version 2020/05/10 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/jail.local
# This is the custom version of the jail.conf for fail2ban
# Feel free to modify this and add additional filters
# Then you can drop the new filter conf files into the fail2ban-filters
# folder and restart the container


##==============================================================================================
##                                                                                            ##
##       Sources utilisées pour personnaliser ce fichier et ceux dans les sous-dossiers       ##
##     https://www.linode.com/docs/guides/using-fail2ban-to-secure-your-server-a-tutorial/    ##
##                                                                                            ##
##                       https://www.linuxtricks.fr/wiki/print.php?id=40                      ##
##                                                                                            ##
##==============================================================================================



[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8 ::1
           10.0.0.0/8
           192.168.0.0/16
           172.16.0.0/12

# Changes the default ban action from "iptables-multiport", which causes issues on some platforms, to "iptables-allports".
banaction = %(banaction_allports)s

# "bantime.increment" allows to use database for searching of previously banned ip's to increase a
# default ban time
bantime.increment = true

# "bantime.maxtime" is the max number of seconds using the ban time can reach (doesn't grow further)
bantime.maxtime = 5w

# "bantime.factor" is a coefficient to calculate exponent growing of the formula or common multiplier
bantime.factor = 24

# "bantime" is the number of seconds that a host is banned.
bantime = 1h

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 24h

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

# ########################################
# eMail config
destemail = mon-email@gmail.com
dest = mon-email@gmail.com
sender = mon-email@gmail.com
sendername = Fail2Ban (SWAG)

# ban & send an e-mail with whois report and relevant log lines
# to the destemail.
action = %(action_mwl)s

# Notes.:  command executed on demand at the first ban (or at the start of Fail2Ban if actionstart_on_demand is set to false).
actionstart = printf %%b "Subject: [Fail2Ban (SWAG)] <name>: started on <fq-hostname>
              Date: `LC_ALL=C date +"%%a, %%d %%h %%Y %%T %%z"`
              From: <sendername> <<sender>>
              To: <dest>\n
              Hi,\n
              The jail <name> has been started successfully.\n
              Regards,\n
              Fail2Ban (SWAG)" | <mailcmd>

# Notes.:  command executed at the stop of jail (or at the end of Fail2Ban)
actionstop = printf %%b "Subject: [Fail2Ban (SWAG)] <name>: stopped on <fq-hostname>
             Date: `LC_ALL=C date +"%%a, %%d %%h %%Y %%T %%z"`
             From: <sendername> <<sender>>
             To: <dest>\n
             Hi,\n
             The jail <name> has been stopped.\n
             Regards,\n
             Fail2Ban (SWAG)" | <mailcmd>

# ########################################
backend = auto


[ssh]
enabled = true
port    = 99    # Valeur du port si changer, sinon ssh
filter  = sshd
logpath = /log/host_ssh_auth.log

[nginx-http-auth]
enabled  = true
filter   = nginx-http-auth
port     = http,https
logpath  = /config/log/nginx/error.log

[nginx-badbots]
enabled  = true
port     = http,https
filter   = nginx-badbots
logpath  = /config/log/nginx/access.log
maxretry = 2

[nginx-botsearch]
enabled  = true
port     = http,https
filter   = nginx-botsearch
logpath  = /config/log/nginx/access.log

[nginx-deny]
enabled  = false
port     = http,https
filter   = nginx-deny
logpath  = /config/log/nginx/error.log

[nginx-unauthorized]
enabled  = true
port     = http,https
filter   = nginx-unauthorized
logpath  = /config/log/nginx/unauthorized.log

Et exemple de fichier pour vaulwarden dans jail.d :
INI:
## /volume1/docker/swag_macvlan/fail2ban/jail.d/vaultwarden-auth.conf
## See : https://github.com/dani-garcia/vaultwarden/wiki/Fail2Ban-Setup#synology-dsm

## Version 2022/08/06
# Fail2Ban jail configuration for vaultwarden
# Requires modification to Vaultwarden's settings
# https://github.com/dani-garcia/vaultwarden/wiki/Logging#logging-to-a-file

[vaultwarden-auth]
enabled = true
port = 882,443,3012

# Doit correspondre au nom du fichier .conf dans le dossier filter.d
filter = vaultwarden-auth

banaction = %(banaction_allports)s
logpath = /var/log/vaultwarden.log
maxretry = 3
bantime = 14400
findtime = 14400


Merci pour le coup de main :)
 

MilesTEG1

Modérateur
Membre du personnel
@Poluxor @EVOTk
Salut,
J’ai réussi à faire fonctionner mes jails mais il a fallu que je mette le contenu des ../jail.d/*.local dans le ../jail.local après celles concernant nginx … sinon ça charge pas du tout…
Savez vous pourquoi ?
C’est quand même moins pratique d’aller chercher tout en bas du jail.local les infos à modifier que de prendre le fichier .local dédié…
 

Snulort

Nouveau membre
Bonsoir,

Tout d'abord un grand big up pour votre site et les multiples tuto que l'on peut trouver ici car je suis nouveau dans le domain des NAS (DS220+).
J'ai voulu suivre le tuto pour installer SWAG mais me voila devant un 1er problème.
En effet, j'ai suivit le tuto et la vidéo pour configurer le Nas pour qu'il soit accessible de l'extérieur (+ firewall) et j'ai choisi le DDNS synology.me mais je me rends contre que le tuto parle d'autre DNS.
Dois-je absolument changer de DNS ou il est possible de configurer SWAG sur une adresse xxx.synology.me.

Merci
 

Snulort

Nouveau membre
C'est re moi,

Je navigue sur la doc officielle: https://docs.linuxserver.io/general/swag
Mais je ne comprend pas vraiment la différence entre:
Create container via http validation
et
Create container via dns validation with a wildcard cert.

La seul chose que je vois c'est que via Create container via dns validation with a wildcard cert, le nom de domain est protégé, personne d'autre ne pourra ce le procurer.

Alors se pose la question du, je peux peut-être faire la config du tuto et utiliser soit duckDNS ou Cloudflare pour créer et valider mes sous domaine ?

Donc j'aurais xxx.synology.me gérer par synology pour le DDNS du NAS (accès au gui du DSM), et yyy.xxx.synology.me gérer par duck ou cloudflare pour mes sous domaine?

Est-ce que cela peut fonctionner?
 

EVOTk

Modérateur
Membre du personnel
Salut,
Dois-je absolument changer de DNS ou il est possible de configurer SWAG sur une adresse xxx.synology.me.
Je pense que c'est tout a fait faisable, par contre, je ne recommande pas spécialement l'utilisation d'un autre reverse proxy que celui intégré a DSM sur Synology. Il y a pas mal de limitation, comme par exemple, impossible de faire du fail2ban sans faire un montage d'ip virtuelle. L'idéal étant que le reverse proxy soit sur une autre machine.

Create container via http validation
et
Create container via dns validation with a wildcard cert.
la validation http ce fait via les ports 80 et 443, la validation dns, directement par injection de variable dans la configuration du dns.

Create container via dns validation with a wildcard cert
Le certificat wildcard permet de proteger avec 1 seul certificat, tout les sous domaine d'un domaine
 

MilesTEG1

Modérateur
Membre du personnel
Bonsoir ,
Alors j’ai fait je ne sais pas combien de tests avec le fail2ban de crasymax et celui intégré à swag.

Le fail2ban de crazy-max :​

Je peux envoyer des e-mails nativement (il y a ssmtp dans le conteneur et on lui passe des variables d’environnant pour le configurer)
Il va bien chercher les différents fichiers dans jail.d.
MAIS : tout ce que je mets dans la section DEFAULT de mon jail.local n’est absolument pas pris pour valeur par défaut pour les fichiers .local du jail.d ! Je suis donc obligé de faire du copier coller des paramètres pour l’e-mail, les durées de ban etc…
Toutes les prisons que je définie dans le jail.local ne sont pas prises en compte…
Pfff…


Le fail2ban intégré à SWAG :​

Je ne peux pas envoyer de mail directement sans modifier la commande de send mail dans un fichier sendmail-common.local (copie du .conf). Tout ça parce que ce conteneur (swag) n’inclue pas ssmtp…
Impossible de faire prendre en compte les fichiers .local dans le dossier jail.d… c’est comme s’ils n’existaient pas …
MAIS : la section DEFAULT semble garder les valeurs pour toutes les prisons qui suivent… les prisons définies dans ce jail.local sont bien prise en compte.

Purée que c’est lourd ce truc…

Je suis preneur de configuration pour l’envoi d’émail via sendmail sur un serveur smtp ovh (le mail inclus avec le nom de domaine que j’ai acheté), et aussi de celle pour le smtp d’infomaniak.
Czr aucun des réglages que j’ai tenté n’a fonctionné, tout du moins avec le f2b de crazy-max.

Sur ce , ++
 
Dernière édition:

Snulort

Nouveau membre
Je pense que c'est tout a fait faisable, par contre, je ne recommande pas spécialement l'utilisation d'un autre reverse proxy que celui intégré a DSM sur Synology. Il y a pas mal de limitation, comme par exemple, impossible de faire du fail2ban sans faire un montage d'ip virtuelle. L'idéal étant que le reverse proxy soit sur une autre machine.
Dois-je comprendre que le tuto n'est pas fait pour les NAS Synology ? ? car il possède son propre Reverse Proxy.
Il y a t'il un tuto dans le forum sur le Reverse Proxy du NAS Synology ?

1660890101435.png

Merci
 

EVOTk

Modérateur
Membre du personnel
Dois-je comprendre que le tuto n'est pas fait pour les NAS Synology ?
Il fonctionne sur Synology, pour l'avoir utiliser une paire de mois. Mais comme dit, je me suis retrouvé avec des limitation qui m'ont fait passer mon reverse sur une machine autre ( NUC ).
Apres le reverse proxy intégré a DSM n'est pas sans limitation non plus :)
 

Snulort

Nouveau membre
Il fonctionne sur Synology, pour l'avoir utiliser une paire de mois. Mais comme dit, je me suis retrouvé avec des limitation qui m'ont fait passer mon reverse sur une machine autre ( NUC ).
Apres le reverse proxy intégré a DSM n'est pas sans limitation non plus :)
Merci pour ces éclaircissements.
N'ayant pas d'autre machine, je vais regarder le reverse proxy proposé par Synology.
Merci pour le support. ?
 

MilesTEG1

Modérateur
Membre du personnel
Merci pour ces éclaircissements.
N'ayant pas d'autre machine, je vais regarder le reverse proxy proposé par Synology.
Merci pour le support. ?
@Snulort si tu as besoin d’aide , hésite pas à mettre un message dans la section synology, je maîtrise plutôt bien ce qu’on peut faire avec le RP de dsm ?
Je voulais tenter l’aventure swag pour avoir plus de contrôle sur le RP et les entrées , car si tu utilises Vaultwarden tu verras qu’il faut utiliser un script qui modifie le fichier du RP dans le nas pour avoir les websocket notifications (pour synchroniser entre le serveur et les applis desktop et extensions navigateur, pas le mobile).
 

Snulort

Nouveau membre
@Snulort si tu as besoin d’aide , hésite pas à mettre un message dans la section synology, je maîtrise plutôt bien ce qu’on peut faire avec le RP de dsm ?
Je viens de remarquer que le tuto est dans la section "DIY - Fabriquer votre NAS vous-même" ?.
Merci pour le conseil et justement mes prochains sujets sont JellyFin et VaultWarden pour mon Syno.
 

MilesTEG1

Modérateur
Membre du personnel
Pour configurer l'utilisation de la geo-whitelist dans la configuration de votre proxy, il vous suffira de rajouter ces deux lignes :

Code:
if ($lan-ip = yes) { set $geo-whitelist yes; }
if ($geo-whitelist = no) { return 404; }
Exemple :
Code:
server {
listen 443 ssl;
listen [::]:443 ssl;

server_name some-app.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;

if ($lan-ip = yes) { set $geo-whitelist yes; }
if ($geo-whitelist = no) { return 404; }

location / {
[...]
Dans notre exemple, si l'ip du visiteur n'est pas française, alors une erreur 404 lui sera retourné.
@EVOTk
Dit, j'ai mis dans certains .conf une restriction d'ip comme ceci :
NGINX:
## ACL.IP-LAN.conf
# For my Synology DSM, I created an Access Control Profiles to restrict access only to LAN and VPN IP adresses
# This Access Control Profile is a file in the /etc/nginx/conf.d folder
# But for SWAG-Nginx, it must be with another file.

# Allow all from LAN IPs
allow 192.168.2.0/24;

# Allow all from VPNs IPs
allow 192.168.10.0/24;
allow 192.168.11.0/24;

# Deny all
deny all;
via une ligne : include /config/nginx/ACL.IP-LAN.conf;

Est-ce que ça va pas faire double emploi avec if ($lan-ip = yes) { set $geo-whitelist yes; } ??
À noter que j'utilise le mod Maxmind.
 

Poluxor

Nouveau membre
@EVOTk
Dit, j'ai mis dans certains .conf une restriction d'ip comme ceci :
NGINX:
## ACL.IP-LAN.conf
# For my Synology DSM, I created an Access Control Profiles to restrict access only to LAN and VPN IP adresses
# This Access Control Profile is a file in the /etc/nginx/conf.d folder
# But for SWAG-Nginx, it must be with another file.

# Allow all from LAN IPs
allow 192.168.2.0/24;

# Allow all from VPNs IPs
allow 192.168.10.0/24;
allow 192.168.11.0/24;

# Deny all
deny all;
via une ligne : include /config/nginx/ACL.IP-LAN.conf;

Est-ce que ça va pas faire double emploi avec if ($lan-ip = yes) { set $geo-whitelist yes; } ??
À noter que j'utilise le mod Maxmind.
Hello, j'ai pas encore pris le temps d'essayer. désolé.
 

MilesTEG1

Modérateur
Membre du personnel
@EVOTk
Bon voilà, j'ai finalisé mes configurations de services qui passent par le reverse proxy.
j'ai même ajouté des thèmes via les .conf de nginx. Voir ici :https://docs.theme-park.dev/setup/

J'ai thémé les applications suivantes :
  • tautulli
  • AdGuard Home
  • Portainer
  • calibre web
Je suis passé par la méthode des variables.
J'ajoute ces lignes à chaque fichier de configuration de service :
NGINX:
# THEME.PARK
set $theme dracula;
set $app bitwarden;
include /config/nginx/theme-park.conf;
Avec ceci pour le fichier theme-park.conf :
NGINX:
# File to be included in each .conf
# See : https://docs.theme-park.dev/setup/
proxy_set_header Accept-Encoding "";
sub_filter
'</head>'
'<link rel="stylesheet" type="text/css" href="https://theme-park.dev/css/base/$app/$theme.css">
</head>';
sub_filter_once on;

J'ai essayé aussi Vaultwarden, mais ça ne fonctionne pas à cause d'une histoire de Content-Security-Policy : https://docs.theme-park.dev/themes/bitwarden/#setup
Mais je ne trouve pas le fichier de configuration yml dont ils parlent puisque moi c’est Vaultwarden et pas Bitwarden, et si je met dans le .conf fR nginx pour Vaultwarden une ligne add_header ca ne fonctionne pas non plus…
J'ai tenté d'ajouter ceci au .conf :
NGINX:
add_header Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline' theme-park.dev;" always;
mais sans succès...

Si jamais quelqu'un avait une idée, je suis preneur ;)

Il me reste plus qu'à finaliser Crowdsec et Authellia.
 
Dernière édition:

Raphael3922

Nouveau membre
Bonjour,

Mon nas DIY est compose de :

Processeur : Amd Athlon II X2 215
Ram : 4Go
Stockage : 2 DD de 6To
Os : OMV 5.6.26-1 (je sais qu'il faut que je passe a la V6)

Sur mon reseau local mon nas a pour Ip 192.168.1.186 (sur lequel tourne openmediavault qui héberge (grâce a docker (nextcloud, nextclouddb, swag)) un nextcloud accessible par l'Url ar.duckdns.org/nextcloud

Mon nas est connecte a ma Freebox dont les ports sont rediriges comme suit :
80 (internet) vers : 12080 de la machine 192.168.1.186
443 (internet) vers : 12443 de la machine 192.168.1.186


J'ai utiliser portenair pour installer mes contenairs avec le code suivant :

Code:
version: "2"
services:
  nextcloud:
    image: ghcr.io/linuxserver/nextcloud
    container_name: nextcloud
    environment:
      - PUID=100 #change PUID if needed
      - PGID=100  #change PGID if needed
      - TZ=Europe/Paris #change Time Zone if needed
    volumes:
      - /srv/dev-disk-id-md-name-omvxxxtest-1storage2to/appdata/nextcloud/config:/config #/srv/dev-disk-by-label-disk1 needs to be adjusted
      - /srv/dev-disk-id-md-name-omvxxxtest-1storage2to/appdata/nextcloud/data:/data     #/srv/dev-disk-by-label-disk1 needs to be adjusted
    depends_on:
      - mariadb
    ports: # uncomment this and the next line if you want to bypass the proxy
      - 450:443
    restart: unless-stopped
  mariadb:
    image: ghcr.io/linuxserver/mariadb
    container_name: nextclouddb
    environment:
      - PUID=100 #change PUID if needed
      - PGID=100  #change PGID if needed
      - MYSQL_ROOT_PASSWORD=azerty  #change password
      - TZ=Europe/Paris #Change Time Zone if needed
    volumes:
      - /srv/dev-disk-id-md-name-omvxxxtest-1storage2to/appdata/nextclouddb:/config    #/srv/dev-disk-by-label-disk1 needs to be adjusted
    restart: unless-stopped
  swag:
    image: linuxserver/swag         #swag is the replacement for letsencrypt (see link below)
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=100 #change PUID if needed
      - PGID=100  #change PGID if needed
      - TZ=Europe/Paris # change Time Zone if needed
      - URL=nextcloud180122.duckdns.org #insert your domain name - yourdomain.url
      - SUBDOMAINS=www,
      - VALIDATION=http
      - EMAIL=rrr@gmail.com # define email; required to renew certificate
      - DOCKER_MODS=linuxserver/mods:swag-dashboard
    volumes:
      - /srv/dev-disk-id-md-name-omvxxxtest-1storage2to/appdata/swag:/config  #/srv/dev-disk-by-label-disk1 needs to be adjusted
    ports:
      - 12443:443
      - 12080:80
      - 81:81
    restart: unless-stopped

cela fonctionnait depuis plus d'un semestre et me permettais de me connecter depuis le web a nextcloud.

j'utilise le dashboard de Swag avec le port 81

Or jeudi dernier, plus d'acces depuis le web. Je rentre chez moi, je tente l'acces par l'URL ou par l'Ip adress a nextcloud et toujours pas d'acces, je tente plusieurs redemarages tant du server que des contenaires toujours aucuns acces ni par le web, ni par l'ip pour nextcloud et plus d'acces par Putty => je n'ai plus que l'acces a OMV et a Portenair. plus d'acces au Dashboard de Swag.

Voici les log de Swag :

Code:
To support the app dev(s) visit:
Certbot: https://supporters.eff.org/donate/support-work-on-certbot

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    100
User gid:    406
-------------------------------------

cont-init: info: /etc/cont-init.d/10-adduser exited 0
cont-init: info: running /etc/cont-init.d/20-config
cont-init: info: /etc/cont-init.d/20-config exited 0
cont-init: info: running /etc/cont-init.d/30-keygen
using keys found in /config/keys
cont-init: info: /etc/cont-init.d/30-keygen exited 0
cont-init: info: running /etc/cont-init.d/50-config
Variables set:
PUID=100
PGID=100
TZ=Europe/Paris
URL=nextcloud180122.duckdns.org
SUBDOMAINS=www,
EXTRA_DOMAINS=
ONLY_SUBDOMAINS=false
VALIDATION=http
CERTPROVIDER=
DNSPLUGIN=
EMAIL=rrrrrr@gmail.com
STAGING=

Using Let's Encrypt as the cert provider
SUBDOMAINS entered, processing
SUBDOMAINS entered, processing
Sub-domains processed are:  -d www.nextcloud180122.duckdns.org
mail address entered: rrrrrr@gmail.com
http validation is selected
Certificate exists; parameters unchanged; starting nginx
cont-init: info: /etc/cont-init.d/50-config exited 0
cont-init: info: running /etc/cont-init.d/60-renew
The cert does not expire within the next day. Letting the cron script handle the renewal attempts overnight (2:08am).
cont-init: info: /etc/cont-init.d/60-renew exited 0
cont-init: info: running /etc/cont-init.d/70-templates
cont-init: info: /etc/cont-init.d/70-templates exited 0
cont-init: info: running /etc/cont-init.d/90-custom-folders
cont-init: info: /etc/cont-init.d/90-custom-folders exited 0
cont-init: info: running /etc/cont-init.d/98-dashboard-config
Applying the SWAG dashboard mod...
**** Goaccess already installed and up to date ****
fetch http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
OK: 257 MiB in 228 packages
Applied the SWAG dashboard mod
cont-init: info: /etc/cont-init.d/98-dashboard-config exited 0
cont-init: info: running /etc/cont-init.d/99-custom-files
[custom-init] no custom files found exiting...
cont-init: info: /etc/cont-init.d/99-custom-files exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun cron (no readiness notification)
services-up: info: copying legacy longrun fail2ban (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
services-up: info: copying legacy longrun php-fpm (no readiness notification)
s6-rc: info: service legacy-services successfully started
s6-rc: info: service 99-ci-service-check: starting
[ls.io-init] done.
s6-rc: info: service 99-ci-service-check successfully started

Server ready
error: state file /config/log/logrotate.status is world-readable and thus can be locked from other unprivileged users. Skipping lock acquisition...
run-parts: /etc/periodic/weekly/libmaxminddb: exit status 1
No MaxMind license key found; exiting. Please enter your license key into /etc/libmaxminddb.cron.conf
No MaxMind license key found; exiting. Please enter your license key into /etc/libmaxminddb.cron.conf
run-parts: /etc/periodic/weekly/libmaxminddb: exit status 1
No MaxMind license key found; exiting. Please enter your license key into /etc/libmaxminddb.cron.conf
run-parts: /etc/periodic/weekly/libmaxminddb: exit status 1
s6-rc: info: service 99-ci-service-check: stopping
s6-rc: info: service 99-ci-service-check successfully stopped
s6-rc: info: service legacy-services: stopping
s6-svwait: fatal: supervisor died
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service 00-legacy: stopping
s6-rc: info: service 00-legacy successfully stopped
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/mods:swag-dashboard files to container
s6-rc-compile: fatal: unable to read /etc/s6-overlay/s6-rc.d/init-mods-package-install/type: No such file or directory
s6-rc: fatal: unable to take locks: No such file or directory
s6-linux-init-shutdownd: warning: /run/s6/basedir/scripts/rc.shutdown exited 111
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/mods:swag-dashboard files to container
[mod-init] linuxserver/mods:swag-dashboard at sha256:16c3afd16e5ce4b1720dfeaaddaa5d800ba49ff88844fe537d82643941a6df3e has been previously applied skipping
s6-rc-compile: fatal: unable to read /etc/s6-overlay/s6-rc.d/init-mods-package-install/type: No such file or directory
s6-rc: fatal: unable to take locks: No such file or directory
s6-linux-init-shutdownd: warning: /run/s6/basedir/scripts/rc.shutdown exited 111
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/mods:swag-dashboard files to container
[mod-init] linuxserver/mods:swag-dashboard at sha256:16c3afd16e5ce4b1720dfeaaddaa5d800ba49ff88844fe537d82643941a6df3e has been previously applied skipping
s6-rc-compile: fatal: unable to read /etc/s6-overlay/s6-rc.d/init-mods-package-install/type: No such file or directory
s6-rc: fatal: unable to take locks: No such file or directory
s6-linux-init-shutdownd: warning: /run/s6/basedir/scripts/rc.shutdown exited 111
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/mods:swag-dashboard files to container
[mod-init] linuxserver/mods:swag-dashboard at sha256:16c3afd16e5ce4b1720dfeaaddaa5d800ba49ff88844fe537d82643941a6df3e has been previously applied skipping
s6-rc-compile: fatal: unable to read /etc/s6-overlay/s6-rc.d/init-mods-package-install/type: No such file or directory
s6-rc: fatal: unable to take locks: No such file or directory
s6-linux-init-shutdownd: warning: /run/s6/basedir/scripts/rc.shutdown exited 111
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/mods:swag-dashboard files to container
[mod-init] linuxserver/mods:swag-dashboard at sha256:16c3afd16e5ce4b1720dfeaaddaa5d800ba49ff88844fe537d82643941a6df3e has been previously applied skipping
s6-rc-compile: fatal: unable to read /etc/s6-overlay/s6-rc.d/init-mods-package-install/type: No such file or directory
[mod-init] Attempting to run Docker Modification Logic
[mod-init] Applying linuxserver/mods:swag-dashboard files to container
[mod-init] linuxserver/mods:swag-dashboard at sha256:16c3afd16e5ce4b1720dfeaaddaa5d800ba49ff88844fe537d82643941a6df3e has been previously applied skipping
s6-rc-compile: fatal: unable to read /etc/s6-overlay/s6-rc.d/init-mods-package-install/type: No such file or directory


Je supprime la ligne du docker compose

Code:
- DOCKER_MODS=linuxserver/mods:swag-dashboard

et cela refonctionne correctement quelqu'un a une explication ?

Quelqu'un sait il comment remettre en place le Dashboarder de Swag ? svp merci

svp merci

cordialement,

Raphael 3922
 

EVOTk

Modérateur
Membre du personnel
Salut
Dans les logs tu semble indiquer un PUID/GUID de 100/406 tu est bien sur que c'est juste ?
 

Raphael3922

Nouveau membre
Bonjour,

Voici les derniers log que je viens d'extraire (nextcloud est actuellement accessible par le web) :

Code:
To support the app dev(s) visit:
Certbot: https://supporters.eff.org/donate/support-work-on-certbot

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    100
User gid:    406
-------------------------------------

cont-init: info: /etc/cont-init.d/10-adduser exited 0
cont-init: info: running /etc/cont-init.d/20-config
cont-init: info: /etc/cont-init.d/20-config exited 0
cont-init: info: running /etc/cont-init.d/30-keygen
using keys found in /config/keys
cont-init: info: /etc/cont-init.d/30-keygen exited 0
cont-init: info: running /etc/cont-init.d/50-config
Variables set:
PUID=100
PGID=100
TZ=Europe/Paris
URL=nextcloud180122.duckdns.org
SUBDOMAINS=www,
EXTRA_DOMAINS=
ONLY_SUBDOMAINS=false
VALIDATION=http
CERTPROVIDER=
DNSPLUGIN=
EMAIL=rrrrr@gmail.com
STAGING=

Using Let's Encrypt as the cert provider
SUBDOMAINS entered, processing
SUBDOMAINS entered, processing
Sub-domains processed are:  -d www.nextcloud180122.duckdns.org
E-mail address entered: rrrrrr@gmail.com
http validation is selected
Certificate exists; parameters unchanged; starting nginx
cont-init: info: /etc/cont-init.d/50-config exited 0
cont-init: info: running /etc/cont-init.d/60-renew
The cert does not expire within the next day. Letting the cron script handle the renewal attempts overnight (2:08am).
cont-init: info: /etc/cont-init.d/60-renew exited 0
cont-init: info: running /etc/cont-init.d/70-templates
cont-init: info: /etc/cont-init.d/70-templates exited 0
cont-init: info: running /etc/cont-init.d/90-custom-folders
cont-init: info: /etc/cont-init.d/90-custom-folders exited 0
cont-init: info: running /etc/cont-init.d/99-custom-files
[custom-init] no custom files found exiting...
cont-init: info: /etc/cont-init.d/99-custom-files exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun cron (no readiness notification)
services-up: info: copying legacy longrun fail2ban (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
services-up: info: copying legacy longrun php-fpm (no readiness notification)
s6-rc: info: service legacy-services successfully started
s6-rc: info: service 99-ci-service-check: starting
[ls.io-init] done.
s6-rc: info: service 99-ci-service-check successfully started
 
Server ready
error: state file /config/log/logrotate.status is world-readable and thus can be locked from other unprivileged users. Skipping lock acquisition...

Cordialement

Raphael 3922
 

pikeupe

Nouveau membre
slt

Déjà un grand merci pour ce tuto
petite question si je veux par exemple mon site portainer en local seulement
comment je dois faire ?
Pour mon installe j'ai suivi le tuto le tout sur un nuc

merci par avance de vos lumières
 

EVOTk

Modérateur
Membre du personnel
Salut,
Pour limiter l'utilisation du ndd aux ips locale, il te faut modifier ta config nginx comme ceci :

AVANT :
Code:
server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name portainer.ndd.fr;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;

        set $upstream_app <MON_IP>;
        set $upstream_port 9000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

}

APRES :

Code:
server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name portainer.ndd.fr;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;

        allow 10.0.0.0/8;
        allow 172.16.0.0/12;
        allow 192.168.0.0/16;                                                                                                                                                                             
        deny all;

        set $upstream_app <MON_IP>;
        set $upstream_port 9000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

}

allow 10.0.0.0/8; est nécessaire si tu utilise un VPN pour joindre le service ( comme OpenVPN )
allow 172.16.0.0/12; c'est la plage d'ip de Docker principalement
allow 192.168.0.0/16; représente ta plage d'ip local ( cela peut etre différent chez toi, mais en général toutes les box grand publix sont en 192.16.x.x donc cela devrai etre juste, sauf si tu as modifié toi meme )

deny all; indique qu'on interdit tout le reste.

Il reste aussi a avoir un DNS qui renvoi correctement l'IP local lors de l'intérogation du NDD. Tu peut le faire avec un DNS menteur comme piHole ou AdGuard, ou en modifiant le fichier hosts de ta machine.
 
Haut Bas