[Tuto] Installer SWAG en Docker ( Reverse Proxy )

Salut,
Tu indique bien le https en début d'adresse ?
Le cadenas reste barré ?

Tu as bien généré un certificat type wildcard ou alors indiqué tes sous-domaines pour la génération ?
 
Bonsoir,
je tente les notifications via Gotify, mais je ne reçois rien
je ne vois aucun problème dans les logs de swag.
Pouvez-vous m'aider?

Si besoin je peux fournir les fichiers de log.
 
Salut @elsalmon

Que te donne cette commande ?
Code:
docker exec -it swag sh /config/fail2ban/Fail2Gotify.sh start test test2

Dans ton terminal le resultat devrais etre :
1670870206614.png

Et dans Gotify :
1670869071674.png
 
Dernière édition:
En parlant de Gotify, je ne peux y prétendre compte tenu que j'ai un iPhone.
Y-a-t-il une autre manière d'avoir les notifications autrement que par email ? Des notifications à la gotify ? Même via un site web. Seul détail : faut que ce soit hébergé par mes soins :)
 
En parlant de Gotify, je ne peux y prétendre compte tenu que j'ai un iPhone.
Y-a-t-il une autre manière d'avoir les notifications autrement que par email ? Des notifications à la gotify ? Même via un site web. Seul détail : faut que ce soit hébergé par mes soins :)
On attend le tuto pour que je complète mon tuto SWAG 😘
 
  • J'aime
Réactions: MilesTEG et Nincha
On attend le tuto pour que je complète mon tuto SWAG 😘
Je crois me souvenir de cet article, qui m'avait hypé ^^
Cependant, je ne sais plus pourquoi je n'ai pas poursuivi la mise en place...
N'y avait-il pas un hic quelque part ?
 
Je remercie @EVOTk pour cet excellent tuto que j'essaye d'application car il n'y a pas de tuto en FR sur SWAG - je tente de le mettre en place sur un container linux (sur NUC/proxmox) afin de remplacer le reverse de mon DS918+. Merci aussi à @yarez0 pour sa participation en 1ere page.
 
@EVOTk Je me pose une question, que faut il faire côté NAS pour les services remplacés par SWAG ? Il y a bien un redondance inutile avec le Reverse Proxy intégré non ?
 
Bonjour,

je viens d'essayer d'installer swag sur une nouvelle install mais je ne comprend pas pourquoi je n'y est pas accès, voici mon stack :
le port 10443 est bien ouvert

version: "2.1" services: swag: image: linuxserver/swag #swag is the replacement for letsencrypt (see link below) container_name: swag labels: - com.centurylinklabs.watchtower.enable=true cap_add: - NET_ADMIN environment: - PUID=1000 #change PUID if needed - PGID=995 #change PGID if needed - TZ=Europe/Paris # change Time Zone if needed - DOCKER_MODS=linuxserver/mods:swag-dbip|linuxserver - URL=mondomaine.duckdns.org #insert your domain name - yourdomain.url - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=60xxxxxxxxxxxxxxxxxx - EMAIL=[EMAIL]monmail@gmail.com[/EMAIL] # define email; required to renew certificate volumes: - /srv/appdata/swag:/config #/srv/dev-disk-by-label-disk1 needs to be adjusted ports: - 10443:443 - 10081:81 restart: unless-stopped


Dans le log j'ai bien "server ready"

une idée ?
 
