[{"data":1,"prerenderedAt":3561},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-serveex-advanced-authentik-":376,"-fr-serveex-advanced-authentik--surround":3556},[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":254,"body":378,"contributors":3548,"description":3550,"extension":3551,"hideCopyPage":15,"hideHeader":15,"hideToc":15,"links":3552,"meta":3553,"navigation":690,"path":255,"seo":3554,"stem":256,"__hash__":3555},"docs_fr\u002Ffr\u002F3.serveex\u002F91.advanced\u002F1.authentik.md",{"type":379,"value":380,"toc":3504},"minimark",[381,389,402,411,419,422,425,440,443,450,457,462,467,470,475,479,1546,1550,1553,1593,2140,2146,2150,2153,2192,2195,2199,2207,2211,2214,2222,2225,2346,2353,2356,2359,2364,2368,2376,2383,2403,2410,2416,3255,3266,3270,3281,3500],[382,383],"ellipsis",{"blur":384,"left":385,"top":386,"width":387,"z-index":388},"140px","0px","10rem","40rem","60",[390,391,392,393,397,398,401],"note",{},"Authentik est une alternative avancée à ",[394,395,136],"a",{"href":396},"\u002Fserveex\u002Fsecurity\u002Ftinyauth"," et ",[394,399,140],{"href":400},"\u002Fserveex\u002Fsecurity\u002Fpocket-id"," : une seule application qui assume à la fois le rôle de proxy forward-auth et de fournisseur OIDC, avec du LDAP, du SAML et des politiques d'accès de type RBAC intégrés (restreindre qui peut atteindre quelle application, pas seulement s'il est connecté), le tout par-dessus sa propre interface d'administration des utilisateurs, groupes et outposts. TinyAuth et Pocket ID restent plus légers et plus simples pour un petit homelab ; Authentik devient intéressant dès que vous avez besoin d'un contrôle d'accès plus fin ou d'une couverture de protocoles plus large qu'OIDC seul.",[403,404,405,410],"p",{},[394,406,254],{"href":407,"rel":408},"https:\u002F\u002Fgoauthentik.io",[409],"nofollow"," est un outil d'authentification unique (SSO) qui permet de se connecter une seule fois à toutes les plateformes compatibles OpenID. Il peut aussi sécuriser l'accès à vos services exposés en s'injectant via SWAG dans les requêtes vers ces services.",[403,412,413,414,418],{},"Par exemple, si vous exposez Dockge en ligne sur ",[415,416,417],"code",{},"dockge.mondomaine.fr",", vous arriverez d'abord sur une page de connexion Authentik. Si vous vous êtes déjà authentifié sur un autre service protégé par Authentik, vous n'aurez pas à vous reconnecter. Cela permet de ne s'authentifier qu'une fois par jour pour tous les services protégés.",[403,420,421],{},"Authentik gère aussi l'authentification multifacteur, dont le TOTP (un code généré par l'application d'authentification de votre choix). Il permet en outre de se connecter via un compte Microsoft ou Google, à condition d'avoir configuré l'une de ces applications.",[403,423,424],{},"C'est une excellente alternative au VPN pour exposer des services en toute sécurité, en particulier ceux qui n'ont ni MFA ni protection de connexion (le tableau de bord de SWAG par exemple).",[403,426,427,428,433,434,439],{},"Authentik dispose d'une ",[394,429,432],{"href":430,"rel":431},"https:\u002F\u002Fdocs.goauthentik.io\u002Fdocs\u002Finstallation\u002Fdocker-compose",[409],"documentation fournie"," et de ",[394,435,438],{"href":436,"rel":437},"https:\u002F\u002Fwww.youtube.com\u002F@cooptonian",[409],"très bons tutoriels de Cooptonian",". Ici, nous verrons les bases en prenant Dockge comme exemple.",[403,441,442],{},"Il y a deux modes principaux à connaître :",[444,445,446],"ul",{},[447,448,449],"li",{},"Le premier permet aux applications gérant nativement le SSO compatible OpenID de se connecter directement à Authentik. C'est la méthode à privilégier, puisque l'application décide elle-même de ce qui est public et de ce qui est protégé.",[403,451,452],{},[453,454],"img",{"alt":455,"src":456},"Picture","\u002Fimg\u002Fserveex\u002Fauth-native.svg",[444,458,459],{},[447,460,461],{},"La seconde méthode injecte l'authentification Authentik via SWAG avant d'atteindre le service cible.",[403,463,464],{},[453,465],{"alt":455,"src":466},"\u002Fimg\u002Fserveex\u002Fauth-proxy.svg",[403,468,469],{},"Les deux modes se configurent application par application.",[471,472,474],"h2",{"id":473},"installation","Installation",[476,477],"file-tree",{":tree":478},"{\"\u002F\":[{\"srv\":[{\"docker\":[{\"authentik\":[\".env\",\"compose.yml\",\"media\u002F\",\"certs\u002F\",\"custom-template\u002F\",\"ssh\u002F\"]}]}]}]}",[480,481,483,488,527,531,546,624,637,641,662,1500,1504,1517,1526,1542],"steps",{"level":482},"3",[484,485,487],"h3",{"id":486},"créer-les-dossiers","Créer les dossiers",[489,490,496],"pre",{"className":491,"code":492,"filename":493,"language":494,"meta":495,"style":495},"language-bash shiki shiki-themes github-dark material-theme github-dark","sudo mkdir -p \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fmedia \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fcerts \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fcustom-template \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fssh\n","Terminal","bash","",[415,497,498],{"__ignoreMap":495},[499,500,503,507,511,515,518,521,524],"span",{"class":501,"line":502},"line",1,[499,504,506],{"class":505},"sEgDM","sudo",[499,508,510],{"class":509},"s11XM"," mkdir",[499,512,514],{"class":513},"sJWha"," -p",[499,516,517],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fmedia",[499,519,520],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fcerts",[499,522,523],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fcustom-template",[499,525,526],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fssh\n",[484,528,530],{"id":529},"générer-les-secrets","Générer les secrets",[403,532,533,534,537,538,541,542,545],{},"Placez-vous dans le dossier ",[415,535,536],{},"authentik"," avec ",[415,539,540],{},"cd \u002Fsrv\u002Fdocker\u002Fauthentik"," et générez un mot de passe et une clé secrète à inclure dans le fichier ",[415,543,544],{},".env"," :",[489,547,549],{"className":491,"code":548,"filename":493,"language":494,"meta":495,"style":495},"sudo echo \"PG_PASS=$(openssl rand 36 | base64)\" >> .env\nsudo echo \"AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)\" >> .env\n",[415,550,551,594],{"__ignoreMap":495},[499,552,553,555,558,562,565,568,571,574,578,582,585,588,591],{"class":501,"line":502},[499,554,506],{"class":505},[499,556,557],{"class":509}," echo",[499,559,561],{"class":560},"s8K8j"," \"",[499,563,564],{"class":509},"PG_PASS=",[499,566,567],{"class":560},"$(",[499,569,570],{"class":505},"openssl",[499,572,573],{"class":509}," rand ",[499,575,577],{"class":576},"swwWl","36",[499,579,581],{"class":580},"sJPTy"," |",[499,583,584],{"class":505}," base64",[499,586,587],{"class":560},")\"",[499,589,590],{"class":580}," >>",[499,592,593],{"class":509}," .env\n",[499,595,597,599,601,603,606,608,610,612,614,616,618,620,622],{"class":501,"line":596},2,[499,598,506],{"class":505},[499,600,557],{"class":509},[499,602,561],{"class":560},[499,604,605],{"class":509},"AUTHENTIK_SECRET_KEY=",[499,607,567],{"class":560},[499,609,570],{"class":505},[499,611,573],{"class":509},[499,613,388],{"class":576},[499,615,581],{"class":580},[499,617,584],{"class":505},[499,619,587],{"class":560},[499,621,590],{"class":580},[499,623,593],{"class":509},[390,625,626,627,630,631,633,634],{},"Pour générer les clés, nous avons créé les dossiers avant le déploiement par Dockge. Dockge vous empêchera de créer une stack du même nom dans ces dossiers tant qu'un fichier ",[415,628,629],{},"compose.yml"," n'existe pas. Créez donc un ",[415,632,629],{}," vide pour qu'elle apparaisse comme stack inactive :\n",[415,635,636],{},"bash [Terminal]     sudo nano \u002Fsrv\u002Fdocker\u002Fauthentik\u002Fcompose.yml     ",[484,638,640],{"id":639},"déployer-la-stack","Déployer la stack",[403,642,643,644,646,647,655,656,661],{},"Ouvrez Dockge et cherchez « authentik » dans les stacks inactives.\nNommez la stack ",[415,645,536],{}," et collez la configuration suivante, en remplaçant ",[415,648,651],{"className":649,"language":650,"style":495},"language-properties shiki shiki-themes github-dark material-theme github-dark","properties",[499,652,654],{"class":653},"slcoZ","{AUTHENTIK_TAG:-2026.2}"," par ",[394,657,660],{"href":658,"rel":659},"https:\u002F\u002Fgoauthentik.io\u002Fdocs\u002Freleases",[409],"la dernière version d'Authentik",".",[489,663,668],{"className":664,"code":665,"filename":666,"language":667,"meta":495,"style":495},"language-yaml shiki shiki-themes github-dark material-theme github-dark","---\nservices:\n\n  postgresql:\n    image: docker.io\u002Flibrary\u002Fpostgres:16-alpine\n    container_name: authentik-postgresql\n    restart: unless-stopped\n    healthcheck:\n      test:\n        - CMD-SHELL\n        - pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}\n      start_period: 20s\n      interval: 30s\n      retries: 5\n      timeout: 5s\n    volumes:\n      - database:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n    environment:\n      POSTGRES_PASSWORD: ${PG_PASS:?database password required}\n      POSTGRES_USER: ${PG_USER:-authentik}\n      POSTGRES_DB: ${PG_DB:-authentik}\n    env_file:\n      - .env\n\n  redis:\n    image: docker.io\u002Flibrary\u002Fredis:alpine\n    container_name: authentik-redis\n    command: --save 60 1 --loglevel warning\n    restart: unless-stopped\n    healthcheck:\n      test:\n        - CMD-SHELL\n        - redis-cli ping | grep PONG\n      start_period: 20s\n      interval: 30s\n      retries: 5\n      timeout: 3s\n    volumes:\n      - redis:\u002Fdata\n  \n  server:\n    image: ${AUTHENTIK_IMAGE:-ghcr.io\u002Fgoauthentik\u002Fserver}:${AUTHENTIK_TAG:-2026.2}\n    container_name: authentik-server\n    restart: unless-stopped\n    command: server\n    environment:\n      AUTHENTIK_REDIS__HOST: redis\n      AUTHENTIK_POSTGRESQL__HOST: postgresql\n      AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}\n      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}\n      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}\n    volumes:\n      - .\u002Fmedia:\u002Fmedia\n      - .\u002Fcustom-templates:\u002Ftemplates\n      - .\u002Fssh:\u002Fauthentik\u002F.ssh\n    env_file:\n      - .env\n    ports:\n      - ${COMPOSE_PORT_HTTP:-9000}:9000\n      - ${COMPOSE_PORT_HTTPS:-9443}:9443\n    depends_on:\n      - postgresql\n      - redis\n\n  worker:\n    image: ${AUTHENTIK_IMAGE:-ghcr.io\u002Fgoauthentik\u002Fserver}:${AUTHENTIK_TAG:-2026.2}\n    container_name: authentik-worker\n    restart: unless-stopped\n    command: worker\n    environment:\n      AUTHENTIK_REDIS__HOST: redis\n      AUTHENTIK_POSTGRESQL__HOST: postgresql\n      AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}\n      AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}\n      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}\n    # `user: root` and the docker socket volume are optional.\n    # See more for the docker socket integration here:\n    # https:\u002F\u002Fgoauthentik.io\u002Fdocs\u002Foutposts\u002Fintegrations\u002Fdocker\n    # Removing `user: root` also prevents the worker from fixing the permissions\n    # on the mounted folders, so when removing this make sure the folders have the correct UID\u002FGID\n    # (1000:1000 by default)\n    user: root\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n      - .\u002Fmedia:\u002Fmedia\n      - .\u002Fcerts:\u002Fcerts\n      - .\u002Fcustom-templates:\u002Ftemplates\n      - .\u002Fssh:\u002Fauthentik\u002F.ssh\n    env_file:\n      - .env\n    depends_on:\n      - postgresql\n      - redis\n\nvolumes:\n  database:\n    driver: local\n  redis:\n    driver: local\n","compose.yaml","yaml",[415,669,670,675,685,692,700,712,723,734,742,750,759,767,778,789,800,811,819,828,836,847,858,869,877,884,889,897,907,917,928,937,944,951,958,966,975,984,993,1003,1010,1018,1024,1032,1042,1052,1061,1071,1078,1089,1100,1110,1120,1131,1138,1146,1154,1162,1169,1176,1184,1192,1200,1208,1215,1222,1227,1235,1244,1254,1263,1273,1280,1289,1298,1307,1316,1325,1332,1338,1344,1350,1356,1362,1373,1380,1388,1395,1403,1410,1417,1424,1431,1438,1445,1452,1457,1465,1473,1484,1491],{"__ignoreMap":495},[499,671,672],{"class":501,"line":502},[499,673,674],{"class":505},"---\n",[499,676,677,681],{"class":501,"line":596},[499,678,680],{"class":679},"sRuoG","services",[499,682,684],{"class":683},"s8jd1",":\n",[499,686,688],{"class":501,"line":687},3,[499,689,691],{"emptyLinePlaceholder":690},true,"\n",[499,693,695,698],{"class":501,"line":694},4,[499,696,697],{"class":679},"  postgresql",[499,699,684],{"class":683},[499,701,703,706,709],{"class":501,"line":702},5,[499,704,705],{"class":679},"    image",[499,707,708],{"class":683},":",[499,710,711],{"class":509}," docker.io\u002Flibrary\u002Fpostgres:16-alpine\n",[499,713,715,718,720],{"class":501,"line":714},6,[499,716,717],{"class":679},"    container_name",[499,719,708],{"class":683},[499,721,722],{"class":509}," authentik-postgresql\n",[499,724,726,729,731],{"class":501,"line":725},7,[499,727,728],{"class":679},"    restart",[499,730,708],{"class":683},[499,732,733],{"class":509}," unless-stopped\n",[499,735,737,740],{"class":501,"line":736},8,[499,738,739],{"class":679},"    healthcheck",[499,741,684],{"class":683},[499,743,745,748],{"class":501,"line":744},9,[499,746,747],{"class":679},"      test",[499,749,684],{"class":683},[499,751,753,756],{"class":501,"line":752},10,[499,754,755],{"class":683},"        -",[499,757,758],{"class":509}," CMD-SHELL\n",[499,760,762,764],{"class":501,"line":761},11,[499,763,755],{"class":683},[499,765,766],{"class":509}," pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}\n",[499,768,770,773,775],{"class":501,"line":769},12,[499,771,772],{"class":679},"      start_period",[499,774,708],{"class":683},[499,776,777],{"class":509}," 20s\n",[499,779,781,784,786],{"class":501,"line":780},13,[499,782,783],{"class":679},"      interval",[499,785,708],{"class":683},[499,787,788],{"class":509}," 30s\n",[499,790,792,795,797],{"class":501,"line":791},14,[499,793,794],{"class":679},"      retries",[499,796,708],{"class":683},[499,798,799],{"class":576}," 5\n",[499,801,803,806,808],{"class":501,"line":802},15,[499,804,805],{"class":679},"      timeout",[499,807,708],{"class":683},[499,809,810],{"class":509}," 5s\n",[499,812,814,817],{"class":501,"line":813},16,[499,815,816],{"class":679},"    volumes",[499,818,684],{"class":683},[499,820,822,825],{"class":501,"line":821},17,[499,823,824],{"class":683},"      -",[499,826,827],{"class":509}," database:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n",[499,829,831,834],{"class":501,"line":830},18,[499,832,833],{"class":679},"    environment",[499,835,684],{"class":683},[499,837,839,842,844],{"class":501,"line":838},19,[499,840,841],{"class":679},"      POSTGRES_PASSWORD",[499,843,708],{"class":683},[499,845,846],{"class":509}," ${PG_PASS:?database password required}\n",[499,848,850,853,855],{"class":501,"line":849},20,[499,851,852],{"class":679},"      POSTGRES_USER",[499,854,708],{"class":683},[499,856,857],{"class":509}," ${PG_USER:-authentik}\n",[499,859,861,864,866],{"class":501,"line":860},21,[499,862,863],{"class":679},"      POSTGRES_DB",[499,865,708],{"class":683},[499,867,868],{"class":509}," ${PG_DB:-authentik}\n",[499,870,872,875],{"class":501,"line":871},22,[499,873,874],{"class":679},"    env_file",[499,876,684],{"class":683},[499,878,880,882],{"class":501,"line":879},23,[499,881,824],{"class":683},[499,883,593],{"class":509},[499,885,887],{"class":501,"line":886},24,[499,888,691],{"emptyLinePlaceholder":690},[499,890,892,895],{"class":501,"line":891},25,[499,893,894],{"class":679},"  redis",[499,896,684],{"class":683},[499,898,900,902,904],{"class":501,"line":899},26,[499,901,705],{"class":679},[499,903,708],{"class":683},[499,905,906],{"class":509}," docker.io\u002Flibrary\u002Fredis:alpine\n",[499,908,910,912,914],{"class":501,"line":909},27,[499,911,717],{"class":679},[499,913,708],{"class":683},[499,915,916],{"class":509}," authentik-redis\n",[499,918,920,923,925],{"class":501,"line":919},28,[499,921,922],{"class":679},"    command",[499,924,708],{"class":683},[499,926,927],{"class":509}," --save 60 1 --loglevel warning\n",[499,929,931,933,935],{"class":501,"line":930},29,[499,932,728],{"class":679},[499,934,708],{"class":683},[499,936,733],{"class":509},[499,938,940,942],{"class":501,"line":939},30,[499,941,739],{"class":679},[499,943,684],{"class":683},[499,945,947,949],{"class":501,"line":946},31,[499,948,747],{"class":679},[499,950,684],{"class":683},[499,952,954,956],{"class":501,"line":953},32,[499,955,755],{"class":683},[499,957,758],{"class":509},[499,959,961,963],{"class":501,"line":960},33,[499,962,755],{"class":683},[499,964,965],{"class":509}," redis-cli ping | grep PONG\n",[499,967,969,971,973],{"class":501,"line":968},34,[499,970,772],{"class":679},[499,972,708],{"class":683},[499,974,777],{"class":509},[499,976,978,980,982],{"class":501,"line":977},35,[499,979,783],{"class":679},[499,981,708],{"class":683},[499,983,788],{"class":509},[499,985,987,989,991],{"class":501,"line":986},36,[499,988,794],{"class":679},[499,990,708],{"class":683},[499,992,799],{"class":576},[499,994,996,998,1000],{"class":501,"line":995},37,[499,997,805],{"class":679},[499,999,708],{"class":683},[499,1001,1002],{"class":509}," 3s\n",[499,1004,1006,1008],{"class":501,"line":1005},38,[499,1007,816],{"class":679},[499,1009,684],{"class":683},[499,1011,1013,1015],{"class":501,"line":1012},39,[499,1014,824],{"class":683},[499,1016,1017],{"class":509}," redis:\u002Fdata\n",[499,1019,1021],{"class":501,"line":1020},40,[499,1022,1023],{"class":653},"  \n",[499,1025,1027,1030],{"class":501,"line":1026},41,[499,1028,1029],{"class":679},"  server",[499,1031,684],{"class":683},[499,1033,1035,1037,1039],{"class":501,"line":1034},42,[499,1036,705],{"class":679},[499,1038,708],{"class":683},[499,1040,1041],{"class":509}," ${AUTHENTIK_IMAGE:-ghcr.io\u002Fgoauthentik\u002Fserver}:${AUTHENTIK_TAG:-2026.2}\n",[499,1043,1045,1047,1049],{"class":501,"line":1044},43,[499,1046,717],{"class":679},[499,1048,708],{"class":683},[499,1050,1051],{"class":509}," authentik-server\n",[499,1053,1055,1057,1059],{"class":501,"line":1054},44,[499,1056,728],{"class":679},[499,1058,708],{"class":683},[499,1060,733],{"class":509},[499,1062,1064,1066,1068],{"class":501,"line":1063},45,[499,1065,922],{"class":679},[499,1067,708],{"class":683},[499,1069,1070],{"class":509}," server\n",[499,1072,1074,1076],{"class":501,"line":1073},46,[499,1075,833],{"class":679},[499,1077,684],{"class":683},[499,1079,1081,1084,1086],{"class":501,"line":1080},47,[499,1082,1083],{"class":679},"      AUTHENTIK_REDIS__HOST",[499,1085,708],{"class":683},[499,1087,1088],{"class":509}," redis\n",[499,1090,1092,1095,1097],{"class":501,"line":1091},48,[499,1093,1094],{"class":679},"      AUTHENTIK_POSTGRESQL__HOST",[499,1096,708],{"class":683},[499,1098,1099],{"class":509}," postgresql\n",[499,1101,1103,1106,1108],{"class":501,"line":1102},49,[499,1104,1105],{"class":679},"      AUTHENTIK_POSTGRESQL__USER",[499,1107,708],{"class":683},[499,1109,857],{"class":509},[499,1111,1113,1116,1118],{"class":501,"line":1112},50,[499,1114,1115],{"class":679},"      AUTHENTIK_POSTGRESQL__NAME",[499,1117,708],{"class":683},[499,1119,868],{"class":509},[499,1121,1123,1126,1128],{"class":501,"line":1122},51,[499,1124,1125],{"class":679},"      AUTHENTIK_POSTGRESQL__PASSWORD",[499,1127,708],{"class":683},[499,1129,1130],{"class":509}," ${PG_PASS}\n",[499,1132,1134,1136],{"class":501,"line":1133},52,[499,1135,816],{"class":679},[499,1137,684],{"class":683},[499,1139,1141,1143],{"class":501,"line":1140},53,[499,1142,824],{"class":683},[499,1144,1145],{"class":509}," .\u002Fmedia:\u002Fmedia\n",[499,1147,1149,1151],{"class":501,"line":1148},54,[499,1150,824],{"class":683},[499,1152,1153],{"class":509}," .\u002Fcustom-templates:\u002Ftemplates\n",[499,1155,1157,1159],{"class":501,"line":1156},55,[499,1158,824],{"class":683},[499,1160,1161],{"class":509}," .\u002Fssh:\u002Fauthentik\u002F.ssh\n",[499,1163,1165,1167],{"class":501,"line":1164},56,[499,1166,874],{"class":679},[499,1168,684],{"class":683},[499,1170,1172,1174],{"class":501,"line":1171},57,[499,1173,824],{"class":683},[499,1175,593],{"class":509},[499,1177,1179,1182],{"class":501,"line":1178},58,[499,1180,1181],{"class":679},"    ports",[499,1183,684],{"class":683},[499,1185,1187,1189],{"class":501,"line":1186},59,[499,1188,824],{"class":683},[499,1190,1191],{"class":509}," ${COMPOSE_PORT_HTTP:-9000}:9000\n",[499,1193,1195,1197],{"class":501,"line":1194},60,[499,1196,824],{"class":683},[499,1198,1199],{"class":509}," ${COMPOSE_PORT_HTTPS:-9443}:9443\n",[499,1201,1203,1206],{"class":501,"line":1202},61,[499,1204,1205],{"class":679},"    depends_on",[499,1207,684],{"class":683},[499,1209,1211,1213],{"class":501,"line":1210},62,[499,1212,824],{"class":683},[499,1214,1099],{"class":509},[499,1216,1218,1220],{"class":501,"line":1217},63,[499,1219,824],{"class":683},[499,1221,1088],{"class":509},[499,1223,1225],{"class":501,"line":1224},64,[499,1226,691],{"emptyLinePlaceholder":690},[499,1228,1230,1233],{"class":501,"line":1229},65,[499,1231,1232],{"class":679},"  worker",[499,1234,684],{"class":683},[499,1236,1238,1240,1242],{"class":501,"line":1237},66,[499,1239,705],{"class":679},[499,1241,708],{"class":683},[499,1243,1041],{"class":509},[499,1245,1247,1249,1251],{"class":501,"line":1246},67,[499,1248,717],{"class":679},[499,1250,708],{"class":683},[499,1252,1253],{"class":509}," authentik-worker\n",[499,1255,1257,1259,1261],{"class":501,"line":1256},68,[499,1258,728],{"class":679},[499,1260,708],{"class":683},[499,1262,733],{"class":509},[499,1264,1266,1268,1270],{"class":501,"line":1265},69,[499,1267,922],{"class":679},[499,1269,708],{"class":683},[499,1271,1272],{"class":509}," worker\n",[499,1274,1276,1278],{"class":501,"line":1275},70,[499,1277,833],{"class":679},[499,1279,684],{"class":683},[499,1281,1283,1285,1287],{"class":501,"line":1282},71,[499,1284,1083],{"class":679},[499,1286,708],{"class":683},[499,1288,1088],{"class":509},[499,1290,1292,1294,1296],{"class":501,"line":1291},72,[499,1293,1094],{"class":679},[499,1295,708],{"class":683},[499,1297,1099],{"class":509},[499,1299,1301,1303,1305],{"class":501,"line":1300},73,[499,1302,1105],{"class":679},[499,1304,708],{"class":683},[499,1306,857],{"class":509},[499,1308,1310,1312,1314],{"class":501,"line":1309},74,[499,1311,1115],{"class":679},[499,1313,708],{"class":683},[499,1315,868],{"class":509},[499,1317,1319,1321,1323],{"class":501,"line":1318},75,[499,1320,1125],{"class":679},[499,1322,708],{"class":683},[499,1324,1130],{"class":509},[499,1326,1328],{"class":501,"line":1327},76,[499,1329,1331],{"class":1330},"sDvJj","    # `user: root` and the docker socket volume are optional.\n",[499,1333,1335],{"class":501,"line":1334},77,[499,1336,1337],{"class":1330},"    # See more for the docker socket integration here:\n",[499,1339,1341],{"class":501,"line":1340},78,[499,1342,1343],{"class":1330},"    # https:\u002F\u002Fgoauthentik.io\u002Fdocs\u002Foutposts\u002Fintegrations\u002Fdocker\n",[499,1345,1347],{"class":501,"line":1346},79,[499,1348,1349],{"class":1330},"    # Removing `user: root` also prevents the worker from fixing the permissions\n",[499,1351,1353],{"class":501,"line":1352},80,[499,1354,1355],{"class":1330},"    # on the mounted folders, so when removing this make sure the folders have the correct UID\u002FGID\n",[499,1357,1359],{"class":501,"line":1358},81,[499,1360,1361],{"class":1330},"    # (1000:1000 by default)\n",[499,1363,1365,1368,1370],{"class":501,"line":1364},82,[499,1366,1367],{"class":679},"    user",[499,1369,708],{"class":683},[499,1371,1372],{"class":509}," root\n",[499,1374,1376,1378],{"class":501,"line":1375},83,[499,1377,816],{"class":679},[499,1379,684],{"class":683},[499,1381,1383,1385],{"class":501,"line":1382},84,[499,1384,824],{"class":683},[499,1386,1387],{"class":509}," \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n",[499,1389,1391,1393],{"class":501,"line":1390},85,[499,1392,824],{"class":683},[499,1394,1145],{"class":509},[499,1396,1398,1400],{"class":501,"line":1397},86,[499,1399,824],{"class":683},[499,1401,1402],{"class":509}," .\u002Fcerts:\u002Fcerts\n",[499,1404,1406,1408],{"class":501,"line":1405},87,[499,1407,824],{"class":683},[499,1409,1153],{"class":509},[499,1411,1413,1415],{"class":501,"line":1412},88,[499,1414,824],{"class":683},[499,1416,1161],{"class":509},[499,1418,1420,1422],{"class":501,"line":1419},89,[499,1421,874],{"class":679},[499,1423,684],{"class":683},[499,1425,1427,1429],{"class":501,"line":1426},90,[499,1428,824],{"class":683},[499,1430,593],{"class":509},[499,1432,1434,1436],{"class":501,"line":1433},91,[499,1435,1205],{"class":679},[499,1437,684],{"class":683},[499,1439,1441,1443],{"class":501,"line":1440},92,[499,1442,824],{"class":683},[499,1444,1099],{"class":509},[499,1446,1448,1450],{"class":501,"line":1447},93,[499,1449,824],{"class":683},[499,1451,1088],{"class":509},[499,1453,1455],{"class":501,"line":1454},94,[499,1456,691],{"emptyLinePlaceholder":690},[499,1458,1460,1463],{"class":501,"line":1459},95,[499,1461,1462],{"class":679},"volumes",[499,1464,684],{"class":683},[499,1466,1468,1471],{"class":501,"line":1467},96,[499,1469,1470],{"class":679},"  database",[499,1472,684],{"class":683},[499,1474,1476,1479,1481],{"class":501,"line":1475},97,[499,1477,1478],{"class":679},"    driver",[499,1480,708],{"class":683},[499,1482,1483],{"class":509}," local\n",[499,1485,1487,1489],{"class":501,"line":1486},98,[499,1488,894],{"class":679},[499,1490,684],{"class":683},[499,1492,1494,1496,1498],{"class":501,"line":1493},99,[499,1495,1478],{"class":679},[499,1497,708],{"class":683},[499,1499,1483],{"class":509},[484,1501,1503],{"id":1502},"démarrer-la-configuration-initiale","Démarrer la configuration initiale",[403,1505,1506,1507,1509,1510,397,1513,1516],{},"Dans le fichier ",[415,1508,544],{},", les variables ",[415,1511,1512],{},"PG_PASS",[415,1514,1515],{},"AUTHENTIK_SECRET_KEY"," sont déjà renseignées.\nDéployez la stack.",[403,1518,1519,1520,1523],{},"Vous pouvez ensuite commencer la configuration initiale en visitant :",[1521,1522],"br",{},[415,1524,1525],{},"http:\u002F\u002Fipdevotreserveur:9000\u002Fif\u002Fflow\u002Finitial-setup\u002F",[1527,1528,1529,1533,1534,1537,1538,1541],"warning",{},[1530,1531,1532],"strong",{},"Attention :"," il est recommandé de créer un nouveau compte administrateur et de ",[1530,1535,1536],{},"désactiver"," le compte ",[415,1539,1540],{},"akadmin"," par défaut.",[484,1543,1545],{"id":1544},"terminé","Terminé !",[471,1547,1549],{"id":1548},"exposer-authentik","Exposer Authentik",[403,1551,1552],{},"Pour utiliser Authentik en dehors de votre réseau local, vous devez l'exposer.",[390,1554,1555,1556,1559,1560,1562,1564,1565,1568,1569,1573,1574,1577,1578,1581,1582,1585,1586,1588,1589,661],{},"📋 ",[1530,1557,1558],{},"Prérequis :","  ",[1521,1561],{},[1521,1563],{},"\nNous partons du principe que vous avez déjà créé un sous-domaine du type ",[415,1566,1567],{},"auth.mondomaine.fr"," dans votre ",[394,1570,1572],{"href":1571},"\u002Fgeneral\u002Fnetworking\u002Fdns","zone DNS",", avec un CNAME pointant vers ",[415,1575,1576],{},"mondomaine.fr",". Par ailleurs, à moins d'utiliser ",[394,1579,132],{"href":1580},"\u002Fserveex\u002Fsecurity\u002Fcloudflare",", vous devez déjà avoir redirigé le port ",[415,1583,1584],{},"443"," de votre box vers le port ",[415,1587,1584],{}," de votre serveur dans vos ",[394,1590,1592],{"href":1591},"\u002Fgeneral\u002Fnetworking\u002Fnat","règles NAT",[480,1594,1595,1599,1605,1617,1632,1635,1671,1686,1690,1696,1710,1713,1999,2009,2013,2016,2134,2137],{"level":482},[484,1596,1598],{"id":1597},"vérifier-authentik-serverconf","Vérifier authentik-server.conf",[403,1600,1601,1602,545],{},"Ouvrez le fichier ",[415,1603,1604],{},"authentik-server.conf",[1606,1607,1609,1610,1613,1614,1616],"tip",{"icon":495,"to":1608},"\u002Fserveex\u002Ffiles\u002Ffile-browser-quantum","✨ ",[1530,1611,1612],{},"Astuce pour les allergiques au terminal :","\nvous pouvez utiliser ",[1530,1615,208],{}," pour naviguer et modifier vos fichiers plutôt que des commandes dans le terminal.",[489,1618,1620],{"className":491,"code":1619,"filename":493,"language":494,"meta":495,"style":495},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fauthentik-server.conf\n",[415,1621,1622],{"__ignoreMap":495},[499,1623,1624,1626,1629],{"class":501,"line":502},[499,1625,506],{"class":505},[499,1627,1628],{"class":509}," nano",[499,1630,1631],{"class":509}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fauthentik-server.conf\n",[403,1633,1634],{},"Vérifiez que les variables suivantes sont correctement réglées :",[489,1636,1640],{"className":1637,"code":1638,"filename":1604,"language":1639,"meta":495,"style":495},"language-nginx shiki shiki-themes github-dark material-theme github-dark","set $upstream_authentik authentik-server;\nproxy_pass http:\u002F\u002F$upstream_authentik:9000;\n","nginx",[415,1641,1642,1656],{"__ignoreMap":495},[499,1643,1644,1647,1650,1653],{"class":501,"line":502},[499,1645,1646],{"class":580},"set ",[499,1648,1649],{"class":683},"$",[499,1651,1652],{"class":653},"upstream_authentik authentik-server",[499,1654,1655],{"class":683},";\n",[499,1657,1658,1661,1664,1666,1669],{"class":501,"line":596},[499,1659,1660],{"class":580},"proxy_pass ",[499,1662,1663],{"class":653},"http:\u002F\u002F",[499,1665,1649],{"class":683},[499,1667,1668],{"class":653},"upstream_authentik:9000",[499,1670,1655],{"class":683},[403,1672,1673,1674,1678,1679,1682,1683,661],{},"Sinon, faites les modifications nécessaires, puis enregistrez avec ",[1675,1676],"kbd",{"value":1677},"Ctrl+O",", ",[1675,1680],{"value":1681},"Enter",", et quittez avec ",[1675,1684],{"value":1685},"Ctrl+X",[484,1687,1689],{"id":1688},"créer-le-fichier-subdomainconf","Créer le fichier subdomain.conf",[403,1691,1692,1693,545],{},"Créez le fichier ",[415,1694,1695],{},"auth.subdomain.conf",[489,1697,1699],{"className":491,"code":1698,"filename":493,"language":494,"meta":495,"style":495},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fauth.subdomain.conf\n",[415,1700,1701],{"__ignoreMap":495},[499,1702,1703,1705,1707],{"class":501,"line":502},[499,1704,506],{"class":505},[499,1706,1628],{"class":509},[499,1708,1709],{"class":509}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fauth.subdomain.conf\n",[403,1711,1712],{},"Collez la configuration suivante :",[489,1714,1716],{"className":1637,"code":1715,"filename":1695,"language":1639,"meta":495,"style":495},"## Version 2023\u002F05\u002F31\n# Ensure your authentik container is named authentik-server\n# Ensure your DNS has a CNAME for authentik\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n\n    server_name auth.*;\n\n    include \u002Fconfig\u002Fnginx\u002Fssl.conf;\n\n    client_max_body_size 0;\n\n    location \u002F {\n        include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n        include \u002Fconfig\u002Fnginx\u002Fresolver.conf;\n        set $upstream_app authentik-server;\n        set $upstream_port 9000;\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n\n    location ~ (\u002Fauthentik)?\u002Fapi {\n        include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n        include \u002Fconfig\u002Fnginx\u002Fresolver.conf;\n        set $upstream_app authentik-server;\n        set $upstream_port 9000;\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n}\n",[415,1717,1718,1723,1728,1733,1737,1746,1758,1767,1771,1781,1785,1795,1799,1809,1813,1824,1834,1843,1855,1869,1880,1902,1907,1911,1924,1932,1940,1950,1962,1972,1990,1994],{"__ignoreMap":495},[499,1719,1720],{"class":501,"line":502},[499,1721,1722],{"class":1330},"## Version 2023\u002F05\u002F31\n",[499,1724,1725],{"class":501,"line":596},[499,1726,1727],{"class":1330},"# Ensure your authentik container is named authentik-server\n",[499,1729,1730],{"class":501,"line":687},[499,1731,1732],{"class":1330},"# Ensure your DNS has a CNAME for authentik\n",[499,1734,1735],{"class":501,"line":694},[499,1736,691],{"emptyLinePlaceholder":690},[499,1738,1739,1743],{"class":501,"line":702},[499,1740,1742],{"class":1741},"sAoO4","server",[499,1744,1745],{"class":653}," {\n",[499,1747,1748,1751,1753,1756],{"class":501,"line":714},[499,1749,1750],{"class":580},"    listen ",[499,1752,1584],{"class":576},[499,1754,1755],{"class":653}," ssl",[499,1757,1655],{"class":683},[499,1759,1760,1762,1765],{"class":501,"line":725},[499,1761,1750],{"class":580},[499,1763,1764],{"class":653},"[::]:443 ssl",[499,1766,1655],{"class":683},[499,1768,1769],{"class":501,"line":736},[499,1770,691],{"emptyLinePlaceholder":690},[499,1772,1773,1776,1779],{"class":501,"line":744},[499,1774,1775],{"class":580},"    server_name ",[499,1777,1778],{"class":653},"auth.*",[499,1780,1655],{"class":683},[499,1782,1783],{"class":501,"line":752},[499,1784,691],{"emptyLinePlaceholder":690},[499,1786,1787,1790,1793],{"class":501,"line":761},[499,1788,1789],{"class":580},"    include ",[499,1791,1792],{"class":653},"\u002Fconfig\u002Fnginx\u002Fssl.conf",[499,1794,1655],{"class":683},[499,1796,1797],{"class":501,"line":769},[499,1798,691],{"emptyLinePlaceholder":690},[499,1800,1801,1804,1807],{"class":501,"line":780},[499,1802,1803],{"class":580},"    client_max_body_size ",[499,1805,1806],{"class":576},"0",[499,1808,1655],{"class":683},[499,1810,1811],{"class":501,"line":791},[499,1812,691],{"emptyLinePlaceholder":690},[499,1814,1815,1818,1821],{"class":501,"line":802},[499,1816,1817],{"class":1741},"    location",[499,1819,1820],{"class":505}," \u002F ",[499,1822,1823],{"class":653},"{\n",[499,1825,1826,1829,1832],{"class":501,"line":813},[499,1827,1828],{"class":580},"        include ",[499,1830,1831],{"class":653},"\u002Fconfig\u002Fnginx\u002Fproxy.conf",[499,1833,1655],{"class":683},[499,1835,1836,1838,1841],{"class":501,"line":821},[499,1837,1828],{"class":580},[499,1839,1840],{"class":653},"\u002Fconfig\u002Fnginx\u002Fresolver.conf",[499,1842,1655],{"class":683},[499,1844,1845,1848,1850,1853],{"class":501,"line":830},[499,1846,1847],{"class":580},"        set ",[499,1849,1649],{"class":683},[499,1851,1852],{"class":653},"upstream_app authentik-server",[499,1854,1655],{"class":683},[499,1856,1857,1859,1861,1864,1867],{"class":501,"line":838},[499,1858,1847],{"class":580},[499,1860,1649],{"class":683},[499,1862,1863],{"class":653},"upstream_port ",[499,1865,1866],{"class":576},"9000",[499,1868,1655],{"class":683},[499,1870,1871,1873,1875,1878],{"class":501,"line":849},[499,1872,1847],{"class":580},[499,1874,1649],{"class":683},[499,1876,1877],{"class":653},"upstream_proto http",[499,1879,1655],{"class":683},[499,1881,1882,1885,1887,1890,1892,1895,1897,1900],{"class":501,"line":860},[499,1883,1884],{"class":580},"        proxy_pass ",[499,1886,1649],{"class":683},[499,1888,1889],{"class":653},"upstream_proto:\u002F\u002F",[499,1891,1649],{"class":683},[499,1893,1894],{"class":653},"upstream_app:",[499,1896,1649],{"class":683},[499,1898,1899],{"class":653},"upstream_port",[499,1901,1655],{"class":683},[499,1903,1904],{"class":501,"line":871},[499,1905,1906],{"class":653},"    }\n",[499,1908,1909],{"class":501,"line":879},[499,1910,691],{"emptyLinePlaceholder":690},[499,1912,1913,1915,1918,1922],{"class":501,"line":886},[499,1914,1817],{"class":1741},[499,1916,1917],{"class":580}," ~",[499,1919,1921],{"class":1920},"sxjBU"," (\u002Fauthentik)?\u002Fapi ",[499,1923,1823],{"class":653},[499,1925,1926,1928,1930],{"class":501,"line":891},[499,1927,1828],{"class":580},[499,1929,1831],{"class":653},[499,1931,1655],{"class":683},[499,1933,1934,1936,1938],{"class":501,"line":899},[499,1935,1828],{"class":580},[499,1937,1840],{"class":653},[499,1939,1655],{"class":683},[499,1941,1942,1944,1946,1948],{"class":501,"line":909},[499,1943,1847],{"class":580},[499,1945,1649],{"class":683},[499,1947,1852],{"class":653},[499,1949,1655],{"class":683},[499,1951,1952,1954,1956,1958,1960],{"class":501,"line":919},[499,1953,1847],{"class":580},[499,1955,1649],{"class":683},[499,1957,1863],{"class":653},[499,1959,1866],{"class":576},[499,1961,1655],{"class":683},[499,1963,1964,1966,1968,1970],{"class":501,"line":930},[499,1965,1847],{"class":580},[499,1967,1649],{"class":683},[499,1969,1877],{"class":653},[499,1971,1655],{"class":683},[499,1973,1974,1976,1978,1980,1982,1984,1986,1988],{"class":501,"line":939},[499,1975,1884],{"class":580},[499,1977,1649],{"class":683},[499,1979,1889],{"class":653},[499,1981,1649],{"class":683},[499,1983,1894],{"class":653},[499,1985,1649],{"class":683},[499,1987,1899],{"class":653},[499,1989,1655],{"class":683},[499,1991,1992],{"class":501,"line":946},[499,1993,1906],{"class":653},[499,1995,1996],{"class":501,"line":953},[499,1997,1998],{"class":653},"}\n",[403,2000,2001,2002,2004,2005,1682,2007,661],{},"Enregistrez avec ",[1675,2003],{"value":1677},", puis ",[1675,2006],{"value":1681},[1675,2008],{"value":1685},[484,2010,2012],{"id":2011},"ajouter-le-réseau-dauthentik-à-swag","Ajouter le réseau d'Authentik à SWAG",[403,2014,2015],{},"Allez dans Dockge, et modifiez le fichier compose de SWAG pour y ajouter le réseau d'Authentik :",[489,2017,2019],{"className":664,"code":2018,"filename":666,"language":667,"meta":495,"style":495},"---\nservices:\n  swag:\n     container_name: # ...\n      # ...\n     networks:               # Attach the container to the custom network\n      # ...           \n      - authentik            # Name of the network declared in the stack\n\nnetworks:                    # Define the custom network\n  # ...\n  authentik:                 # Name of the network declared in the stack\n    name: authentik_default  # Actual name of the external network\n    external: true           # Indicates it's an external network\n",[415,2020,2021,2025,2031,2038,2048,2053,2063,2068,2078,2082,2092,2097,2107,2120],{"__ignoreMap":495},[499,2022,2023],{"class":501,"line":502},[499,2024,674],{"class":505},[499,2026,2027,2029],{"class":501,"line":596},[499,2028,680],{"class":679},[499,2030,684],{"class":683},[499,2032,2033,2036],{"class":501,"line":687},[499,2034,2035],{"class":679},"  swag",[499,2037,684],{"class":683},[499,2039,2040,2043,2045],{"class":501,"line":694},[499,2041,2042],{"class":679},"     container_name",[499,2044,708],{"class":683},[499,2046,2047],{"class":1330}," # ...\n",[499,2049,2050],{"class":501,"line":702},[499,2051,2052],{"class":1330},"      # ...\n",[499,2054,2055,2058,2060],{"class":501,"line":714},[499,2056,2057],{"class":679},"     networks",[499,2059,708],{"class":683},[499,2061,2062],{"class":1330},"               # Attach the container to the custom network\n",[499,2064,2065],{"class":501,"line":725},[499,2066,2067],{"class":1330},"      # ...           \n",[499,2069,2070,2072,2075],{"class":501,"line":736},[499,2071,824],{"class":683},[499,2073,2074],{"class":509}," authentik",[499,2076,2077],{"class":1330},"            # Name of the network declared in the stack\n",[499,2079,2080],{"class":501,"line":744},[499,2081,691],{"emptyLinePlaceholder":690},[499,2083,2084,2087,2089],{"class":501,"line":752},[499,2085,2086],{"class":679},"networks",[499,2088,708],{"class":683},[499,2090,2091],{"class":1330},"                    # Define the custom network\n",[499,2093,2094],{"class":501,"line":761},[499,2095,2096],{"class":1330},"  # ...\n",[499,2098,2099,2102,2104],{"class":501,"line":769},[499,2100,2101],{"class":679},"  authentik",[499,2103,708],{"class":683},[499,2105,2106],{"class":1330},"                 # Name of the network declared in the stack\n",[499,2108,2109,2112,2114,2117],{"class":501,"line":780},[499,2110,2111],{"class":679},"    name",[499,2113,708],{"class":683},[499,2115,2116],{"class":509}," authentik_default",[499,2118,2119],{"class":1330},"  # Actual name of the external network\n",[499,2121,2122,2125,2127,2131],{"class":501,"line":791},[499,2123,2124],{"class":679},"    external",[499,2126,708],{"class":683},[499,2128,2130],{"class":2129},"s08Ry"," true",[499,2132,2133],{"class":1330},"           # Indicates it's an external network\n",[403,2135,2136],{},"Redémarrez la stack et attendez que SWAG soit pleinement opérationnel.",[484,2138,1545],{"id":2139},"terminé-1",[403,2141,2142,2143],{},"Vous pouvez maintenant accéder à Authentik via ",[415,2144,2145],{},"https:\u002F\u002Fauth.mondomaine.fr",[471,2147,2149],{"id":2148},"activer-lauthentification-multifacteur","Activer l'authentification multifacteur",[403,2151,2152],{},"Le principal intérêt d'Authentik est d'utiliser l'authentification multifacteur pour toutes les applications protégées.",[480,2154,2155,2159,2165,2169,2189],{"level":482},[484,2156,2158],{"id":2157},"se-connecter-à-authentik","Se connecter à Authentik",[403,2160,2161,2162,2164],{},"Allez sur ",[415,2163,2145],{}," et connectez-vous.",[484,2166,2168],{"id":2167},"enregistrer-une-méthode-mfa","Enregistrer une méthode MFA",[403,2170,2171,2172,2176,2177,2180,2181,2184,2185,2188],{},"Allez dans ",[2173,2174,2175],"em",{},"Settings",", cliquez sur la section ",[2173,2178,2179],{},"MFA",", puis sur ",[2173,2182,2183],{},"Register",". Choisissez une méthode comme ",[2173,2186,2187],{},"TOTP device"," (il vous faudra une application d'authentification du type Google Authenticator) et suivez les étapes.",[484,2190,1545],{"id":2191},"terminé-2",[403,2193,2194],{},"Un code à usage unique vous sera désormais demandé à chaque connexion.",[471,2196,2198],{"id":2197},"protéger-une-app-native","Protéger une app native",[403,2200,2201,2202,661],{},"Authentik est nativement compatible avec plusieurs applications. Vous trouverez la liste et ",[394,2203,2206],{"href":2204,"rel":2205},"https:\u002F\u002Fdocs.goauthentik.io\u002Fintegrations\u002Fservices\u002F",[409],"le support ici",[471,2208,2210],{"id":2209},"protéger-une-app-par-reverse-proxy","Protéger une app par reverse proxy",[403,2212,2213],{},"SWAG permet d'insérer la page de connexion d'Authentik entre une requête et l'accès à votre service. Pour cela :",[444,2215,2216,2219],{},[447,2217,2218],{},"Configurez le fournisseur d'authentification dans Authentik.",[447,2220,2221],{},"Modifiez le fichier proxy du domaine pour que SWAG intercepte la requête.",[403,2223,2224],{},"Pourquoi faire cela alors que Dockge a déjà une authentification ? Parce que Dockge utilise une authentification HTTP faible. Avec Authentik, vous obtenez une authentification MFA robuste et une connexion automatique à toutes les applications protégées par Authentik. Cela sécurise l'accès à Dockge et aux autres applications sans avoir besoin d'un VPN.",[480,2226,2227,2231,2252,2257,2262,2267,2279,2284,2293,2297,2302,2316,2322,2333,2343],{"level":482},[484,2228,2230],{"id":2229},"configuration-dauthentik","Configuration d'Authentik",[444,2232,2233,2236,2239,2249],{},[447,2234,2235],{},"Allez dans Authentik",[447,2237,2238],{},"Ouvrez le panneau d'administration",[447,2240,2241,2242,2245,2246],{},"Choisissez ",[2173,2243,2244],{},"Applications"," puis ",[2173,2247,2248],{},"Create with wizard",[447,2250,2251],{},"Remplissez les champs comme suit :",[403,2253,2254],{},[453,2255],{"alt":455,"src":2256},"\u002Fimg\u002Fserveex\u002Fauth1.png",[444,2258,2259],{},[447,2260,2261],{},"À l'étape suivante, choisissez « Forward authentication (single application) » et configurez comme suit (les flows sont importants) :",[403,2263,2264],{},[453,2265],{"alt":455,"src":2266},"\u002Fimg\u002Fserveex\u002Fauth2.png",[444,2268,2269],{},[447,2270,2271,2272,2275,2276,545],{},"Ensuite, allez dans le menu ",[2173,2273,2274],{},"Outposts"," à gauche et modifiez ",[2173,2277,2278],{},"authentik Embedded Outpost",[403,2280,2281],{},[453,2282],{"alt":455,"src":2283},"\u002Fimg\u002Fserveex\u002Fauth3.png",[444,2285,2286],{},[447,2287,2288,2289,2292],{},"Ajoutez l'application ",[415,2290,2291],{},"dockge"," en la déplaçant dans la colonne de droite et enregistrez.",[484,2294,2296],{"id":2295},"configuration-de-swag","Configuration de SWAG",[403,2298,2299,2300,545],{},"Modifiez le fichier ",[415,2301,417],{},[489,2303,2305],{"className":491,"code":2304,"filename":493,"language":494,"meta":495,"style":495},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fdockge.subdomain.conf\n",[415,2306,2307],{"__ignoreMap":495},[499,2308,2309,2311,2313],{"class":501,"line":502},[499,2310,506],{"class":505},[499,2312,1628],{"class":509},[499,2314,2315],{"class":509}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fdockge.subdomain.conf\n",[403,2317,2318,2319],{},"Décommentez les deux lignes ",[415,2320,2321],{},"#include \u002Fconfig\u002Fnginx\u002Fauthentik-server.conf;",[403,2323,2324,2325,2004,2327,2329,2330,2332],{},"Appuyez sur ",[1675,2326],{"value":1677},[1675,2328],{"value":1681}," pour enregistrer, et ",[1675,2331],{"value":1685}," pour quitter.",[1606,2334,1609,2335,2338,2339,2342],{"icon":495},[1530,2336,2337],{},"Astuce :"," dans les réglages de Dockge, vous pouvez désactiver l'authentification de Dockge pour éviter une double connexion. ",[1530,2340,2341],{},"Attention"," : cela signifie que si le port est ouvert sur votre réseau local, il n'y aura plus aucune authentification.",[484,2344,1545],{"id":2345},"terminé-3",[403,2347,2348,2349,2352],{},"Désormais, en accédant à ",[415,2350,2351],{},"https:\u002F\u002Fdockge.mondomaine.fr",", vous serez redirigé vers l'écran de connexion d'Authentik.",[390,2354,2355],{},"Répétez cette procédure pour chaque application que vous voulez protéger (sauf si elle a une intégration native avec Authentik).",[403,2357,2358],{},"Votre nouvelle architecture ressemble à ceci :",[403,2360,2361],{},[453,2362],{"alt":455,"src":2363},"\u002Fimg\u002Fserveex\u002Fauthentik.svg",[471,2365,2367],{"id":2366},"protéger-un-service-sur-un-serveur-distant","Protéger un service sur un serveur distant",[403,2369,2370,2371,2375],{},"Pour une ",[394,2372,2374],{"href":2373},"\u002Fserveex\u002Fadvanced\u002Fauthentik\u002F#protecting-a-native-app","application native"," (via OAuth 2.0 ou autre), rien ne change.",[403,2377,2378,2379,2382],{},"Pour une application non native derrière un reverse proxy, vous devez déployer un ",[1530,2380,2381],{},"Outpost",". Un Outpost est un conteneur qui fait office de proxy local. C'est la cible des requêtes d'authentification de votre application, et le seul autorisé à communiquer avec votre API Authentik.",[390,2384,2385,2387],{},[403,2386,1558],{},[444,2388,2389,2396],{},[447,2390,2391,2392,2395],{},"Installer ",[394,2393,114],{"href":2394},"\u002Fserveex\u002Fcore\u002Fdocker"," sur le serveur distant qui héberge le service.",[447,2397,2398,2399,2402],{},"Si l'application n'a pas d'intégration native, utiliser un reverse proxy compatible. Nous utiliserons ",[394,2400,122],{"href":2401},"\u002Fserveex\u002Fcore\u002Fswag"," ici.",[403,2404,2405,2406,2409],{},"Ce conteneur transmettra les requêtes à votre instance ",[394,2407,254],{"href":2408},"\u002Fserveex\u002Fadvanced\u002Fauthentik#authentik"," principale via internet (ou votre réseau local). Le serveur effectuera les vérifications et répondra à l'Outpost, qui autorisera ou bloquera l'accès en conséquence.",[403,2411,2412],{},[453,2413],{"alt":2414,"src":2415},"auth-outpost","\u002Fimg\u002Fserveex\u002Fauth-outpost.svg",[480,2417,2418,2421,2428,2435,2438,2499,2506,2596,2604,2611,2619,2623,2634,2644,2661,2667,2671,2676,2679,2693,2702,2847,2851,2857,2871,2980,2988,2994,2998,3004,3007,3037,3041,3049,3051,3065,3067,3088,3091,3139,3147,3150,3153,3155,3179,3184,3188,3191,3195,3207,3216,3244,3252],{"level":482},[484,2419,2230],{"id":2420},"configuration-dauthentik-1",[403,2422,2423,2424,2427],{},"Créez vos ",[394,2425,2426],{"href":2373},"providers et applications"," comme montré plus haut.",[403,2429,2430,2431,2434],{},"Puis, dans le panneau d'administration, allez dans ",[2173,2432,2433],{},"Applications > Outposts",", et créez un nouvel outpost.",[403,2436,2437],{},"Remplissez comme suit :",[2439,2440,2441,2454],"table",{},[2442,2443,2444],"thead",{},[2445,2446,2447,2451],"tr",{},[2448,2449,2450],"th",{},"Champ",[2448,2452,2453],{},"Valeur",[2455,2456,2457,2468,2480,2490],"tbody",{},[2445,2458,2459,2465],{},[2460,2461,2462],"td",{},[415,2463,2464],{},"Name",[2460,2466,2467],{},"Le nom de votre choix",[2445,2469,2470,2475],{},[2460,2471,2472],{},[415,2473,2474],{},"Type",[2460,2476,2477],{},[415,2478,2479],{},"Proxy",[2445,2481,2482,2487],{},[2460,2483,2484],{},[415,2485,2486],{},"Integration",[2460,2488,2489],{},"Laisser vide",[2445,2491,2492,2496],{},[2460,2493,2494],{},[415,2495,2244],{},[2460,2497,2498],{},"Sélectionnez les applications créées précédemment",[403,2500,2501,2502,2505],{},"Dans la section ",[415,2503,2504],{},"Advanced settings",", effacez le contenu existant et saisissez :",[489,2507,2509],{"className":664,"code":2508,"language":667,"meta":495,"style":495},"log_level: info\ndocker_labels: null\nauthentik_host: https:\u002F\u002Fyour_authentik_server_domain\u002F\nobject_naming_template: ak-outpost-%(name)s\nauthentik_host_insecure: false\ncontainer_image:\ndocker_network: null\ndocker_map_ports: true\ndocker_labels: null\n",[415,2510,2511,2521,2532,2542,2552,2562,2569,2578,2588],{"__ignoreMap":495},[499,2512,2513,2516,2518],{"class":501,"line":502},[499,2514,2515],{"class":679},"log_level",[499,2517,708],{"class":683},[499,2519,2520],{"class":509}," info\n",[499,2522,2523,2526,2528],{"class":501,"line":596},[499,2524,2525],{"class":679},"docker_labels",[499,2527,708],{"class":683},[499,2529,2531],{"class":2530},"soUAX"," null\n",[499,2533,2534,2537,2539],{"class":501,"line":687},[499,2535,2536],{"class":679},"authentik_host",[499,2538,708],{"class":683},[499,2540,2541],{"class":509}," https:\u002F\u002Fyour_authentik_server_domain\u002F\n",[499,2543,2544,2547,2549],{"class":501,"line":694},[499,2545,2546],{"class":679},"object_naming_template",[499,2548,708],{"class":683},[499,2550,2551],{"class":509}," ak-outpost-%(name)s\n",[499,2553,2554,2557,2559],{"class":501,"line":702},[499,2555,2556],{"class":679},"authentik_host_insecure",[499,2558,708],{"class":683},[499,2560,2561],{"class":2129}," false\n",[499,2563,2564,2567],{"class":501,"line":714},[499,2565,2566],{"class":679},"container_image",[499,2568,684],{"class":683},[499,2570,2571,2574,2576],{"class":501,"line":725},[499,2572,2573],{"class":679},"docker_network",[499,2575,708],{"class":683},[499,2577,2531],{"class":2530},[499,2579,2580,2583,2585],{"class":501,"line":736},[499,2581,2582],{"class":679},"docker_map_ports",[499,2584,708],{"class":683},[499,2586,2587],{"class":2129}," true\n",[499,2589,2590,2592,2594],{"class":501,"line":744},[499,2591,2525],{"class":679},[499,2593,708],{"class":683},[499,2595,2531],{"class":2530},[403,2597,2001,2598,2004,2600,1682,2602,661],{},[1675,2599],{"value":1677},[1675,2601],{"value":1681},[1675,2603],{"value":1685},[403,2605,2606,2607,2610],{},"Dans la liste des outposts créés, repérez le nouveau et cliquez sur ",[2173,2608,2609],{},"Show details"," en fin de ligne. Copiez soigneusement le token d'accès.",[403,2612,2613,2614,397,2616,2618],{},"Nous partons du principe que vous avez déjà installé ",[394,2615,114],{"href":2394},[394,2617,122],{"href":2401}," sur cette machine distante. Voici comment la configurer :",[484,2620,2622],{"id":2621},"créer-le-dossier-de-la-stack","Créer le dossier de la stack",[403,2624,2625,2626,2630,2631,661],{},"Sur votre machine distante, utilisez ",[394,2627,2629],{"href":2628},"\u002Fserveex\u002Fcore\u002Fdocker\u002F#installer-dockge-pour-g%C3%A9rer-et-d%C3%A9ployer-les-conteneurs","Dockge"," pour créer une stack nommée ",[415,2632,2633],{},"authentik-outpost",[403,2635,2636,2637,2639,2640,2643],{},"Si vous n'avez pas installé ",[394,2638,2629],{"href":2628},", créez un dossier ",[415,2641,2642],{},"\u002Fsrv\u002Fdocker\u002Fauthentik-outpost",", ou directement en ligne de commande :",[489,2645,2647],{"className":491,"code":2646,"filename":493,"language":494,"meta":495,"style":495},"sudo mkdir -P \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\n",[415,2648,2649],{"__ignoreMap":495},[499,2650,2651,2653,2655,2658],{"class":501,"line":502},[499,2652,506],{"class":505},[499,2654,510],{"class":509},[499,2656,2657],{"class":513}," -P",[499,2659,2660],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\n",[1606,2662,1609,2663,1613,2665,1616],{"icon":495,"to":1608},[1530,2664,1612],{},[1530,2666,208],{},[484,2668,2670],{"id":2669},"créer-le-fichier-compose","Créer le fichier compose",[403,2672,1692,2673,2675],{},[415,2674,666],{}," ou collez la configuration directement dans Dockge s'il est installé.",[403,2677,2678],{},"En ligne de commande :",[489,2680,2682],{"className":491,"code":2681,"filename":493,"language":494,"meta":495,"style":495},"sudo nano \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\u002Fcompose.yaml\n",[415,2683,2684],{"__ignoreMap":495},[499,2685,2686,2688,2690],{"class":501,"line":502},[499,2687,506],{"class":505},[499,2689,1628],{"class":509},[499,2691,2692],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\u002Fcompose.yaml\n",[403,2694,2695,2696,2701],{},"Collez la configuration suivante, en mettant à jour la version dans ",[415,2697,2698],{"className":649,"language":650,"style":495},[499,2699,2700],{"class":653},"{AUTHENTIK_TAG:proxy:2024.2.3}"," pour correspondre à celle de votre serveur Authentik.",[489,2703,2705],{"className":664,"code":2704,"filename":666,"language":667,"meta":495,"style":495},"---\nversion: \"3.5\"\nservices:\n  authentik_proxy:\n    container_name: authentik-outpost\n    image: ghcr.io\u002Fgoauthentik\u002Fproxy:2024.2.3\n    # Optionally specify which networks the container should be\n    # might be needed to reach the core authentik server\n    restart: unless-stopped\n    env_file:\n      - .env\n    ports:\n      - 9000:9000\n      - 9443:9443\n    environment:\n      AUTHENTIK_HOST: ${HOST}\n      AUTHENTIK_INSECURE: \"false\"\n      AUTHENTIK_TOKEN: ${TOKEN}\n",[415,2706,2707,2711,2726,2732,2739,2748,2757,2762,2767,2775,2781,2787,2793,2800,2807,2813,2823,2837],{"__ignoreMap":495},[499,2708,2709],{"class":501,"line":502},[499,2710,674],{"class":505},[499,2712,2713,2716,2718,2720,2723],{"class":501,"line":596},[499,2714,2715],{"class":679},"version",[499,2717,708],{"class":683},[499,2719,561],{"class":560},[499,2721,2722],{"class":509},"3.5",[499,2724,2725],{"class":560},"\"\n",[499,2727,2728,2730],{"class":501,"line":687},[499,2729,680],{"class":679},[499,2731,684],{"class":683},[499,2733,2734,2737],{"class":501,"line":694},[499,2735,2736],{"class":679},"  authentik_proxy",[499,2738,684],{"class":683},[499,2740,2741,2743,2745],{"class":501,"line":702},[499,2742,717],{"class":679},[499,2744,708],{"class":683},[499,2746,2747],{"class":509}," authentik-outpost\n",[499,2749,2750,2752,2754],{"class":501,"line":714},[499,2751,705],{"class":679},[499,2753,708],{"class":683},[499,2755,2756],{"class":509}," ghcr.io\u002Fgoauthentik\u002Fproxy:2024.2.3\n",[499,2758,2759],{"class":501,"line":725},[499,2760,2761],{"class":1330},"    # Optionally specify which networks the container should be\n",[499,2763,2764],{"class":501,"line":736},[499,2765,2766],{"class":1330},"    # might be needed to reach the core authentik server\n",[499,2768,2769,2771,2773],{"class":501,"line":744},[499,2770,728],{"class":679},[499,2772,708],{"class":683},[499,2774,733],{"class":509},[499,2776,2777,2779],{"class":501,"line":752},[499,2778,874],{"class":679},[499,2780,684],{"class":683},[499,2782,2783,2785],{"class":501,"line":761},[499,2784,824],{"class":683},[499,2786,593],{"class":509},[499,2788,2789,2791],{"class":501,"line":769},[499,2790,1181],{"class":679},[499,2792,684],{"class":683},[499,2794,2795,2797],{"class":501,"line":780},[499,2796,824],{"class":683},[499,2798,2799],{"class":509}," 9000:9000\n",[499,2801,2802,2804],{"class":501,"line":791},[499,2803,824],{"class":683},[499,2805,2806],{"class":509}," 9443:9443\n",[499,2808,2809,2811],{"class":501,"line":802},[499,2810,833],{"class":679},[499,2812,684],{"class":683},[499,2814,2815,2818,2820],{"class":501,"line":813},[499,2816,2817],{"class":679},"      AUTHENTIK_HOST",[499,2819,708],{"class":683},[499,2821,2822],{"class":509}," ${HOST}\n",[499,2824,2825,2828,2830,2832,2835],{"class":501,"line":821},[499,2826,2827],{"class":679},"      AUTHENTIK_INSECURE",[499,2829,708],{"class":683},[499,2831,561],{"class":560},[499,2833,2834],{"class":509},"false",[499,2836,2725],{"class":560},[499,2838,2839,2842,2844],{"class":501,"line":830},[499,2840,2841],{"class":679},"      AUTHENTIK_TOKEN",[499,2843,708],{"class":683},[499,2845,2846],{"class":509}," ${TOKEN}\n",[484,2848,2850],{"id":2849},"ajouter-le-réseau-de-loutpost-à-swag","Ajouter le réseau de l'outpost à SWAG",[403,2852,2853,2854,2856],{},"Allez sur la stack SWAG de la machine distante (ou modifiez-la directement dans Dockge) et ajoutez le réseau authentik-outpost dans le fichier de configuration comme suit (voir la section ",[415,2855,2086],{},") :",[489,2858,2860],{"className":491,"code":2859,"filename":493,"language":494,"meta":495,"style":495},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fcompose.yaml\n",[415,2861,2862],{"__ignoreMap":495},[499,2863,2864,2866,2868],{"class":501,"line":502},[499,2865,506],{"class":505},[499,2867,1628],{"class":509},[499,2869,2870],{"class":509}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fcompose.yaml\n",[489,2872,2874],{"className":664,"code":2873,"filename":666,"language":667,"meta":495,"style":495},"---\nservices:\n  swag:\n     container_name: #...\n      # ... \n     networks:                      # Attach the container to the custom network\n\n      - authentik-outpost           # Network name as declared in the stack\n\nnetworks:                           # Define the custom network\n  #...\n  authentik-outpost:                # Name of the network declared in the stack\n    name: authentik-outpost_default # Actual name of the external network\n    external: true                  # Marks it as an external network\n",[415,2875,2876,2880,2886,2892,2901,2906,2915,2919,2929,2933,2942,2947,2957,2969],{"__ignoreMap":495},[499,2877,2878],{"class":501,"line":502},[499,2879,674],{"class":505},[499,2881,2882,2884],{"class":501,"line":596},[499,2883,680],{"class":679},[499,2885,684],{"class":683},[499,2887,2888,2890],{"class":501,"line":687},[499,2889,2035],{"class":679},[499,2891,684],{"class":683},[499,2893,2894,2896,2898],{"class":501,"line":694},[499,2895,2042],{"class":679},[499,2897,708],{"class":683},[499,2899,2900],{"class":1330}," #...\n",[499,2902,2903],{"class":501,"line":702},[499,2904,2905],{"class":1330},"      # ... \n",[499,2907,2908,2910,2912],{"class":501,"line":714},[499,2909,2057],{"class":679},[499,2911,708],{"class":683},[499,2913,2914],{"class":1330},"                      # Attach the container to the custom network\n",[499,2916,2917],{"class":501,"line":725},[499,2918,691],{"emptyLinePlaceholder":690},[499,2920,2921,2923,2926],{"class":501,"line":736},[499,2922,824],{"class":683},[499,2924,2925],{"class":509}," authentik-outpost",[499,2927,2928],{"class":1330},"           # Network name as declared in the stack\n",[499,2930,2931],{"class":501,"line":744},[499,2932,691],{"emptyLinePlaceholder":690},[499,2934,2935,2937,2939],{"class":501,"line":752},[499,2936,2086],{"class":679},[499,2938,708],{"class":683},[499,2940,2941],{"class":1330},"                           # Define the custom network\n",[499,2943,2944],{"class":501,"line":761},[499,2945,2946],{"class":1330},"  #...\n",[499,2948,2949,2952,2954],{"class":501,"line":769},[499,2950,2951],{"class":679},"  authentik-outpost",[499,2953,708],{"class":683},[499,2955,2956],{"class":1330},"                # Name of the network declared in the stack\n",[499,2958,2959,2961,2963,2966],{"class":501,"line":780},[499,2960,2111],{"class":679},[499,2962,708],{"class":683},[499,2964,2965],{"class":509}," authentik-outpost_default",[499,2967,2968],{"class":1330}," # Actual name of the external network\n",[499,2970,2971,2973,2975,2977],{"class":501,"line":791},[499,2972,2124],{"class":679},[499,2974,708],{"class":683},[499,2976,2130],{"class":2129},[499,2978,2979],{"class":1330},"                  # Marks it as an external network\n",[403,2981,2324,2982,2004,2984,2329,2986,2332],{},[1675,2983],{"value":1677},[1675,2985],{"value":1681},[1675,2987],{"value":1685},[390,2989,2990,2991,661],{},"Nous partons du principe que le nom du réseau de Dockge est ",[415,2992,2993],{},"authentik-outpost_default",[484,2995,2997],{"id":2996},"redémarrer-swag","Redémarrer SWAG",[403,2999,3000,3001,3003],{},"Si vous utilisez ",[394,3002,2629],{"href":2628},", redémarrez SWAG.",[403,3005,3006],{},"Sinon, via le terminal :",[489,3008,3010],{"className":491,"code":3009,"filename":493,"language":494,"meta":495,"style":495},"cd \u002Fsrv\u002Fdocker\u002Fswag\u002F\nsudo docker compose up -d\n",[415,3011,3012,3021],{"__ignoreMap":495},[499,3013,3014,3018],{"class":501,"line":502},[499,3015,3017],{"class":3016},"sJGgK","cd",[499,3019,3020],{"class":509}," \u002Fsrv\u002Fdocker\u002Fswag\u002F\n",[499,3022,3023,3025,3028,3031,3034],{"class":501,"line":596},[499,3024,506],{"class":505},[499,3026,3027],{"class":509}," docker",[499,3029,3030],{"class":509}," compose",[499,3032,3033],{"class":509}," up",[499,3035,3036],{"class":513}," -d\n",[484,3038,3040],{"id":3039},"renseigner-vos-variables-denvironnement","Renseigner vos variables d'environnement",[403,3042,3043,3044,3046,3047,545],{},"Créez (ou remplissez via Dockge) le fichier ",[415,3045,544],{}," dans le dossier ",[415,3048,2633],{},[403,3050,2678],{},[489,3052,3054],{"className":491,"code":3053,"filename":493,"language":494,"meta":495,"style":495},"sudo nano \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\u002F.env\n",[415,3055,3056],{"__ignoreMap":495},[499,3057,3058,3060,3062],{"class":501,"line":502},[499,3059,506],{"class":505},[499,3061,1628],{"class":509},[499,3063,3064],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\u002F.env\n",[403,3066,1712],{},[489,3068,3070],{"className":649,"code":3069,"filename":544,"language":650,"meta":495,"style":495},"HOST=\nTOKEN=\n",[415,3071,3072,3081],{"__ignoreMap":495},[499,3073,3074,3078],{"class":501,"line":502},[499,3075,3077],{"class":3076},"szyEh","HOST",[499,3079,3080],{"class":683},"=\n",[499,3082,3083,3086],{"class":501,"line":596},[499,3084,3085],{"class":3076},"TOKEN",[499,3087,3080],{"class":683},[403,3089,3090],{},"Renseignez les valeurs :",[2439,3092,3093,3105],{},[2442,3094,3095],{},[2445,3096,3097,3100,3102],{},[2448,3098,3099],{},"Variable",[2448,3101,2453],{},[2448,3103,3104],{},"Exemple",[2455,3106,3107,3123],{},[2445,3108,3109,3115,3118],{},[2460,3110,3111],{},[415,3112,3113],{"className":649,"language":650,"style":495},[499,3114,3077],{"class":653},[2460,3116,3117],{},"L'URL de votre serveur Authentik",[2460,3119,3120],{},[415,3121,3122],{},"https:\u002F\u002Fauth.domaine.fr",[2445,3124,3125,3131,3134],{},[2460,3126,3127],{},[415,3128,3129],{"className":649,"language":650,"style":495},[499,3130,3085],{"class":653},[2460,3132,3133],{},"Le token d'accès copié précédemment",[2460,3135,3136],{},[415,3137,3138],{},"Q2pVEqsTNRkJSO9SkJzU3KZ2",[403,3140,2324,3141,2004,3143,2329,3145,2332],{},[1675,3142],{"value":1677},[1675,3144],{"value":1681},[1675,3146],{"value":1685},[484,3148,640],{"id":3149},"déployer-la-stack-1",[403,3151,3152],{},"Si vous utilisez Dockge, déployez la stack.",[403,3154,3006],{},[489,3156,3158],{"className":491,"code":3157,"filename":493,"language":494,"meta":495,"style":495},"cd \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\u002F\nsudo docker compose up -d\n",[415,3159,3160,3167],{"__ignoreMap":495},[499,3161,3162,3164],{"class":501,"line":502},[499,3163,3017],{"class":3016},[499,3165,3166],{"class":509}," \u002Fsrv\u002Fdocker\u002Fauthentik-outpost\u002F\n",[499,3168,3169,3171,3173,3175,3177],{"class":501,"line":596},[499,3170,506],{"class":505},[499,3172,3027],{"class":509},[499,3174,3030],{"class":509},[499,3176,3033],{"class":509},[499,3178,3036],{"class":513},[403,3180,3181,3182,661],{},"Le conteneur tourne à présent. Vous pouvez vérifier son état depuis le panneau d'administration de votre instance Authentik, dans ",[2173,3183,2433],{},[484,3185,3187],{"id":3186},"pointer-swag-vers-loutpost","Pointer SWAG vers l'outpost",[403,3189,3190],{},"Configurons maintenant SWAG.",[403,3192,1601,3193,545],{},[415,3194,1604],{},[489,3196,3197],{"className":491,"code":1619,"filename":493,"language":494,"meta":495,"style":495},[415,3198,3199],{"__ignoreMap":495},[499,3200,3201,3203,3205],{"class":501,"line":502},[499,3202,506],{"class":505},[499,3204,1628],{"class":509},[499,3206,1631],{"class":509},[403,3208,3209,3210,655,3213,3215],{},"Dans le fichier, remplacez ",[415,3211,3212],{},"authentik-server",[415,3214,2633],{}," comme suit :",[489,3217,3219],{"className":1637,"code":3218,"filename":1604,"language":1639,"meta":495,"style":495},"set $upstream_authentik authentik-outpost;\nproxy_pass http:\u002F\u002F$upstream_authentik:9000;\n",[415,3220,3221,3232],{"__ignoreMap":495},[499,3222,3223,3225,3227,3230],{"class":501,"line":502},[499,3224,1646],{"class":580},[499,3226,1649],{"class":683},[499,3228,3229],{"class":653},"upstream_authentik authentik-outpost",[499,3231,1655],{"class":683},[499,3233,3234,3236,3238,3240,3242],{"class":501,"line":596},[499,3235,1660],{"class":580},[499,3237,1663],{"class":653},[499,3239,1649],{"class":683},[499,3241,1668],{"class":653},[499,3243,1655],{"class":683},[403,3245,2001,3246,2004,3248,1682,3250,661],{},[1675,3247],{"value":1677},[1675,3249],{"value":1681},[1675,3251],{"value":1685},[484,3253,1545],{"id":3254},"terminé-4",[403,3256,3257,3258,3261,3262,661],{},"Configurez ensuite les applications à protéger comme vous l'avez fait sur votre serveur principal, qu'elles soient ",[394,3259,3260],{"href":2373},"natives"," ou protégées via ",[394,3263,3265],{"href":3264},"\u002Fserveex\u002Fadvanced\u002Fauthentik#protecting-an-app-via-reverse-proxy","reverse proxy",[471,3267,3269],{"id":3268},"migrer-une-base-de-données-authentik","Migrer une base de données Authentik",[390,3271,3272,3273,3276,3277,3280],{},"Les commandes ci-dessous partent du principe que le conteneur Postgres s'appelle ",[415,3274,3275],{},"authentik-postgresql",", comme dans la section ",[394,3278,474],{"href":3279},"#installation"," plus haut. Adaptez si vous l'avez renommé.",[480,3282,3283,3287,3290,3329,3333,3336,3352,3356,3359,3461,3465,3468,3497],{"level":482},[484,3284,3286],{"id":3285},"exporter-la-base","Exporter la base",[403,3288,3289],{},"Sur la machine source, exportez la base :",[489,3291,3293],{"className":491,"code":3292,"filename":493,"language":494,"meta":495,"style":495},"sudo docker exec authentik-postgresql pg_dump -U authentik -F t authentik > \u002Fchemin\u002Fvers\u002Fmabase.tar\n",[415,3294,3295],{"__ignoreMap":495},[499,3296,3297,3299,3301,3304,3307,3310,3313,3315,3318,3321,3323,3326],{"class":501,"line":502},[499,3298,506],{"class":505},[499,3300,3027],{"class":509},[499,3302,3303],{"class":509}," exec",[499,3305,3306],{"class":509}," authentik-postgresql",[499,3308,3309],{"class":509}," pg_dump",[499,3311,3312],{"class":513}," -U",[499,3314,2074],{"class":509},[499,3316,3317],{"class":513}," -F",[499,3319,3320],{"class":509}," t",[499,3322,2074],{"class":509},[499,3324,3325],{"class":580}," >",[499,3327,3328],{"class":509}," \u002Fchemin\u002Fvers\u002Fmabase.tar\n",[484,3330,3332],{"id":3331},"transférer-lexport","Transférer l'export",[403,3334,3335],{},"Transférez-le sur la machine cible, puis copiez le fichier dans le conteneur Docker :",[489,3337,3339],{"className":491,"code":3338,"filename":493,"language":494,"meta":495,"style":495},"cp \u002Fchemin\u002Fvers\u002Fmabase.tar authentik-postgresql:\u002Fchemin\u002Fvers\u002Fou-vous-voulez\n",[415,3340,3341],{"__ignoreMap":495},[499,3342,3343,3346,3349],{"class":501,"line":502},[499,3344,3345],{"class":505},"cp",[499,3347,3348],{"class":509}," \u002Fchemin\u002Fvers\u002Fmabase.tar",[499,3350,3351],{"class":509}," authentik-postgresql:\u002Fchemin\u002Fvers\u002Fou-vous-voulez\n",[484,3353,3355],{"id":3354},"purger-les-tables-existantes","Purger les tables existantes",[403,3357,3358],{},"(Facultatif) Purgez les tables existantes :",[489,3360,3362],{"className":491,"code":3361,"filename":493,"language":494,"meta":495,"style":495},"sudo docker exec -i authentik-postgresql psql -U authentik -c \"SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'authentik' AND pid \u003C> pg_backend_pid();\" && sudo docker exec -i authentik-postgresql psql -U authentik -d postgres -c \"DROP DATABASE IF EXISTS authentik;\" && sudo docker exec -i authentik-postgresql psql -U authentik -d postgres -c \"CREATE DATABASE authentik;\"\n",[415,3363,3364],{"__ignoreMap":495},[499,3365,3366,3368,3370,3372,3375,3377,3380,3382,3384,3387,3389,3392,3395,3398,3401,3403,3405,3407,3409,3411,3413,3415,3418,3421,3423,3425,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3459],{"class":501,"line":502},[499,3367,506],{"class":505},[499,3369,3027],{"class":509},[499,3371,3303],{"class":509},[499,3373,3374],{"class":513}," -i",[499,3376,3306],{"class":509},[499,3378,3379],{"class":509}," psql",[499,3381,3312],{"class":513},[499,3383,2074],{"class":509},[499,3385,3386],{"class":513}," -c",[499,3388,561],{"class":560},[499,3390,3391],{"class":509},"SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'authentik' AND pid \u003C> pg_backend_pid();",[499,3393,3394],{"class":560},"\"",[499,3396,3397],{"class":683}," &&",[499,3399,3400],{"class":505}," sudo",[499,3402,3027],{"class":509},[499,3404,3303],{"class":509},[499,3406,3374],{"class":513},[499,3408,3306],{"class":509},[499,3410,3379],{"class":509},[499,3412,3312],{"class":513},[499,3414,2074],{"class":509},[499,3416,3417],{"class":513}," -d",[499,3419,3420],{"class":509}," postgres",[499,3422,3386],{"class":513},[499,3424,561],{"class":560},[499,3426,3427],{"class":509},"DROP DATABASE IF EXISTS authentik;",[499,3429,3394],{"class":560},[499,3431,3397],{"class":683},[499,3433,3400],{"class":505},[499,3435,3027],{"class":509},[499,3437,3303],{"class":509},[499,3439,3374],{"class":513},[499,3441,3306],{"class":509},[499,3443,3379],{"class":509},[499,3445,3312],{"class":513},[499,3447,2074],{"class":509},[499,3449,3417],{"class":513},[499,3451,3420],{"class":509},[499,3453,3386],{"class":513},[499,3455,561],{"class":560},[499,3457,3458],{"class":509},"CREATE DATABASE authentik;",[499,3460,2725],{"class":560},[484,3462,3464],{"id":3463},"restaurer-la-base","Restaurer la base",[403,3466,3467],{},"Restaurez la base :",[489,3469,3471],{"className":491,"code":3470,"filename":493,"language":494,"meta":495,"style":495},"sudo docker exec authentik-postgresql pg_restore -U authentik -d authentik \u002Fchemin\u002Fvers\u002Fou-vous-voulez\u002Fmabase.tar\n",[415,3472,3473],{"__ignoreMap":495},[499,3474,3475,3477,3479,3481,3483,3486,3488,3490,3492,3494],{"class":501,"line":502},[499,3476,506],{"class":505},[499,3478,3027],{"class":509},[499,3480,3303],{"class":509},[499,3482,3306],{"class":509},[499,3484,3485],{"class":509}," pg_restore",[499,3487,3312],{"class":513},[499,3489,2074],{"class":509},[499,3491,3417],{"class":513},[499,3493,2074],{"class":509},[499,3495,3496],{"class":509}," \u002Fchemin\u002Fvers\u002Fou-vous-voulez\u002Fmabase.tar\n",[484,3498,1545],{"id":3499},"terminé-5",[3501,3502,3503],"style",{},"html pre.shiki code .sEgDM, html code.shiki .sEgDM{--shiki-light:#B392F0;--shiki-default:#FFCB6B;--shiki-dark:#B392F0}html pre.shiki code .s11XM, html code.shiki .s11XM{--shiki-light:#9ECBFF;--shiki-default:#C3E88D;--shiki-dark:#9ECBFF}html pre.shiki code .sJWha, html code.shiki .sJWha{--shiki-light:#79B8FF;--shiki-default:#C3E88D;--shiki-dark:#79B8FF}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 .s8K8j, html code.shiki .s8K8j{--shiki-light:#9ECBFF;--shiki-default:#89DDFF;--shiki-dark:#9ECBFF}html pre.shiki code .swwWl, html code.shiki .swwWl{--shiki-light:#79B8FF;--shiki-default:#F78C6C;--shiki-dark:#79B8FF}html pre.shiki code .sJPTy, html code.shiki .sJPTy{--shiki-light:#F97583;--shiki-default:#89DDFF;--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 .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 .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 .sAoO4, html code.shiki .sAoO4{--shiki-light:#F97583;--shiki-default:#C792EA;--shiki-dark:#F97583}html pre.shiki code .sxjBU, html code.shiki .sxjBU{--shiki-light:#DBEDFF;--shiki-default:#C3E88D;--shiki-dark:#DBEDFF}html pre.shiki code .s08Ry, html code.shiki .s08Ry{--shiki-light:#79B8FF;--shiki-default:#FF9CAC;--shiki-dark:#79B8FF}html pre.shiki code .soUAX, html code.shiki .soUAX{--shiki-light:#79B8FF;--shiki-default:#89DDFF;--shiki-dark:#79B8FF}html pre.shiki code .sJGgK, html code.shiki .sJGgK{--shiki-light:#79B8FF;--shiki-default:#82AAFF;--shiki-dark:#79B8FF}html pre.shiki code .szyEh, html code.shiki .szyEh{--shiki-light:#F97583;--shiki-default:#F07178;--shiki-dark:#F97583}",{"title":495,"searchDepth":596,"depth":596,"links":3505},[3506,3513,3519,3524,3525,3530,3541],{"id":473,"depth":596,"text":474,"children":3507},[3508,3509,3510,3511,3512],{"id":486,"depth":687,"text":487},{"id":529,"depth":687,"text":530},{"id":639,"depth":687,"text":640},{"id":1502,"depth":687,"text":1503},{"id":1544,"depth":687,"text":1545},{"id":1548,"depth":596,"text":1549,"children":3514},[3515,3516,3517,3518],{"id":1597,"depth":687,"text":1598},{"id":1688,"depth":687,"text":1689},{"id":2011,"depth":687,"text":2012},{"id":2139,"depth":687,"text":1545},{"id":2148,"depth":596,"text":2149,"children":3520},[3521,3522,3523],{"id":2157,"depth":687,"text":2158},{"id":2167,"depth":687,"text":2168},{"id":2191,"depth":687,"text":1545},{"id":2197,"depth":596,"text":2198},{"id":2209,"depth":596,"text":2210,"children":3526},[3527,3528,3529],{"id":2229,"depth":687,"text":2230},{"id":2295,"depth":687,"text":2296},{"id":2345,"depth":687,"text":1545},{"id":2366,"depth":596,"text":2367,"children":3531},[3532,3533,3534,3535,3536,3537,3538,3539,3540],{"id":2420,"depth":687,"text":2230},{"id":2621,"depth":687,"text":2622},{"id":2669,"depth":687,"text":2670},{"id":2849,"depth":687,"text":2850},{"id":2996,"depth":687,"text":2997},{"id":3039,"depth":687,"text":3040},{"id":3149,"depth":687,"text":640},{"id":3186,"depth":687,"text":3187},{"id":3254,"depth":687,"text":1545},{"id":3268,"depth":596,"text":3269,"children":3542},[3543,3544,3545,3546,3547],{"id":3285,"depth":687,"text":3286},{"id":3331,"depth":687,"text":3332},{"id":3354,"depth":687,"text":3355},{"id":3463,"depth":687,"text":3464},{"id":3499,"depth":687,"text":1545},[3549],"Djeex","Installer Authentik comme fournisseur d'identité auto-hébergé, configurer le MFA et protéger vos services avec du SSO et l'authentification via reverse proxy.","md",null,{},{"title":254,"description":3550},"BsjxT-QB5rwJJKnbIlH-RBFPFDUf2NZJUb056GpSDvg",[3557,3559],{"title":244,"path":245,"stem":246,"description":3558,"children":-1},"Installer Vaultwarden, un gestionnaire de mots de passe auto-hébergé compatible Bitwarden, pour remplacer ceux de Google ou d'Apple sur tous vos appareils.",{"title":258,"path":259,"stem":260,"description":3560,"children":-1},"Installer Arcane, une interface web moderne de gestion Docker et Compose, comme alternative plus avancée à Dockge avec gestion multi-hôtes et connexion OIDC.",1788645842249]