[{"data":1,"prerenderedAt":2578},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-serveex-core-swag-":376,"-fr-serveex-core-swag--surround":2573},[4,16,93,261,270,331],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":15},"À propos","i-noto-star","\u002Ffr\u002Fabout","fr\u002F1.about",[10],{"title":11,"path":12,"stem":13,"icon":14},"Bienvenue","\u002Ffr\u002Fabout\u002Fwelcome","fr\u002F1.about\u002F1.welcome","i-lucide-home",false,{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":15},"Généralités","i-noto-open-book","\u002Ffr\u002Fgeneral","fr\u002F2.general",[22,26,44,58,75],{"title":17,"path":23,"stem":24,"icon":25},"\u002Ffr\u002Fgeneral\u002Fsummary","fr\u002F2.general\u002F1.summary","i-lucide-bookmark",{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":15},"Réseau","i-lucide-network","\u002Ffr\u002Fgeneral\u002Fnetworking","fr\u002F2.general\u002F2.networking",[32,36,40],{"title":33,"path":34,"stem":35},"NAT & DHCP","\u002Ffr\u002Fgeneral\u002Fnetworking\u002Fnat","fr\u002F2.general\u002F2.networking\u002F1.nat",{"title":37,"path":38,"stem":39},"Zone DNS","\u002Ffr\u002Fgeneral\u002Fnetworking\u002Fdns","fr\u002F2.general\u002F2.networking\u002F2.dns",{"title":41,"path":42,"stem":43},"Samba","\u002Ffr\u002Fgeneral\u002Fnetworking\u002Fsamba","fr\u002F2.general\u002F2.networking\u002F3.samba",{"title":45,"icon":46,"path":47,"stem":48,"children":49,"page":15},"Stockage","i-lucide-hard-drive","\u002Ffr\u002Fgeneral\u002Fstorage","fr\u002F2.general\u002F3.storage",[50,54],{"title":51,"path":52,"stem":53},"RAID","\u002Ffr\u002Fgeneral\u002Fstorage\u002Fraid","fr\u002F2.general\u002F3.storage\u002F1.raid",{"title":55,"path":56,"stem":57},"ZFS","\u002Ffr\u002Fgeneral\u002Fstorage\u002Fzfs","fr\u002F2.general\u002F3.storage\u002F2.zfs",{"title":59,"icon":60,"path":61,"stem":62,"children":63,"page":15},"Matériel","i-lucide-server","\u002Ffr\u002Fgeneral\u002Fhardware","fr\u002F2.general\u002F4.hardware",[64,68,71],{"title":65,"path":66,"stem":67},"Les bases","\u002Ffr\u002Fgeneral\u002Fhardware\u002Fbasics","fr\u002F2.general\u002F4.hardware\u002F1.basics",{"title":27,"path":69,"stem":70},"\u002Ffr\u002Fgeneral\u002Fhardware\u002Fnetwork","fr\u002F2.general\u002F4.hardware\u002F2.network",{"title":72,"path":73,"stem":74},"Le ProloNAS","\u002Ffr\u002Fgeneral\u002Fhardware\u002Fprolonas","fr\u002F2.general\u002F4.hardware\u002F3.prolonas",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":15},"Linux pour les nuls","i-lucide-terminal","\u002Ffr\u002Fgeneral\u002Flinux","fr\u002F2.general\u002F5.linux",[81,85,89],{"title":82,"path":83,"stem":84},"CLI pour les nuls","\u002Ffr\u002Fgeneral\u002Flinux\u002Fcli-basics","fr\u002F2.general\u002F5.linux\u002F1.cli-basics",{"title":86,"path":87,"stem":88},"Dossiers et partitions","\u002Ffr\u002Fgeneral\u002Flinux\u002Ffilesystem","fr\u002F2.general\u002F5.linux\u002F2.filesystem",{"title":90,"path":91,"stem":92},"Outils CLI pratiques","\u002Ffr\u002Fgeneral\u002Flinux\u002Fhandy-tools","fr\u002F2.general\u002F5.linux\u002F3.handy-tools",{"title":94,"icon":95,"path":96,"stem":97,"children":98,"page":15},"Serveex","i-noto-microscope","\u002Ffr\u002Fserveex","fr\u002F3.serveex",[99,103,125,143,169,187,201,215,233,247],{"title":100,"path":101,"stem":102,"icon":25},"Introduction","\u002Ffr\u002Fserveex\u002Fintroduction","fr\u002F3.serveex\u002F1.introduction",{"title":104,"icon":105,"path":106,"stem":107,"children":108,"page":15},"Cœur du serveur","i-lucide-server-cog","\u002Ffr\u002Fserveex\u002Fcore","fr\u002F3.serveex\u002F2.core",[109,113,117,121],{"title":110,"path":111,"stem":112},"Debian 13","\u002Ffr\u002Fserveex\u002Fcore\u002Finstallation","fr\u002F3.serveex\u002F2.core\u002F1.installation",{"title":114,"path":115,"stem":116},"Docker","\u002Ffr\u002Fserveex\u002Fcore\u002Fdocker","fr\u002F3.serveex\u002F2.core\u002F2.docker",{"title":118,"path":119,"stem":120},"Wireguard","\u002Ffr\u002Fserveex\u002Fcore\u002Fwireguard","fr\u002F3.serveex\u002F2.core\u002F3.wireguard",{"title":122,"path":123,"stem":124},"SWAG","\u002Ffr\u002Fserveex\u002Fcore\u002Fswag","fr\u002F3.serveex\u002F2.core\u002F4.swag",{"title":126,"icon":127,"path":128,"stem":129,"children":130,"page":15},"Sécurité","i-lucide-shield","\u002Ffr\u002Fserveex\u002Fsecurity","fr\u002F3.serveex\u002F3.security",[131,135,139],{"title":132,"path":133,"stem":134},"Cloudflare Zero Trust","\u002Ffr\u002Fserveex\u002Fsecurity\u002Fcloudflare","fr\u002F3.serveex\u002F3.security\u002F2.cloudflare",{"title":136,"path":137,"stem":138},"TinyAuth","\u002Ffr\u002Fserveex\u002Fsecurity\u002Ftinyauth","fr\u002F3.serveex\u002F3.security\u002F3.tinyauth",{"title":140,"path":141,"stem":142},"Pocket ID","\u002Ffr\u002Fserveex\u002Fsecurity\u002Fpocket-id","fr\u002F3.serveex\u002F3.security\u002F4.pocket-id",{"title":144,"icon":145,"path":146,"stem":147,"children":148,"page":15},"Monitoring","i-lucide-chart-no-axes-column","\u002Ffr\u002Fserveex\u002Fmonitoring","fr\u002F3.serveex\u002F4.monitoring",[149,153,157,161,165],{"title":150,"path":151,"stem":152},"Uptime-Kuma","\u002Ffr\u002Fserveex\u002Fmonitoring\u002Fuptime-kuma","fr\u002F3.serveex\u002F4.monitoring\u002F1.uptime-kuma",{"title":154,"path":155,"stem":156},"Dozzle","\u002Ffr\u002Fserveex\u002Fmonitoring\u002Fdozzle","fr\u002F3.serveex\u002F4.monitoring\u002F2.dozzle",{"title":158,"path":159,"stem":160},"Speedtest Tracker","\u002Ffr\u002Fserveex\u002Fmonitoring\u002Fspeedtest-tracker","fr\u002F3.serveex\u002F4.monitoring\u002F3.speedtest-tracker",{"title":162,"path":163,"stem":164},"Beszel","\u002Ffr\u002Fserveex\u002Fmonitoring\u002Fbeszel","fr\u002F3.serveex\u002F4.monitoring\u002F4.beszel",{"title":166,"path":167,"stem":168},"UpSnap","\u002Ffr\u002Fserveex\u002Fmonitoring\u002Fupsnap","fr\u002F3.serveex\u002F4.monitoring\u002F5.upsnap",{"title":170,"icon":171,"path":172,"stem":173,"children":174,"page":15},"Média & Seedbox","i-lucide-list-video","\u002Ffr\u002Fserveex\u002Fmedia","fr\u002F3.serveex\u002F5.media",[175,179,183],{"title":176,"path":177,"stem":178},"Jellyfin","\u002Ffr\u002Fserveex\u002Fmedia\u002Fjellyfin","fr\u002F3.serveex\u002F5.media\u002F1.jellyfin",{"title":180,"path":181,"stem":182},"Qbittorrent","\u002Ffr\u002Fserveex\u002Fmedia\u002Fqbittorrent","fr\u002F3.serveex\u002F5.media\u002F2.qbittorrent",{"title":184,"path":185,"stem":186},"Automatisation","\u002Ffr\u002Fserveex\u002Fmedia\u002Fservarr","fr\u002F3.serveex\u002F5.media\u002F3.servarr",{"title":188,"icon":189,"path":190,"stem":191,"children":192,"page":15},"Cloud & Photos","i-lucide-cloud-upload","\u002Ffr\u002Fserveex\u002Fcloud","fr\u002F3.serveex\u002F6.cloud",[193,197],{"title":194,"path":195,"stem":196},"Immich","\u002Ffr\u002Fserveex\u002Fcloud\u002Fimmich","fr\u002F3.serveex\u002F6.cloud\u002F1.immich",{"title":198,"path":199,"stem":200},"Nextcloud","\u002Ffr\u002Fserveex\u002Fcloud\u002Fnextcloud","fr\u002F3.serveex\u002F6.cloud\u002F2.nextcloud",{"title":202,"icon":203,"path":204,"stem":205,"children":206,"page":15},"Fichiers & partage","i-lucide-folder-tree","\u002Ffr\u002Fserveex\u002Ffiles","fr\u002F3.serveex\u002F7.files",[207,211],{"title":208,"path":209,"stem":210},"File Browser Quantum","\u002Ffr\u002Fserveex\u002Ffiles\u002Ffile-browser-quantum","fr\u002F3.serveex\u002F7.files\u002F1.file-browser-quantum",{"title":212,"path":213,"stem":214},"Pingvin","\u002Ffr\u002Fserveex\u002Ffiles\u002Fpingvin","fr\u002F3.serveex\u002F7.files\u002F2.pingvin",{"title":216,"icon":217,"path":218,"stem":219,"children":220,"page":15},"Développement","i-lucide-code-xml","\u002Ffr\u002Fserveex\u002Fdevelopment","fr\u002F3.serveex\u002F8.development",[221,225,229],{"title":222,"path":223,"stem":224},"Code-Serveur","\u002Ffr\u002Fserveex\u002Fdevelopment\u002Fcode-server","fr\u002F3.serveex\u002F8.development\u002F1.code-server",{"title":226,"path":227,"stem":228},"Forgejo","\u002Ffr\u002Fserveex\u002Fdevelopment\u002Fforgejo","fr\u002F3.serveex\u002F8.development\u002F2.forgejo",{"title":230,"path":231,"stem":232},"IT Tools","\u002Ffr\u002Fserveex\u002Fdevelopment\u002Fit-tools","fr\u002F3.serveex\u002F8.development\u002F3.it-tools",{"title":234,"icon":235,"path":236,"stem":237,"children":238,"page":15},"Applications utiles","i-lucide-award","\u002Ffr\u002Fserveex\u002Fapps","fr\u002F3.serveex\u002F9.apps",[239,243],{"title":240,"path":241,"stem":242},"Adguard Home","\u002Ffr\u002Fserveex\u002Fapps\u002Fadguard","fr\u002F3.serveex\u002F9.apps\u002F1.adguard",{"title":244,"path":245,"stem":246},"Vaultwarden","\u002Ffr\u002Fserveex\u002Fapps\u002Fvaultwarden","fr\u002F3.serveex\u002F9.apps\u002F2.vaultwarden",{"title":248,"icon":249,"path":250,"stem":251,"children":252,"page":15},"Avancé","i-lucide-flask-conical","\u002Ffr\u002Fserveex\u002Fadvanced","fr\u002F3.serveex\u002F91.advanced",[253,257],{"title":254,"path":255,"stem":256},"Authentik","\u002Ffr\u002Fserveex\u002Fadvanced\u002Fauthentik","fr\u002F3.serveex\u002F91.advanced\u002F1.authentik",{"title":258,"path":259,"stem":260},"Arcane","\u002Ffr\u002Fserveex\u002Fadvanced\u002Farcane","fr\u002F3.serveex\u002F91.advanced\u002F2.arcane",{"title":262,"icon":263,"path":264,"stem":265,"children":266,"page":15},"Stockeex","i-noto-computer-disk","\u002Ffr\u002Fstockeex","fr\u002F4.stockeex",[267],{"title":100,"path":268,"stem":269,"icon":25},"\u002Ffr\u002Fstockeex\u002Fintroduction","fr\u002F4.stockeex\u002F1.introduction",{"title":271,"icon":272,"path":273,"stem":274,"children":275,"page":15},"Mes bêtises","i-noto-test-tube","\u002Ffr\u002Fnonsense","fr\u002F5.nonsense",[276,279,301],{"title":271,"path":277,"stem":278,"icon":25},"\u002Ffr\u002Fnonsense\u002Fsummary","fr\u002F5.nonsense\u002F1.summary",{"title":280,"icon":281,"path":282,"stem":283,"children":284,"page":15},"Python","i-lucide-file-code-2","\u002Ffr\u002Fnonsense\u002Fpython","fr\u002F5.nonsense\u002F2.python",[285,289,293,297],{"title":286,"path":287,"stem":288},"Nvidia Stock Bot","\u002Ffr\u002Fnonsense\u002Fpython\u002Fnvidia-stock-bot","fr\u002F5.nonsense\u002F2.python\u002F1.nvidia-stock-bot",{"title":290,"path":291,"stem":292},"Adguard CIDRE","\u002Ffr\u002Fnonsense\u002Fpython\u002Fadguard-cidre","fr\u002F5.nonsense\u002F2.python\u002F2.adguard-cidre",{"title":294,"path":295,"stem":296},"Lumeex","\u002Ffr\u002Fnonsense\u002Fpython\u002Flumeex","fr\u002F5.nonsense\u002F2.python\u002F3.lumeex",{"title":298,"path":299,"stem":300},"Instameex","\u002Ffr\u002Fnonsense\u002Fpython\u002Finstameex","fr\u002F5.nonsense\u002F2.python\u002F4.instameex",{"title":302,"icon":303,"path":304,"stem":305,"children":306,"page":15},"Bash","i-lucide-file-terminal","\u002Ffr\u002Fnonsense\u002Fbash","fr\u002F5.nonsense\u002F3.bash",[307,311,315,319,323,327],{"title":308,"path":309,"stem":310},"Doublons servarr","\u002Ffr\u002Fnonsense\u002Fbash\u002Fservarr-duplicates","fr\u002F5.nonsense\u002F3.bash\u002F1.servarr-duplicates",{"title":312,"path":313,"stem":314},"Luks backup","\u002Ffr\u002Fnonsense\u002Fbash\u002Fluks-backup","fr\u002F5.nonsense\u002F3.bash\u002F2.luks-backup",{"title":316,"path":317,"stem":318},"Socat Proxy","\u002Ffr\u002Fnonsense\u002Fbash\u002Fsocat-proxy","fr\u002F5.nonsense\u002F3.bash\u002F3.socat-proxy",{"title":320,"path":321,"stem":322},"HotDisk","\u002Ffr\u002Fnonsense\u002Fbash\u002Fhotdisk","fr\u002F5.nonsense\u002F3.bash\u002F4.hotdisk",{"title":324,"path":325,"stem":326},"Backrest Docker Stop","\u002Ffr\u002Fnonsense\u002Fbash\u002Fbackrest-docker-stop","fr\u002F5.nonsense\u002F3.bash\u002F5.backrest-docker-stop",{"title":328,"path":329,"stem":330},"rm Confirmation Guard","\u002Ffr\u002Fnonsense\u002Fbash\u002Frm-confirmation","fr\u002F5.nonsense\u002F3.bash\u002F6.rm-confirmation",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":15},"Poubelle","i-noto-recycling-symbol","\u002Ffr\u002Frecycled","fr\u002F6.recycled",[337,340,354],{"title":332,"path":338,"stem":339,"icon":25},"\u002Ffr\u002Frecycled\u002Fsummary","fr\u002F6.recycled\u002F1.summary",{"title":341,"icon":342,"path":343,"stem":344,"children":345,"page":15},"Obsolète","i-lucide-trash-2","\u002Ffr\u002Frecycled\u002Fdeprecated","fr\u002F6.recycled\u002F2.deprecated",[346,350],{"title":347,"path":348,"stem":349},"Wireguard 14","\u002Ffr\u002Frecycled\u002Fdeprecated\u002Fwireguard-14","fr\u002F6.recycled\u002F2.deprecated\u002F1.wireguard-14",{"title":351,"path":352,"stem":353},"File Browser","\u002Ffr\u002Frecycled\u002Fdeprecated\u002Ffile-browser","fr\u002F6.recycled\u002F2.deprecated\u002F2.file-browser",{"title":355,"icon":356,"path":357,"stem":358,"children":359,"page":15},"Alternatives","i-lucide-arrow-left-right","\u002Ffr\u002Frecycled\u002Falternatives","fr\u002F6.recycled\u002F3.alternatives",[360,364,368,372],{"title":361,"path":362,"stem":363},"Plex","\u002Ffr\u002Frecycled\u002Falternatives\u002Fplex","fr\u002F6.recycled\u002F3.alternatives\u002F1.plex",{"title":365,"path":366,"stem":367},"Qbittorrent pour Plex","\u002Ffr\u002Frecycled\u002Falternatives\u002Fqbittorrent-for-plex","fr\u002F6.recycled\u002F3.alternatives\u002F2.qbittorrent for plex",{"title":369,"path":370,"stem":371},"Servarr pour Plex","\u002Ffr\u002Frecycled\u002Falternatives\u002Fservarr-for-plex","fr\u002F6.recycled\u002F3.alternatives\u002F3.servarr for plex",{"title":373,"path":374,"stem":375},"Gitea","\u002Ffr\u002Frecycled\u002Falternatives\u002Fgitea","fr\u002F6.recycled\u002F3.alternatives\u002F4.gitea",{"id":377,"title":122,"body":378,"contributors":2565,"description":2567,"extension":2568,"hideCopyPage":15,"hideHeader":15,"hideToc":15,"links":2569,"meta":2570,"navigation":725,"path":123,"seo":2571,"stem":124,"__hash__":2572},"docs_fr\u002Ffr\u002F3.serveex\u002F2.core\u002F4.swag.md",{"type":379,"value":380,"toc":2542},"minimark",[381,389,406,420,423,428,435,440,454,459,1171,1175,1187,1193,1197,1213,1216,1219,1688,1697,1922,1926,1968,1978,1991,2452,2456,2463,2490,2521,2538],[382,383],"ellipsis",{"blur":384,"left":385,"top":386,"width":387,"z-index":388},"140px","0px","10rem","40rem","60",[390,391,392,399,400,405],"p",{},[393,394,398],"a",{"href":395,"rel":396},"https:\u002F\u002Fdocs.linuxserver.io\u002Fgeneral\u002Fswag\u002F",[397],"nofollow","Swag"," est le noyau de ce homelab. C'est un reverse proxy puissant qui permet d'exposer des services sur internet via des noms de domaine, en se chargeant de l'émission des certificats SSL (pour garder des connexions chiffrées), du routage des requêtes et de la sécurisation des accès (par authentification HTTP ou par SSO comme Authelia ou Authentik). Toute la documentation nécessaire est ",[393,401,404],{"href":402,"rel":403},"https:\u002F\u002Fdocs.linuxserver.io\u002Fgeneral\u002Fswag",[397],"disponible ici",".",[407,408,410,411,415,416,405],"warning",{"to":409},"\u002Fserveex\u002Fcore\u002Fwireguard","SWAG n'a d'utilité que pour exposer vos services sur internet, c'est-à-dire y accéder via une URL publique du type ",[412,413,414],"code",{},"https:\u002F\u002Fservice.mondomaine.fr",". Si vous ne souhaitez pas exposer vos services et préférez systématiquement passer par un VPN pour vous connecter à distance, allez plutôt ",[417,418,419],"strong",{},"par ici",[390,421,422],{},"Ci-dessous, un exemple exposant Dockge. Nous installerons SWAG ainsi que le mod dbip servant à bloquer les connexions selon la géolocalisation, et le mod dashboard qui permet de piloter swag, fail2ban et la géolocalisation.",[390,424,425],{},[417,426,427],{},"Principe d'un reverse proxy et application dans notre cas :",[390,429,430],{},[431,432],"img",{"alt":433,"src":434},"Picture","\u002Fimg\u002Fserveex\u002Freverse-proxy.svg",[436,437,439],"h2",{"id":438},"installation","Installation",[441,442,443,444,447,448,450,451,405],"note",{},"Ce tutoriel part du principe que vous avez un nom de domaine qui pointe vers votre serveur, et que votre box a une règle NAT qui redirige le port ",[412,445,446],{},"443"," vers l'adresse IP et le port ",[412,449,446],{}," de votre serveur. Le nom de domaine d'exemple sera ",[412,452,453],{},"mondomaine.fr",[455,456],"file-tree",{":tree":457,"label":458},"{\"\u002F\":[{\"srv\":[{\"docker\":[{\"swag\":[{\"config\":[{\"dns-conf\":[\"ovh.ini\"]},{\"nginx\":[\"dbip.conf\",\"nginx.conf\",{\"proxy-confs\":[\"dockge.subdomain.conf\"]}]}]},\"compose.yml\",\".env\"]}]}]}]}","Structure de fichiers à modifier",[460,461,463,468,479,753,804,808,815,852,855,943,947,960,965,975,994,997,1051,1059,1062,1086,1104,1115,1119,1125,1139,1145,1164,1167],"steps",{"level":462},"3",[464,465,467],"h3",{"id":466},"déployer-la-stack","Déployer la stack",[390,469,470,471,474,475,478],{},"Ouvrez Dockge dans votre navigateur, cliquez sur ",[412,472,473],{},"compose",", nommez la stack ",[412,476,477],{},"swag",", et copiez la configuration suivante :",[480,481,487],"pre",{"className":482,"code":483,"filename":484,"language":485,"meta":486,"style":486},"language-yaml shiki shiki-themes github-dark material-theme github-dark","---\nservices:\n  swag:\n    image: lscr.io\u002Flinuxserver\u002Fswag:latest\n    container_name: swag\n    cap_add:\n      - NET_ADMIN\n    env_file:\n      - .env\n    environment:\n      - TZ=Europe\u002FParis\n      - URL=${DOMAIN}\n      - EXTRA_DOMAINS=${DOMAINS}\n      - SUBDOMAINS=wildcard\n      - VALIDATION=dns\n      - DNSPLUGIN=${PLUGIN}\n      - EMAIL=${EMAIL}\n      - DOCKER_MODS=linuxserver\u002Fmods:swag-dbip|linuxserver\u002Fmods:swag-dashboard|linuxserver\u002Fmods:swag-auto-reload\n    volumes:\n      - \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig:\u002Fconfig\n    ports:\n      - 80:80\n      - 443:443\n      - 81:81\n    restart: unless-stopped\n    networks:\n      - swag\n\nnetworks:\n  swag:\n    name: swag_default\n","compose.yaml","yaml","",[412,488,489,498,509,517,530,541,549,558,566,574,582,590,598,606,614,622,630,638,646,654,662,670,678,686,694,705,713,720,727,735,742],{"__ignoreMap":486},[490,491,494],"span",{"class":492,"line":493},"line",1,[490,495,497],{"class":496},"sEgDM","---\n",[490,499,501,505],{"class":492,"line":500},2,[490,502,504],{"class":503},"sRuoG","services",[490,506,508],{"class":507},"s8jd1",":\n",[490,510,512,515],{"class":492,"line":511},3,[490,513,514],{"class":503},"  swag",[490,516,508],{"class":507},[490,518,520,523,526],{"class":492,"line":519},4,[490,521,522],{"class":503},"    image",[490,524,525],{"class":507},":",[490,527,529],{"class":528},"s11XM"," lscr.io\u002Flinuxserver\u002Fswag:latest\n",[490,531,533,536,538],{"class":492,"line":532},5,[490,534,535],{"class":503},"    container_name",[490,537,525],{"class":507},[490,539,540],{"class":528}," swag\n",[490,542,544,547],{"class":492,"line":543},6,[490,545,546],{"class":503},"    cap_add",[490,548,508],{"class":507},[490,550,552,555],{"class":492,"line":551},7,[490,553,554],{"class":507},"      -",[490,556,557],{"class":528}," NET_ADMIN\n",[490,559,561,564],{"class":492,"line":560},8,[490,562,563],{"class":503},"    env_file",[490,565,508],{"class":507},[490,567,569,571],{"class":492,"line":568},9,[490,570,554],{"class":507},[490,572,573],{"class":528}," .env\n",[490,575,577,580],{"class":492,"line":576},10,[490,578,579],{"class":503},"    environment",[490,581,508],{"class":507},[490,583,585,587],{"class":492,"line":584},11,[490,586,554],{"class":507},[490,588,589],{"class":528}," TZ=Europe\u002FParis\n",[490,591,593,595],{"class":492,"line":592},12,[490,594,554],{"class":507},[490,596,597],{"class":528}," URL=${DOMAIN}\n",[490,599,601,603],{"class":492,"line":600},13,[490,602,554],{"class":507},[490,604,605],{"class":528}," EXTRA_DOMAINS=${DOMAINS}\n",[490,607,609,611],{"class":492,"line":608},14,[490,610,554],{"class":507},[490,612,613],{"class":528}," SUBDOMAINS=wildcard\n",[490,615,617,619],{"class":492,"line":616},15,[490,618,554],{"class":507},[490,620,621],{"class":528}," VALIDATION=dns\n",[490,623,625,627],{"class":492,"line":624},16,[490,626,554],{"class":507},[490,628,629],{"class":528}," DNSPLUGIN=${PLUGIN}\n",[490,631,633,635],{"class":492,"line":632},17,[490,634,554],{"class":507},[490,636,637],{"class":528}," EMAIL=${EMAIL}\n",[490,639,641,643],{"class":492,"line":640},18,[490,642,554],{"class":507},[490,644,645],{"class":528}," DOCKER_MODS=linuxserver\u002Fmods:swag-dbip|linuxserver\u002Fmods:swag-dashboard|linuxserver\u002Fmods:swag-auto-reload\n",[490,647,649,652],{"class":492,"line":648},19,[490,650,651],{"class":503},"    volumes",[490,653,508],{"class":507},[490,655,657,659],{"class":492,"line":656},20,[490,658,554],{"class":507},[490,660,661],{"class":528}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig:\u002Fconfig\n",[490,663,665,668],{"class":492,"line":664},21,[490,666,667],{"class":503},"    ports",[490,669,508],{"class":507},[490,671,673,675],{"class":492,"line":672},22,[490,674,554],{"class":507},[490,676,677],{"class":528}," 80:80\n",[490,679,681,683],{"class":492,"line":680},23,[490,682,554],{"class":507},[490,684,685],{"class":528}," 443:443\n",[490,687,689,691],{"class":492,"line":688},24,[490,690,554],{"class":507},[490,692,693],{"class":528}," 81:81\n",[490,695,697,700,702],{"class":492,"line":696},25,[490,698,699],{"class":503},"    restart",[490,701,525],{"class":507},[490,703,704],{"class":528}," unless-stopped\n",[490,706,708,711],{"class":492,"line":707},26,[490,709,710],{"class":503},"    networks",[490,712,508],{"class":507},[490,714,716,718],{"class":492,"line":715},27,[490,717,554],{"class":507},[490,719,540],{"class":528},[490,721,723],{"class":492,"line":722},28,[490,724,726],{"emptyLinePlaceholder":725},true,"\n",[490,728,730,733],{"class":492,"line":729},29,[490,731,732],{"class":503},"networks",[490,734,508],{"class":507},[490,736,738,740],{"class":492,"line":737},30,[490,739,514],{"class":503},[490,741,508],{"class":507},[490,743,745,748,750],{"class":492,"line":744},31,[490,746,747],{"class":503},"    name",[490,749,525],{"class":507},[490,751,752],{"class":528}," swag_default\n",[754,755,756,763],"tip",{"icon":486},[390,757,758,759,762],{},"✨ ",[417,760,761],{},"Astuce :","\najoutez le label watchtower à chaque conteneur pour activer les mises à jour automatiques",[480,764,766],{"className":482,"code":765,"filename":484,"language":485,"meta":486,"style":486},"---\nservices:\n  swag:\n    #...\n    labels:\n      - com.centurylinklabs.watchtower.enable=true\n",[412,767,768,772,778,784,790,797],{"__ignoreMap":486},[490,769,770],{"class":492,"line":493},[490,771,497],{"class":496},[490,773,774,776],{"class":492,"line":500},[490,775,504],{"class":503},[490,777,508],{"class":507},[490,779,780,782],{"class":492,"line":511},[490,781,514],{"class":503},[490,783,508],{"class":507},[490,785,786],{"class":492,"line":519},[490,787,789],{"class":788},"sDvJj","    #...\n",[490,791,792,795],{"class":492,"line":532},[490,793,794],{"class":503},"    labels",[490,796,508],{"class":507},[490,798,799,801],{"class":492,"line":543},[490,800,554],{"class":507},[490,802,803],{"class":528}," com.centurylinklabs.watchtower.enable=true\n",[464,805,807],{"id":806},"renseigner-vos-variables-denvironnement","Renseigner vos variables d'environnement",[390,809,810,811,814],{},"Puis dans le fichier ",[412,812,813],{},".env"," :",[480,816,820],{"className":817,"code":818,"filename":813,"language":819,"meta":486,"style":486},"language-properties shiki shiki-themes github-dark material-theme github-dark","DOMAIN=\nDOMAINS=\nEMAIL=\nPLUGIN=\n","properties",[412,821,822,831,838,845],{"__ignoreMap":486},[490,823,824,828],{"class":492,"line":493},[490,825,827],{"class":826},"szyEh","DOMAIN",[490,829,830],{"class":507},"=\n",[490,832,833,836],{"class":492,"line":500},[490,834,835],{"class":826},"DOMAINS",[490,837,830],{"class":507},[490,839,840,843],{"class":492,"line":511},[490,841,842],{"class":826},"EMAIL",[490,844,830],{"class":507},[490,846,847,850],{"class":492,"line":519},[490,848,849],{"class":826},"PLUGIN",[490,851,830],{"class":507},[390,853,854],{},"Remplissez les variables comme suit :",[856,857,858,874],"table",{},[859,860,861],"thead",{},[862,863,864,868,871],"tr",{},[865,866,867],"th",{},"Propriété",[865,869,870],{},"Valeur",[865,872,873],{},"Exemples",[875,876,877,891,905,919],"tbody",{},[862,878,879,884,887],{},[880,881,882],"td",{},[412,883,827],{},[880,885,886],{},"Votre domaine (cela couvre aussi tous les sous-domaines)",[880,888,889],{},[412,890,453],{},[862,892,893,897,900],{},[880,894,895],{},[412,896,835],{},[880,898,899],{},"Vos éventuels autres domaines",[880,901,902],{},[412,903,904],{},"monsecondomaine.fr",[862,906,907,911,914],{},[880,908,909],{},[412,910,842],{},[880,912,913],{},"Votre email, pour générer le certificat",[880,915,916],{},[412,917,918],{},"votre@email.fr",[862,920,921,925,932],{},[880,922,923],{},[412,924,849],{},[880,926,927,928],{},"Le plugin pour générer le certificat, lié à votre ",[393,929,931],{"href":395,"rel":930},[397],"fournisseur de zone DNS",[880,933,934,937,940],{},[412,935,936],{},"ovh",[938,939],"br",{},[412,941,942],{},"cloudflare",[464,944,946],{"id":945},"configurer-le-plugin-dns-ovh","Configurer le plugin DNS OVH",[390,948,949,950,955,956,959],{},"En partant du principe que votre zone DNS est gérée par OVH (sinon, cherchez votre ",[393,951,954],{"href":952,"rel":953},"https:\u002F\u002Fgithub.com\u002Flinuxserver\u002Fdocker-swag\u002Ftree\u002Fmaster\u002Froot\u002Fdefaults\u002Fdns-conf",[397],"fournisseur","), déployez la stack une première fois. Les logs afficheront un échec de création du certificat SSL faute de configuration ",[412,957,958],{},"ovh.ini",". Arrêtez la stack.",[390,961,962,963,814],{},"En ligne de commande, allez dans le dossier dns-conf et modifiez le fichier ",[412,964,958],{},[754,966,758,968,971,972,974],{"icon":486,"to":967},"\u002Fserveex\u002Ffiles\u002Ffile-browser-quantum",[417,969,970],{},"Astuce pour les allergiques au terminal :","\nvous pouvez utiliser ",[417,973,208],{}," pour naviguer et modifier vos fichiers plutôt que des commandes dans le terminal.",[480,976,981],{"className":977,"code":978,"filename":979,"language":980,"meta":486,"style":486},"language-bash shiki shiki-themes github-dark material-theme github-dark","sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fdns-conf\u002Fovh.ini\n","Terminal","bash",[412,982,983],{"__ignoreMap":486},[490,984,985,988,991],{"class":492,"line":493},[490,986,987],{"class":496},"sudo",[490,989,990],{"class":528}," nano",[490,992,993],{"class":528}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fdns-conf\u002Fovh.ini\n",[390,995,996],{},"Vous devriez voir :",[480,998,1000],{"className":817,"code":999,"filename":958,"language":819,"meta":486,"style":486},"# Instructions: https:\u002F\u002Fgithub.com\u002Fcertbot\u002Fcertbot\u002Fblob\u002Fmaster\u002Fcertbot-dns-ovh\u002Fcertbot_dns_ovh\u002F__init__.py#L20\n# Replace with your values\ndns_ovh_endpoint = ovh-eu\ndns_ovh_application_key = \ndns_ovh_application_secret = \ndns_ovh_consumer_key = \n",[412,1001,1002,1007,1012,1024,1034,1043],{"__ignoreMap":486},[490,1003,1004],{"class":492,"line":493},[490,1005,1006],{"class":788},"# Instructions: https:\u002F\u002Fgithub.com\u002Fcertbot\u002Fcertbot\u002Fblob\u002Fmaster\u002Fcertbot-dns-ovh\u002Fcertbot_dns_ovh\u002F__init__.py#L20\n",[490,1008,1009],{"class":492,"line":500},[490,1010,1011],{"class":788},"# Replace with your values\n",[490,1013,1014,1017,1020],{"class":492,"line":511},[490,1015,1016],{"class":826},"dns_ovh_endpoint",[490,1018,1019],{"class":507}," =",[490,1021,1023],{"class":1022},"slcoZ"," ovh-eu\n",[490,1025,1026,1029,1031],{"class":492,"line":519},[490,1027,1028],{"class":826},"dns_ovh_application_key",[490,1030,1019],{"class":507},[490,1032,1033],{"class":1022}," \n",[490,1035,1036,1039,1041],{"class":492,"line":532},[490,1037,1038],{"class":826},"dns_ovh_application_secret",[490,1040,1019],{"class":507},[490,1042,1033],{"class":1022},[490,1044,1045,1048],{"class":492,"line":543},[490,1046,1047],{"class":826},"dns_ovh_consumer_key",[490,1049,1050],{"class":507}," =\n",[390,1052,1053,1054,405],{},"Authentifiez-vous et créez ",[393,1055,1058],{"href":1056,"rel":1057},"https:\u002F\u002Fwww.ovh.com\u002Fauth\u002F?onsuccess=https%3A%2F%2Fwww.ovh.com%2Fauth%2Fapi%2FcreateToken",[397],"votre token ici",[390,1060,1061],{},"Donnez-lui les permissions suivantes :",[1063,1064,1065,1071,1076,1081],"ul",{},[1066,1067,1068],"li",{},[412,1069,1070],{},"GET \u002Fdomain\u002Fzone\u002F*",[1066,1072,1073],{},[412,1074,1075],{},"PUT \u002Fdomain\u002Fzone\u002F*",[1066,1077,1078],{},[412,1079,1080],{},"POST \u002Fdomain\u002Fzone\u002F*",[1066,1082,1083],{},[412,1084,1085],{},"DELETE \u002Fdomain\u002Fzone\u002F*",[390,1087,1088,1089,1091,1092,1096,1097,1096,1100,1103],{},"Notez temporairement les 3 clés et saisissez-les dans ",[412,1090,958],{},". (Dans nano, tapez directement, puis ",[1093,1094],"kbd",{"value":1095},"Ctrl+O",", ",[1093,1098],{"value":1099},"Enter",[1093,1101],{"value":1102},"Ctrl+X"," pour enregistrer et quitter)",[390,1105,1106,1107,1109,1110,1112,1113,405],{},"Enregistrez avec ",[1093,1108],{"value":1095},", puis ",[1093,1111],{"value":1099},", et quittez avec ",[1093,1114],{"value":1102},[464,1116,1118],{"id":1117},"activer-dbip-dans-nginxconf","Activer DBIP dans nginx.conf",[390,1120,1121,1122,814],{},"Configurons maintenant swag pour accéder à DBIP, le module de contrôle d'accès par géolocalisation. Ouvrez le fichier ",[412,1123,1124],{},"nginx.conf",[480,1126,1128],{"className":977,"code":1127,"filename":979,"language":980,"meta":486,"style":486},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fnginx.conf\n",[412,1129,1130],{"__ignoreMap":486},[490,1131,1132,1134,1136],{"class":492,"line":493},[490,1133,987],{"class":496},[490,1135,990],{"class":528},[490,1137,1138],{"class":528}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fnginx.conf\n",[390,1140,1141,1142,814],{},"Ajoutez la ligne suivante sous la section ",[412,1143,1144],{},"http",[480,1146,1150],{"className":1147,"code":1148,"filename":1124,"language":1149,"meta":486,"style":486},"language-nginx shiki shiki-themes github-dark material-theme github-dark","include \u002Fconfig\u002Fnginx\u002Fdbip.conf;\n","nginx",[412,1151,1152],{"__ignoreMap":486},[490,1153,1154,1158,1161],{"class":492,"line":493},[490,1155,1157],{"class":1156},"sJPTy","include ",[490,1159,1160],{"class":1022},"\u002Fconfig\u002Fnginx\u002Fdbip.conf",[490,1162,1163],{"class":507},";\n",[390,1165,1166],{},"Redémarrez la stack dans Dockge. Cette fois, le certificat SSL devrait être généré avec succès ! Vérifiez les logs pour confirmer que le serveur est prêt.",[464,1168,1170],{"id":1169},"terminé","Terminé !",[436,1172,1174],{"id":1173},"dashboard","Dashboard",[390,1176,1177,1178,1181,1182,405],{},"Accédez au tableau de bord en local sur ",[412,1179,1180],{},"http:\u002F\u002Fipdevotreserveur:81","\nSur la gauche, vous verrez la liste des services actuellement « proxifiés » (aucun pour l'instant). Sur la droite, la liste des IP bannies. En dessous, différents indicateurs. Pour plus de détails, ",[393,1183,1186],{"href":1184,"rel":1185},"https:\u002F\u002Fwww.linuxserver.io\u002Fblog\u002Fintroducing-swag-dashboard",[397],"cliquez ici",[390,1188,1189],{},[431,1190],{"alt":1191,"src":1192},"picture","https:\u002F\u002Fwww.linuxserver.io\u002Fuser\u002Fpages\u002F03.blog\u002Fintroducing-swag-dashboard\u002Fexample.png",[436,1194,1196],{"id":1195},"dbip","DBIP",[390,1198,1199,1200,1203,1204,1207,1208,405],{},"DBIP permet de bloquer les connexions selon les pays. Il s'appuie sur le fichier de configuration nommé ",[412,1201,1202],{},"dbip.conf"," situé dans ",[412,1205,1206],{},"\u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx",". ",[393,1209,1212],{"href":1210,"rel":1211},"https:\u002F\u002Fvirtualize.link\u002Fsecure\u002F",[397],"Plus d'infos ici",[390,1214,1215],{},"Dans cet exemple, nous le configurerons pour bloquer une liste de pays connus pour être à l'origine de la majorité du trafic malveillant. Nous configurerons aussi une variable pour autoriser le trafic interne au serveur, le réseau local de votre box et un éventuel VPN en 10.x.x.x à accéder à vos services, mais pas l'internet ouvert.",[390,1217,1218],{},"Cette configuration peut être activée ou désactivée service par service (voir l'exemple Dockge plus bas).",[460,1220,1221,1225,1239,1243,1252,1678,1682,1685],{"level":462},[464,1222,1224],{"id":1223},"ouvrir-dbipconf","Ouvrir dbip.conf",[480,1226,1228],{"className":977,"code":1227,"filename":979,"language":980,"meta":486,"style":486},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fdbip.conf\n",[412,1229,1230],{"__ignoreMap":486},[490,1231,1232,1234,1236],{"class":492,"line":493},[490,1233,987],{"class":496},[490,1235,990],{"class":528},[490,1237,1238],{"class":528}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fdbip.conf\n",[464,1240,1242],{"id":1241},"faire-vos-modifications","Faire vos modifications",[390,1244,1245,1246,1251],{},"Reportez-vous à la ",[393,1247,1250],{"href":1248,"rel":1249},"https:\u002F\u002Fgithub.com\u002Flinuxserver\u002Fdocker-mods\u002Ftree\u002Fswag-dbip",[397],"documentation",", ou utilisez l'exemple suivant :",[480,1253,1255],{"className":1147,"code":1254,"filename":1202,"language":1149,"meta":486,"style":486},"geoip2 \u002Fconfig\u002Fgeoip2db\u002Fdbip-country-lite.mmdb {\n    auto_reload 1w;\n    $geoip2_data_continent_code   continent code;\n    $geoip2_data_country_iso_code country iso_code;\n}\n\n# Country Codes: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_3166-2\n\nmap $geoip2_data_country_iso_code $geo-whitelist {\n    default no;\n    FR yes;\n}\n\nmap $geoip2_data_country_iso_code $geo-blacklist {\n    default yes;\n    CN no; #Chine\n    RU no; #Russie\n    HK no; #Hong Kong\n    IN no; #Inde\n    IR no; #Iran\n    VN no; #Vietnam\n    TR no; #Turquie\n    EG no; #Égypte\n    MX no; #Mexique\n    JP no; #Japon\n    KR no; #Corée du Sud\n    KP no; #Corée du Nord\n    PE no; #Pérou\n    BR no; #Brésil\n    UA no; #Ukraine\n    ID no; #Indonésie\n    TH no; #Thaïlande\n}\n\ngeo $lan-ip {\n    default no;\n    10.0.0.0\u002F8 yes;\n    172.16.0.0\u002F12 yes;\n    192.168.0.0\u002F16 yes;\n    127.0.0.1 yes;\n}\n",[412,1256,1257,1265,1275,1288,1300,1305,1309,1314,1318,1335,1345,1355,1359,1363,1376,1384,1397,1409,1421,1433,1445,1457,1469,1481,1493,1505,1517,1529,1541,1553,1565,1577,1590,1595,1600,1611,1621,1634,1647,1660,1673],{"__ignoreMap":486},[490,1258,1259,1262],{"class":492,"line":493},[490,1260,1261],{"class":1156},"geoip2",[490,1263,1264],{"class":1022}," \u002Fconfig\u002Fgeoip2db\u002Fdbip-country-lite.mmdb {\n",[490,1266,1267,1270,1273],{"class":492,"line":500},[490,1268,1269],{"class":1156},"    auto_reload",[490,1271,1272],{"class":1022}," 1w",[490,1274,1163],{"class":507},[490,1276,1277,1280,1283,1286],{"class":492,"line":511},[490,1278,1279],{"class":1022},"    $",[490,1281,1282],{"class":1156},"geoip2_data_continent_code",[490,1284,1285],{"class":1022},"   continent code",[490,1287,1163],{"class":507},[490,1289,1290,1292,1295,1298],{"class":492,"line":519},[490,1291,1279],{"class":1022},[490,1293,1294],{"class":1156},"geoip2_data_country_iso_code",[490,1296,1297],{"class":1022}," country iso_code",[490,1299,1163],{"class":507},[490,1301,1302],{"class":492,"line":532},[490,1303,1304],{"class":1022},"}\n",[490,1306,1307],{"class":492,"line":543},[490,1308,726],{"emptyLinePlaceholder":725},[490,1310,1311],{"class":492,"line":551},[490,1312,1313],{"class":788},"# Country Codes: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_3166-2\n",[490,1315,1316],{"class":492,"line":560},[490,1317,726],{"emptyLinePlaceholder":725},[490,1319,1320,1323,1326,1329,1332],{"class":492,"line":568},[490,1321,1322],{"class":1156},"map",[490,1324,1325],{"class":507}," $",[490,1327,1328],{"class":1022},"geoip2_data_country_iso_code ",[490,1330,1331],{"class":507},"$",[490,1333,1334],{"class":1022},"geo-whitelist {\n",[490,1336,1337,1340,1343],{"class":492,"line":576},[490,1338,1339],{"class":1156},"    default",[490,1341,1342],{"class":1022}," no",[490,1344,1163],{"class":507},[490,1346,1347,1350,1353],{"class":492,"line":584},[490,1348,1349],{"class":1156},"    FR",[490,1351,1352],{"class":1022}," yes",[490,1354,1163],{"class":507},[490,1356,1357],{"class":492,"line":592},[490,1358,1304],{"class":1022},[490,1360,1361],{"class":492,"line":600},[490,1362,726],{"emptyLinePlaceholder":725},[490,1364,1365,1367,1369,1371,1373],{"class":492,"line":608},[490,1366,1322],{"class":1156},[490,1368,1325],{"class":507},[490,1370,1328],{"class":1022},[490,1372,1331],{"class":507},[490,1374,1375],{"class":1022},"geo-blacklist {\n",[490,1377,1378,1380,1382],{"class":492,"line":616},[490,1379,1339],{"class":1156},[490,1381,1352],{"class":1022},[490,1383,1163],{"class":507},[490,1385,1386,1389,1391,1394],{"class":492,"line":624},[490,1387,1388],{"class":1156},"    CN",[490,1390,1342],{"class":1022},[490,1392,1393],{"class":507},";",[490,1395,1396],{"class":788}," #Chine\n",[490,1398,1399,1402,1404,1406],{"class":492,"line":632},[490,1400,1401],{"class":1156},"    RU",[490,1403,1342],{"class":1022},[490,1405,1393],{"class":507},[490,1407,1408],{"class":788}," #Russie\n",[490,1410,1411,1414,1416,1418],{"class":492,"line":640},[490,1412,1413],{"class":1156},"    HK",[490,1415,1342],{"class":1022},[490,1417,1393],{"class":507},[490,1419,1420],{"class":788}," #Hong Kong\n",[490,1422,1423,1426,1428,1430],{"class":492,"line":648},[490,1424,1425],{"class":1156},"    IN",[490,1427,1342],{"class":1022},[490,1429,1393],{"class":507},[490,1431,1432],{"class":788}," #Inde\n",[490,1434,1435,1438,1440,1442],{"class":492,"line":656},[490,1436,1437],{"class":1156},"    IR",[490,1439,1342],{"class":1022},[490,1441,1393],{"class":507},[490,1443,1444],{"class":788}," #Iran\n",[490,1446,1447,1450,1452,1454],{"class":492,"line":664},[490,1448,1449],{"class":1156},"    VN",[490,1451,1342],{"class":1022},[490,1453,1393],{"class":507},[490,1455,1456],{"class":788}," #Vietnam\n",[490,1458,1459,1462,1464,1466],{"class":492,"line":672},[490,1460,1461],{"class":1156},"    TR",[490,1463,1342],{"class":1022},[490,1465,1393],{"class":507},[490,1467,1468],{"class":788}," #Turquie\n",[490,1470,1471,1474,1476,1478],{"class":492,"line":680},[490,1472,1473],{"class":1156},"    EG",[490,1475,1342],{"class":1022},[490,1477,1393],{"class":507},[490,1479,1480],{"class":788}," #Égypte\n",[490,1482,1483,1486,1488,1490],{"class":492,"line":688},[490,1484,1485],{"class":1156},"    MX",[490,1487,1342],{"class":1022},[490,1489,1393],{"class":507},[490,1491,1492],{"class":788}," #Mexique\n",[490,1494,1495,1498,1500,1502],{"class":492,"line":696},[490,1496,1497],{"class":1156},"    JP",[490,1499,1342],{"class":1022},[490,1501,1393],{"class":507},[490,1503,1504],{"class":788}," #Japon\n",[490,1506,1507,1510,1512,1514],{"class":492,"line":707},[490,1508,1509],{"class":1156},"    KR",[490,1511,1342],{"class":1022},[490,1513,1393],{"class":507},[490,1515,1516],{"class":788}," #Corée du Sud\n",[490,1518,1519,1522,1524,1526],{"class":492,"line":715},[490,1520,1521],{"class":1156},"    KP",[490,1523,1342],{"class":1022},[490,1525,1393],{"class":507},[490,1527,1528],{"class":788}," #Corée du Nord\n",[490,1530,1531,1534,1536,1538],{"class":492,"line":722},[490,1532,1533],{"class":1156},"    PE",[490,1535,1342],{"class":1022},[490,1537,1393],{"class":507},[490,1539,1540],{"class":788}," #Pérou\n",[490,1542,1543,1546,1548,1550],{"class":492,"line":729},[490,1544,1545],{"class":1156},"    BR",[490,1547,1342],{"class":1022},[490,1549,1393],{"class":507},[490,1551,1552],{"class":788}," #Brésil\n",[490,1554,1555,1558,1560,1562],{"class":492,"line":737},[490,1556,1557],{"class":1156},"    UA",[490,1559,1342],{"class":1022},[490,1561,1393],{"class":507},[490,1563,1564],{"class":788}," #Ukraine\n",[490,1566,1567,1570,1572,1574],{"class":492,"line":744},[490,1568,1569],{"class":1156},"    ID",[490,1571,1342],{"class":1022},[490,1573,1393],{"class":507},[490,1575,1576],{"class":788}," #Indonésie\n",[490,1578,1580,1583,1585,1587],{"class":492,"line":1579},32,[490,1581,1582],{"class":1156},"    TH",[490,1584,1342],{"class":1022},[490,1586,1393],{"class":507},[490,1588,1589],{"class":788}," #Thaïlande\n",[490,1591,1593],{"class":492,"line":1592},33,[490,1594,1304],{"class":1022},[490,1596,1598],{"class":492,"line":1597},34,[490,1599,726],{"emptyLinePlaceholder":725},[490,1601,1603,1606,1608],{"class":492,"line":1602},35,[490,1604,1605],{"class":1156},"geo ",[490,1607,1331],{"class":507},[490,1609,1610],{"class":1022},"lan-ip {\n",[490,1612,1614,1617,1619],{"class":492,"line":1613},36,[490,1615,1339],{"class":1616},"soUAX",[490,1618,1342],{"class":1022},[490,1620,1163],{"class":507},[490,1622,1624,1627,1630,1632],{"class":492,"line":1623},37,[490,1625,1626],{"class":1022},"    10.0.0.0\u002F",[490,1628,1629],{"class":1156},"8",[490,1631,1352],{"class":1022},[490,1633,1163],{"class":507},[490,1635,1637,1640,1643,1645],{"class":492,"line":1636},38,[490,1638,1639],{"class":1022},"    172.16.0.0\u002F",[490,1641,1642],{"class":1156},"12",[490,1644,1352],{"class":1022},[490,1646,1163],{"class":507},[490,1648,1650,1653,1656,1658],{"class":492,"line":1649},39,[490,1651,1652],{"class":1022},"    192.168.0.0\u002F",[490,1654,1655],{"class":1156},"16",[490,1657,1352],{"class":1022},[490,1659,1163],{"class":507},[490,1661,1663,1666,1669,1671],{"class":492,"line":1662},40,[490,1664,1665],{"class":1022},"    127.0.0.",[490,1667,1668],{"class":1156},"1",[490,1670,1352],{"class":1022},[490,1672,1163],{"class":507},[490,1674,1676],{"class":492,"line":1675},41,[490,1677,1304],{"class":1022},[464,1679,1681],{"id":1680},"enregistrer-et-redémarrer","Enregistrer et redémarrer",[390,1683,1684],{},"Enregistrez et fermez le fichier, puis redémarrez la stack.",[464,1686,1170],{"id":1687},"terminé-1",[390,1689,1690,1691,1696],{},"Dans les fichiers de configuration de domaine (voir la section suivante), vous pouvez activer ou désactiver la whitelist ou la blacklist (",[393,1692,1695],{"href":1693,"rel":1694},"https:\u002F\u002Fwww.forum-nas.fr\u002Fthreads\u002Ftuto-installer-swag-en-docker-reverse-proxy.15057\u002F",[397],"voir la documentation ici","). Dans notre cas, la whitelist n'autorise que les requêtes françaises. La blacklist ne bloque que les pays listés. Nous utiliserons la blacklist, comme ceci :",[480,1698,1702],{"className":1147,"code":1699,"filename":1700,"highlights":1701,"language":1149,"meta":486,"style":486},"server {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n\n    server_name some-app.*;\n\n    include \u002Fconfig\u002Fnginx\u002Fssl.conf;\n\n    client_max_body_size 0;\n\n    if ($geo-blacklist = no) { return 404; }\n\n    location \u002F {\n        include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n        include \u002Fconfig\u002Fnginx\u002Fresolver.conf;\n\n        set $upstream_app some-app;\n        set $upstream_port 1234;\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n}\n","some-app.subdomain.conf",[584],[412,1703,1704,1713,1726,1735,1739,1749,1753,1763,1767,1777,1781,1816,1820,1831,1841,1850,1854,1866,1880,1891,1913,1918],{"__ignoreMap":486},[490,1705,1706,1710],{"class":492,"line":493},[490,1707,1709],{"class":1708},"sAoO4","server",[490,1711,1712],{"class":1022}," {\n",[490,1714,1715,1718,1721,1724],{"class":492,"line":500},[490,1716,1717],{"class":1156},"    listen ",[490,1719,446],{"class":1720},"swwWl",[490,1722,1723],{"class":1022}," ssl",[490,1725,1163],{"class":507},[490,1727,1728,1730,1733],{"class":492,"line":511},[490,1729,1717],{"class":1156},[490,1731,1732],{"class":1022},"[::]:443 ssl",[490,1734,1163],{"class":507},[490,1736,1737],{"class":492,"line":519},[490,1738,726],{"emptyLinePlaceholder":725},[490,1740,1741,1744,1747],{"class":492,"line":532},[490,1742,1743],{"class":1156},"    server_name ",[490,1745,1746],{"class":1022},"some-app.*",[490,1748,1163],{"class":507},[490,1750,1751],{"class":492,"line":543},[490,1752,726],{"emptyLinePlaceholder":725},[490,1754,1755,1758,1761],{"class":492,"line":551},[490,1756,1757],{"class":1156},"    include ",[490,1759,1760],{"class":1022},"\u002Fconfig\u002Fnginx\u002Fssl.conf",[490,1762,1163],{"class":507},[490,1764,1765],{"class":492,"line":560},[490,1766,726],{"emptyLinePlaceholder":725},[490,1768,1769,1772,1775],{"class":492,"line":568},[490,1770,1771],{"class":1156},"    client_max_body_size ",[490,1773,1774],{"class":1720},"0",[490,1776,1163],{"class":507},[490,1778,1779],{"class":492,"line":576},[490,1780,726],{"emptyLinePlaceholder":725},[490,1782,1785,1789,1792,1794,1797,1800,1803,1807,1810,1813],{"class":1783,"line":584},[492,1784],"highlight",[490,1786,1788],{"class":1787},"sJLGa","    if",[490,1790,1791],{"class":1022}," (",[490,1793,1331],{"class":507},[490,1795,1796],{"class":1022},"geo-blacklist ",[490,1798,1799],{"class":1156},"= ",[490,1801,1802],{"class":1022},"no) ",[490,1804,1806],{"class":1805},"sSoIa","{ ",[490,1808,1809],{"class":1787},"return",[490,1811,1812],{"class":1720}," 404",[490,1814,1815],{"class":1805},"; }\n",[490,1817,1818],{"class":492,"line":592},[490,1819,726],{"emptyLinePlaceholder":725},[490,1821,1822,1825,1828],{"class":492,"line":600},[490,1823,1824],{"class":1708},"    location",[490,1826,1827],{"class":496}," \u002F ",[490,1829,1830],{"class":1022},"{\n",[490,1832,1833,1836,1839],{"class":492,"line":608},[490,1834,1835],{"class":1156},"        include ",[490,1837,1838],{"class":1022},"\u002Fconfig\u002Fnginx\u002Fproxy.conf",[490,1840,1163],{"class":507},[490,1842,1843,1845,1848],{"class":492,"line":616},[490,1844,1835],{"class":1156},[490,1846,1847],{"class":1022},"\u002Fconfig\u002Fnginx\u002Fresolver.conf",[490,1849,1163],{"class":507},[490,1851,1852],{"class":492,"line":624},[490,1853,726],{"emptyLinePlaceholder":725},[490,1855,1856,1859,1861,1864],{"class":492,"line":632},[490,1857,1858],{"class":1156},"        set ",[490,1860,1331],{"class":507},[490,1862,1863],{"class":1022},"upstream_app some-app",[490,1865,1163],{"class":507},[490,1867,1868,1870,1872,1875,1878],{"class":492,"line":640},[490,1869,1858],{"class":1156},[490,1871,1331],{"class":507},[490,1873,1874],{"class":1022},"upstream_port ",[490,1876,1877],{"class":1720},"1234",[490,1879,1163],{"class":507},[490,1881,1882,1884,1886,1889],{"class":492,"line":648},[490,1883,1858],{"class":1156},[490,1885,1331],{"class":507},[490,1887,1888],{"class":1022},"upstream_proto http",[490,1890,1163],{"class":507},[490,1892,1893,1896,1898,1901,1903,1906,1908,1911],{"class":492,"line":656},[490,1894,1895],{"class":1156},"        proxy_pass ",[490,1897,1331],{"class":507},[490,1899,1900],{"class":1022},"upstream_proto:\u002F\u002F",[490,1902,1331],{"class":507},[490,1904,1905],{"class":1022},"upstream_app:",[490,1907,1331],{"class":507},[490,1909,1910],{"class":1022},"upstream_port",[490,1912,1163],{"class":507},[490,1914,1915],{"class":492,"line":664},[490,1916,1917],{"class":1022},"    }\n",[490,1919,1920],{"class":492,"line":672},[490,1921,1304],{"class":1022},[436,1923,1925],{"id":1924},"facultatif-exposer-dockge","(Facultatif) Exposer Dockge",[441,1927,1928,1929,1932,1933,1935,1937,1938,1941,1942,1946,1947,1950,1951,1953,1954,1957,1958,1960,1961,1963,1964,405],{"icon":486},"📋 ",[417,1930,1931],{},"Au préalable :"," ",[938,1934],{},[938,1936],{},"\nNous partons du principe que vous avez créé un sous-domaine du type ",[412,1939,1940],{},"dockge.mondomaine.fr"," dans votre ",[393,1943,1945],{"href":1944},"\u002Fgeneral\u002Fnetworking\u002Fdns","zone DNS",", avec un ",[412,1948,1949],{},"CNAME"," pointant vers ",[412,1952,453],{},". À moins d'utiliser ",[393,1955,132],{"href":1956},"\u002Fserveex\u002Fsecurity\u002Fcloudflare",", nous partons aussi du principe que vous avez redirigé le port ",[412,1959,446],{}," de votre box vers le ",[412,1962,446],{}," du serveur dans ",[393,1965,1967],{"href":1966},"\u002Fgeneral\u002Fnetworking\u002Fnat","vos règles NAT",[390,1969,1970,1971,1973,1974,1950,1976,405],{},"Il est temps d'exposer Dockge sur internet pour accéder à vos conteneurs et les gérer à distance. Nous partons du principe que vous avez configuré le sous-domaine ",[412,1972,1940],{}," avec un ",[412,1975,1949],{},[412,1977,453],{},[407,1979,1980,1981,1984,1985,1988,1989,405],{},"Dockge ne gère pas l'authentification multifacteur. L'exposer en ligne pourrait compromettre toutes les machines reliées. Ne le faites que si vous utilisez une solution MFA comme ",[393,1982,136],{"href":1983},"\u002Fserveex\u002Fsecurity\u002Ftinyauth"," ou ",[393,1986,254],{"href":1987},"\u002Fserveex\u002Fadvanced\u002Fauthentik\u002F",". Sinon, ne l'exposez pas avec SWAG. Utilisez plutôt un VPN comme ",[393,1990,118],{"href":409},[460,1992,1993,1997,2003,2017,2020,2290,2293,2300,2304,2314,2423,2432,2435,2439,2449],{"level":462},[464,1994,1996],{"id":1995},"créer-le-fichier-subdomainconf","Créer le fichier subdomain.conf",[390,1998,1999,2000,814],{},"Ouvrez le fichier ",[412,2001,2002],{},"dockge.subdomain.conf",[480,2004,2006],{"className":977,"code":2005,"filename":979,"language":980,"meta":486,"style":486},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fdockge.subdomain.conf\n",[412,2007,2008],{"__ignoreMap":486},[490,2009,2010,2012,2014],{"class":492,"line":493},[490,2011,987],{"class":496},[490,2013,990],{"class":528},[490,2015,2016],{"class":528}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fdockge.subdomain.conf\n",[390,2018,2019],{},"Configurez-le comme ceci :",[480,2021,2023],{"className":1147,"code":2022,"filename":2002,"language":1149,"meta":486,"style":486},"## Version 2023\u002F12\u002F19\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n    \n    server_name dockge.*;  # définit le sous-domaine à rediriger\n\n    include \u002Fconfig\u002Fnginx\u002Fssl.conf;\n\n    client_max_body_size 0;\n\n    #if ($lan-ip = yes) { set $geo-whitelist yes; }\n    #if ($geo-whitelist = no) { return 404; }\n    if ($geo-blacklist = no) { return 404; } # tous les pays de la blacklist sont interdits\n\n    #include \u002Fconfig\u002Fnginx\u002Fldap-server.conf;\n    #include \u002Fconfig\u002Fnginx\u002Fauthelia-server.conf;\n    #include \u002Fconfig\u002Fnginx\u002Fauthentik-server.conf;\n\n    location \u002F {\n        #auth_basic \"Restricted\";\n        #auth_basic_user_file \u002Fconfig\u002Fnginx\u002F.htpasswd;\n\n        #include \u002Fconfig\u002Fnginx\u002Fldap-location.conf;\n        #include \u002Fconfig\u002Fnginx\u002Fauthelia-location.conf;\n        #include \u002Fconfig\u002Fnginx\u002Fauthentik-location.conf;\n\n        include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n        include \u002Fconfig\u002Fnginx\u002Fresolver.conf;\n        \n        set $upstream_app dockge; # nom du conteneur\n        set $upstream_port 5001; # port interne du conteneur (pas le port exposé)\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n}\n",[412,2024,2025,2030,2034,2040,2050,2058,2063,2075,2079,2087,2091,2099,2103,2108,2113,2139,2143,2148,2153,2158,2162,2170,2175,2180,2184,2189,2194,2199,2203,2211,2219,2224,2238,2254,2264,2282,2286],{"__ignoreMap":486},[490,2026,2027],{"class":492,"line":493},[490,2028,2029],{"class":788},"## Version 2023\u002F12\u002F19\n",[490,2031,2032],{"class":492,"line":500},[490,2033,726],{"emptyLinePlaceholder":725},[490,2035,2036,2038],{"class":492,"line":511},[490,2037,1709],{"class":1708},[490,2039,1712],{"class":1022},[490,2041,2042,2044,2046,2048],{"class":492,"line":519},[490,2043,1717],{"class":1156},[490,2045,446],{"class":1720},[490,2047,1723],{"class":1022},[490,2049,1163],{"class":507},[490,2051,2052,2054,2056],{"class":492,"line":532},[490,2053,1717],{"class":1156},[490,2055,1732],{"class":1022},[490,2057,1163],{"class":507},[490,2059,2060],{"class":492,"line":543},[490,2061,2062],{"class":1022},"    \n",[490,2064,2065,2067,2070,2072],{"class":492,"line":551},[490,2066,1743],{"class":1156},[490,2068,2069],{"class":1022},"dockge.*",[490,2071,1393],{"class":507},[490,2073,2074],{"class":788},"  # définit le sous-domaine à rediriger\n",[490,2076,2077],{"class":492,"line":560},[490,2078,726],{"emptyLinePlaceholder":725},[490,2080,2081,2083,2085],{"class":492,"line":568},[490,2082,1757],{"class":1156},[490,2084,1760],{"class":1022},[490,2086,1163],{"class":507},[490,2088,2089],{"class":492,"line":576},[490,2090,726],{"emptyLinePlaceholder":725},[490,2092,2093,2095,2097],{"class":492,"line":584},[490,2094,1771],{"class":1156},[490,2096,1774],{"class":1720},[490,2098,1163],{"class":507},[490,2100,2101],{"class":492,"line":592},[490,2102,726],{"emptyLinePlaceholder":725},[490,2104,2105],{"class":492,"line":600},[490,2106,2107],{"class":788},"    #if ($lan-ip = yes) { set $geo-whitelist yes; }\n",[490,2109,2110],{"class":492,"line":608},[490,2111,2112],{"class":788},"    #if ($geo-whitelist = no) { return 404; }\n",[490,2114,2115,2117,2119,2121,2123,2125,2127,2129,2131,2133,2136],{"class":492,"line":616},[490,2116,1788],{"class":1787},[490,2118,1791],{"class":1022},[490,2120,1331],{"class":507},[490,2122,1796],{"class":1022},[490,2124,1799],{"class":1156},[490,2126,1802],{"class":1022},[490,2128,1806],{"class":1805},[490,2130,1809],{"class":1787},[490,2132,1812],{"class":1720},[490,2134,2135],{"class":1805},"; }",[490,2137,2138],{"class":788}," # tous les pays de la blacklist sont interdits\n",[490,2140,2141],{"class":492,"line":624},[490,2142,726],{"emptyLinePlaceholder":725},[490,2144,2145],{"class":492,"line":632},[490,2146,2147],{"class":788},"    #include \u002Fconfig\u002Fnginx\u002Fldap-server.conf;\n",[490,2149,2150],{"class":492,"line":640},[490,2151,2152],{"class":788},"    #include \u002Fconfig\u002Fnginx\u002Fauthelia-server.conf;\n",[490,2154,2155],{"class":492,"line":648},[490,2156,2157],{"class":788},"    #include \u002Fconfig\u002Fnginx\u002Fauthentik-server.conf;\n",[490,2159,2160],{"class":492,"line":656},[490,2161,726],{"emptyLinePlaceholder":725},[490,2163,2164,2166,2168],{"class":492,"line":664},[490,2165,1824],{"class":1708},[490,2167,1827],{"class":496},[490,2169,1830],{"class":1022},[490,2171,2172],{"class":492,"line":672},[490,2173,2174],{"class":788},"        #auth_basic \"Restricted\";\n",[490,2176,2177],{"class":492,"line":680},[490,2178,2179],{"class":788},"        #auth_basic_user_file \u002Fconfig\u002Fnginx\u002F.htpasswd;\n",[490,2181,2182],{"class":492,"line":688},[490,2183,726],{"emptyLinePlaceholder":725},[490,2185,2186],{"class":492,"line":696},[490,2187,2188],{"class":788},"        #include \u002Fconfig\u002Fnginx\u002Fldap-location.conf;\n",[490,2190,2191],{"class":492,"line":707},[490,2192,2193],{"class":788},"        #include \u002Fconfig\u002Fnginx\u002Fauthelia-location.conf;\n",[490,2195,2196],{"class":492,"line":715},[490,2197,2198],{"class":788},"        #include \u002Fconfig\u002Fnginx\u002Fauthentik-location.conf;\n",[490,2200,2201],{"class":492,"line":722},[490,2202,726],{"emptyLinePlaceholder":725},[490,2204,2205,2207,2209],{"class":492,"line":729},[490,2206,1835],{"class":1156},[490,2208,1838],{"class":1022},[490,2210,1163],{"class":507},[490,2212,2213,2215,2217],{"class":492,"line":737},[490,2214,1835],{"class":1156},[490,2216,1847],{"class":1022},[490,2218,1163],{"class":507},[490,2220,2221],{"class":492,"line":744},[490,2222,2223],{"class":1022},"        \n",[490,2225,2226,2228,2230,2233,2235],{"class":492,"line":1579},[490,2227,1858],{"class":1156},[490,2229,1331],{"class":507},[490,2231,2232],{"class":1022},"upstream_app dockge",[490,2234,1393],{"class":507},[490,2236,2237],{"class":788}," # nom du conteneur\n",[490,2239,2240,2242,2244,2246,2249,2251],{"class":492,"line":1592},[490,2241,1858],{"class":1156},[490,2243,1331],{"class":507},[490,2245,1874],{"class":1022},[490,2247,2248],{"class":1720},"5001",[490,2250,1393],{"class":507},[490,2252,2253],{"class":788}," # port interne du conteneur (pas le port exposé)\n",[490,2255,2256,2258,2260,2262],{"class":492,"line":1597},[490,2257,1858],{"class":1156},[490,2259,1331],{"class":507},[490,2261,1888],{"class":1022},[490,2263,1163],{"class":507},[490,2265,2266,2268,2270,2272,2274,2276,2278,2280],{"class":492,"line":1602},[490,2267,1895],{"class":1156},[490,2269,1331],{"class":507},[490,2271,1900],{"class":1022},[490,2273,1331],{"class":507},[490,2275,1905],{"class":1022},[490,2277,1331],{"class":507},[490,2279,1910],{"class":1022},[490,2281,1163],{"class":507},[490,2283,2284],{"class":492,"line":1613},[490,2285,1917],{"class":1022},[490,2287,2288],{"class":492,"line":1623},[490,2289,1304],{"class":1022},[390,2291,2292],{},"Enregistrez et quittez. La configuration se met à jour en quelques secondes.",[441,2294,2295,2296,2299],{},"Par défaut, SWAG ne connaît pas le nom « dockge ». Vous devrez ajouter le réseau de Dockge au ",[412,2297,2298],{},"compose.yml"," de SWAG.",[464,2301,2303],{"id":2302},"ajouter-le-réseau-de-dockge-à-swag","Ajouter le réseau de Dockge à SWAG",[390,2305,2306,2307,2310,2311,2313],{},"Allez sur la stack SWAG, cliquez sur ",[412,2308,2309],{},"edit",", et modifiez le fichier de configuration comme ceci (notez la section ",[412,2312,732],{},") :",[480,2315,2317],{"className":482,"code":2316,"filename":484,"language":485,"meta":486,"style":486},"---\nservices:\n  swag:\n    container_name: #...\n    # ...\n    networks:            # Relie le conteneur au réseau personnalisé\n\n      - dockge           # Nom du réseau tel que défini dans la stack\n\nnetworks:                # Définit le réseau personnalisé\n  # ...\n  dockge:                # Nom du réseau tel que défini dans la stack\n    name: dockge_default # Vrai nom du réseau externe\n    external: true\n",[412,2318,2319,2323,2329,2335,2344,2349,2358,2362,2372,2376,2385,2390,2400,2412],{"__ignoreMap":486},[490,2320,2321],{"class":492,"line":493},[490,2322,497],{"class":496},[490,2324,2325,2327],{"class":492,"line":500},[490,2326,504],{"class":503},[490,2328,508],{"class":507},[490,2330,2331,2333],{"class":492,"line":511},[490,2332,514],{"class":503},[490,2334,508],{"class":507},[490,2336,2337,2339,2341],{"class":492,"line":519},[490,2338,535],{"class":503},[490,2340,525],{"class":507},[490,2342,2343],{"class":788}," #...\n",[490,2345,2346],{"class":492,"line":532},[490,2347,2348],{"class":788},"    # ...\n",[490,2350,2351,2353,2355],{"class":492,"line":543},[490,2352,710],{"class":503},[490,2354,525],{"class":507},[490,2356,2357],{"class":788},"            # Relie le conteneur au réseau personnalisé\n",[490,2359,2360],{"class":492,"line":551},[490,2361,726],{"emptyLinePlaceholder":725},[490,2363,2364,2366,2369],{"class":492,"line":560},[490,2365,554],{"class":507},[490,2367,2368],{"class":528}," dockge",[490,2370,2371],{"class":788},"           # Nom du réseau tel que défini dans la stack\n",[490,2373,2374],{"class":492,"line":568},[490,2375,726],{"emptyLinePlaceholder":725},[490,2377,2378,2380,2382],{"class":492,"line":576},[490,2379,732],{"class":503},[490,2381,525],{"class":507},[490,2383,2384],{"class":788},"                # Définit le réseau personnalisé\n",[490,2386,2387],{"class":492,"line":584},[490,2388,2389],{"class":788},"  # ...\n",[490,2391,2392,2395,2397],{"class":492,"line":592},[490,2393,2394],{"class":503},"  dockge",[490,2396,525],{"class":507},[490,2398,2399],{"class":788},"                # Nom du réseau tel que défini dans la stack\n",[490,2401,2402,2404,2406,2409],{"class":492,"line":600},[490,2403,747],{"class":503},[490,2405,525],{"class":507},[490,2407,2408],{"class":528}," dockge_default",[490,2410,2411],{"class":788}," # Vrai nom du réseau externe\n",[490,2413,2414,2417,2419],{"class":492,"line":608},[490,2415,2416],{"class":503},"    external",[490,2418,525],{"class":507},[490,2420,2422],{"class":2421},"s08Ry"," true\n",[441,2424,2425,2426,2429,2430,405],{},"Nous partons du principe que le réseau de Dockge s'appelle ",[412,2427,2428],{},"dockge_default",". Vous pouvez vérifier que tout fonctionne en consultant le tableau de bord de SWAG sur ",[412,2431,1180],{},[390,2433,2434],{},"Redéployez la stack SWAG.",[464,2436,2438],{"id":2437},"visiter-votre-nouveau-sous-domaine","Visiter votre nouveau sous-domaine",[390,2440,2441,2442,2445,2446,2448],{},"Patientez un instant, puis visitez ",[412,2443,2444],{},"https:\u002F\u002Fdockge.mondomaine.fr"," dans votre navigateur. Vous devriez être redirigé vers Dockge. Vous pouvez aussi vérifier l'état du service depuis le tableau de bord (",[412,2447,1180],{}," sur votre réseau local).",[464,2450,1170],{"id":2451},"terminé-2",[436,2453,2455],{"id":2454},"exposer-un-autre-service-avec-swag","Exposer un autre service avec SWAG",[390,2457,2458,2459,2462],{},"SWAG inclut des modèles pour la plupart des services connus, nommés ",[412,2460,2461],{},"nomduservice.subdomain.conf.sample",". Il suffit de créer le sous-domaine dans la zone DNS de votre registrar (comme OVH), de le faire pointer vers votre domaine principal via un CNAME, puis de copier et renommer le fichier d'exemple :",[480,2464,2466],{"className":977,"code":2465,"filename":979,"language":980,"meta":486,"style":486},"cd \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fproxy-confs\nsudo cp nomduservice.subdomain.conf.sample nomduservice.subdomain.conf\n",[412,2467,2468,2477],{"__ignoreMap":486},[490,2469,2470,2474],{"class":492,"line":493},[490,2471,2473],{"class":2472},"sJGgK","cd",[490,2475,2476],{"class":528}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fproxy-confs\n",[490,2478,2479,2481,2484,2487],{"class":492,"line":500},[490,2480,987],{"class":496},[490,2482,2483],{"class":528}," cp",[490,2485,2486],{"class":528}," nomduservice.subdomain.conf.sample",[490,2488,2489],{"class":528}," nomduservice.subdomain.conf\n",[2491,2492,2493,2498],"caution",{},[390,2494,2495],{},[417,2496,2497],{},"Si le sous-domaine n'est pas redirigé correctement",[1063,2499,2500,2515],{},[1066,2501,2502,2503],{},"Ouvrez le fichier et vérifiez le nom du conteneur dans ",[412,2504,2505,2508,2510,2513],{"className":1147,"language":1149,"style":486},[490,2506,2507],{"class":1156},"set ",[490,2509,1331],{"class":507},[490,2511,2512],{"class":1022},"upstream_app nomduconteneur",[490,2514,1393],{"class":507},[1066,2516,2517,2518,2520],{},"Assurez-vous d'avoir ajouté le réseau du conteneur dans le ",[412,2519,2298],{}," de SWAG",[390,2522,2523,2524,2534,2535,405],{},"Vous pouvez aussi personnaliser le sous-domaine en modifiant ",[412,2525,2526,2529,2532],{"className":1147,"language":1149,"style":486},[490,2527,2528],{"class":1156},"server_name ",[490,2530,2531],{"class":1022},"votresousdomaine.*",[490,2533,1393],{"class":507}," et en renommant le fichier en ",[412,2536,2537],{},"votresousdomaine.subdomain.conf",[2539,2540,2541],"style",{},"html pre.shiki code .sEgDM, html code.shiki .sEgDM{--shiki-light:#B392F0;--shiki-default:#FFCB6B;--shiki-dark:#B392F0}html pre.shiki code .sRuoG, html code.shiki .sRuoG{--shiki-light:#85E89D;--shiki-default:#F07178;--shiki-dark:#85E89D}html pre.shiki code .s8jd1, html code.shiki .s8jd1{--shiki-light:#E1E4E8;--shiki-default:#89DDFF;--shiki-dark:#E1E4E8}html pre.shiki code .s11XM, html code.shiki .s11XM{--shiki-light:#9ECBFF;--shiki-default:#C3E88D;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sDvJj, html code.shiki .sDvJj{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .szyEh, html code.shiki .szyEh{--shiki-light:#F97583;--shiki-default:#F07178;--shiki-dark:#F97583}html pre.shiki code .slcoZ, html code.shiki .slcoZ{--shiki-light:#E1E4E8;--shiki-default:#EEFFFF;--shiki-dark:#E1E4E8}html pre.shiki code .sJPTy, html code.shiki .sJPTy{--shiki-light:#F97583;--shiki-default:#89DDFF;--shiki-dark:#F97583}html pre.shiki code .soUAX, html code.shiki .soUAX{--shiki-light:#79B8FF;--shiki-default:#89DDFF;--shiki-dark:#79B8FF}html pre.shiki code .sAoO4, html code.shiki .sAoO4{--shiki-light:#F97583;--shiki-default:#C792EA;--shiki-dark:#F97583}html pre.shiki code .swwWl, html code.shiki .swwWl{--shiki-light:#79B8FF;--shiki-default:#F78C6C;--shiki-dark:#79B8FF}html pre.shiki code .sJLGa, html code.shiki .sJLGa{--shiki-light:#F97583;--shiki-light-font-style:inherit;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sSoIa, html code.shiki .sSoIa{--shiki-light:#E1E4E8;--shiki-default:#F07178;--shiki-dark:#E1E4E8}html pre.shiki code .s08Ry, html code.shiki .s08Ry{--shiki-light:#79B8FF;--shiki-default:#FF9CAC;--shiki-dark:#79B8FF}html pre.shiki code .sJGgK, html code.shiki .sJGgK{--shiki-light:#79B8FF;--shiki-default:#82AAFF;--shiki-dark:#79B8FF}",{"title":486,"searchDepth":500,"depth":500,"links":2543},[2544,2551,2552,2558,2564],{"id":438,"depth":500,"text":439,"children":2545},[2546,2547,2548,2549,2550],{"id":466,"depth":511,"text":467},{"id":806,"depth":511,"text":807},{"id":945,"depth":511,"text":946},{"id":1117,"depth":511,"text":1118},{"id":1169,"depth":511,"text":1170},{"id":1173,"depth":500,"text":1174},{"id":1195,"depth":500,"text":1196,"children":2553},[2554,2555,2556,2557],{"id":1223,"depth":511,"text":1224},{"id":1241,"depth":511,"text":1242},{"id":1680,"depth":511,"text":1681},{"id":1687,"depth":511,"text":1170},{"id":1924,"depth":500,"text":1925,"children":2559},[2560,2561,2562,2563],{"id":1995,"depth":511,"text":1996},{"id":2302,"depth":511,"text":2303},{"id":2437,"depth":511,"text":2438},{"id":2451,"depth":511,"text":1170},{"id":2454,"depth":500,"text":2455},[2566],"Djeex","Configurer SWAG comme reverse proxy avec SSL automatique, exposer vos services en toute sécurité et activer le blocage géographique sur votre homelab.","md",null,{},{"title":122,"description":2567},"vme6f2kKgCkDBSpJGISRWFzsdz3-LClmstJ1g4aRmac",[2574,2576],{"title":118,"path":119,"stem":120,"description":2575,"children":-1},"Installer et configurer WireGuard VPN pour accéder à votre homelab de n'importe où et connecter tous vos appareils à votre réseau privé.",{"title":132,"path":133,"stem":134,"description":2577,"children":-1},"Utiliser les tunnels Cloudflare et Zero Trust pour exposer des services sans ouvrir de ports, configurer SWAG et gérer plusieurs tunnels.",1788645837581]