Dernière édition:
@moacc95
Pour que le code soit compréhensible (à cause des indentations super importantes en YAML), pourrais-tu utiliser la balise code suivante avec laquelle tu peux choisir le langage de programmation :
Voir la pièce jointe 7425
Ok, merci du conseil (je n'y pense jamais).
J'utilise portainer et ce genre d'eereur je les vois de suite d'habitude mais là je ne comprends pas pourquoi swag me dit "serveur ready" alors qu'il n'est pas accessible
 
J'ai finalement résolu mon problème en modifiant les ports. Mais je ne vois pas pourquoi ceux là ne fonctionnent pas.
C’est parce que le port 81 dans le conteneur n’existe pas donc le conteneur ne comprends pas ce que doit faire le port 81.
Dans la notation des ports : xxxx:yyyy
  • xxxx : correspond au port visible à l’extérieur du conteneur
  • yyyy : correspond au port à l’intérieur du conteneur, et celui la doit toujours correspondre à un port de la documentation du conteneur, pas un autre qui n’existe pas.
 
J'ai un problème avec swag qui me rend fou - je dois faire une boulette quelque part

- J'ai mon nom de domaine chez OVH - j'ai suivi le tuto sans trop de difficulté
- J'ai installé proxmox sur un NUC - IP figée par DCHP via mon routeur Unifi - IP: 192.168.0.90
- Sur ce NUC, J'ai installé
  1. un container linux (LXC) la plupart de mes dockers dont portainer, vaultwarden, gotify heimdall et swag- sur mon réseau, ce container linux prend une IP figée par DCHP via mon routeur Unifi - IP: 192.168.0.53
    • J'ai crée un MACVLAN pour le seul container swag - il prend l'IP 192.168.0.201 sur le réseau local
    • Swag est bien configuré car j'ai un "server ready" dans mes logs
    • Certains containers sont bien accessibles en local quand les ports sont spécifiés (par exemple gotify ou heimdall)
    • J'ai bien assigné le réseau "swag_default" aux containers pour lesquels j'ai une redirection
  2. un 2e container linux (LXC) Adguard - sur mon réseau, ce container linux prend une IP figée par DCHP via mon routeur Unifi - IP: 192.168.0.101 après avoir crée un macvlan.
    • Dans l'onglet "DNS rewrite" j'ai une ligne " *.NDD.FR" pointant vers l'IP SWAG - 192.168.0.201 et une seconde pointant vers mon NAS pour le NDD obtenu chez Synology
  3. une VM sur laquelle j'ai installée Home Assistant - IP figée par DCHP via mon routeur Unifi - IP: 192.168.0.194
Mon problème? j'accède bien à certaines redirections comme
  • Adguard via adguard.ndd.fr
  • ma VM via domotique.ndd.fr
  • mon interface Proxmox via nuc.ndd.fr
Mais pas à celles se trouvant sur le "localhost" (192.168.0.53) - avec une page blanche "502 - Bad Gateway".

Ce qui m'agace, c'est que tout semblait fonctionner hier sauf pour le container "Vaultwarden" avec une erreur de type 502 sur mon navigateur et portable.

Mon stack SWAG se présente ainsi
YAML:
version: "2.1"
services:
  swag:
    image: lscr.io/linuxserver/swag:latest
    container_name: swag
    networks:
        macvlan_net:
           ipv4_address: 192.168.0.201
    cap_add:
      - NET_ADMIN

    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - URL=NDD.fr
      - SUBDOMAINS=wildcard
      - VALIDATION=dns
      - DNSPLUGIN=ovh
      - EMAIL=XXX.XXXX@hotmail.com
      - DHLEVEL=2048
      - ONLY_SUBDOMAINS=false
      - STAGING=false
      - DOCKER_MODS=linuxserver/mods:swag-dashboard|linuxserver/mods:swag-crowdsec
      - CROWDSEC_API_KEY=XXXX
      - CROWDSEC_LAPI_URL=http://crowdsec:8080
    volumes:
      - /home/docker/swag/config:/config
    ports:
      - 443:443
#      - 80:80
    restart: unless-stopped

#  authelia:
#    image: authelia/authelia
#    container_name: authelia
#    environment:
#      - TZ=Europe/Paris
#    volumes:
#      - /home/docker/authelia/config:/config
#    restart: unless-stopped
    
  crowdsec:
    container_name: crowdsec
    image: crowdsecurity/crowdsec
    restart: unless-stopped
    environment:
      - COLLECTIONS=crowdsecurity/nginx
      - GID=1000
    depends_on:
      - swag
    volumes:
      - /home/docker/swag/config/log/nginx:/var/log/nginx
      - /home/docker/swag/crowdsec/acquis.yaml:/etc/crowdsec/acquis.yaml
      - /home/docker/swag/crowdsec/crowdsec-db:/var/lib/crowdsec/data/

      - /home/docker/swag/crowdsec/crowdsec-config:/etc/crowdsec/
    security_opt:
      - no-new-privileges=true

#  dashboard:
#    container_name: crowdsec-dashboard
#    image: crowdsec/dashboard
#    restart: unless-stopped
#    depends_on:
#      - crowdsec
#    ports:
#      - 3002:3000
#    environment:
#      - MB_DB_FILE=/data/metabase.db
#      - MGID=1000
#      - MUID=1000
#    volumes:
#      - /home/docker/swag/crowdsec/crowdsec-db:/metabase-data/

networks:
   macvlan_net:
      external: true

Pour Vaultwarden
YAML:
version: '3.3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    environment:
      WEBSOCKET_ENABLED: true  # Enable WebSocket notifications.
    restart: unless-stopped
    volumes:
      - /home/docker/vaultwarden/data:/data/

le fichier conf
YAML:
## Version 2022/09/08
# make sure that your dns has a cname set for vaultwarden and that your vaultwarden container is not using a base url
# make sure your vaultwarden container is named "vaultwarden"
# set the environment variable WEBSOCKET_ENABLED=true on your vaultwarden container

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

    server_name coffre.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 128M;

    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app vaultwarden;
        set $upstream_port 80;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/vaultwarden)?/admin {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app vaultwarden;
        set $upstream_port 80;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/vaultwarden)?/notifications/hub {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app vaultwarden;
        set $upstream_port 3012;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/vaultwarden)?/notifications/hub/negotiate {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app vaultwarden;
        set $upstream_port 80;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}
 

Pièces jointes

  • Vue Portainer.png
    Vue Portainer.png
    130 KB · Affichages: 12