[{"data":1,"prerenderedAt":1738},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-serveex-security-pocket-id-":376,"-fr-serveex-security-pocket-id--surround":1733},[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":140,"body":378,"contributors":1725,"description":1727,"extension":1728,"hideCopyPage":15,"hideHeader":15,"hideToc":15,"links":1729,"meta":1730,"navigation":1062,"path":141,"seo":1731,"stem":142,"__hash__":1732},"docs_fr\u002Ffr\u002F3.serveex\u002F3.security\u002F4.pocket-id.md",{"type":379,"value":380,"toc":1697},"minimark",[381,389,404,411,418,436,441,445,916,920,926,937,944,948,951,987,1404,1408,1414,1462,1466,1471,1690,1693],[382,383],"ellipsis",{"blur":384,"left":385,"top":386,"width":387,"z-index":388},"140px","0px","10rem","40rem","60",[390,391,392,398,399,403],"p",{},[393,394,140],"a",{"href":395,"rel":396},"https:\u002F\u002Fpocket-id.org",[397],"nofollow"," est un fournisseur OIDC (OpenID Connect) minimaliste et auto-hébergé, entièrement construit autour des passkeys : au lieu de gérer des mots de passe, vous et vos utilisateurs vous connectez aux applications compatibles avec une ",[400,401,402],"strong",{},"passkey"," (empreinte digitale, reconnaissance faciale, ou clé de sécurité matérielle). Il tourne dans un unique conteneur léger, sans base de données externe à gérer, et fait une seule chose et la fait bien : délivrer des connexions OIDC.",[390,405,406],{},[407,408],"img",{"alt":409,"src":410},"pocketid","\u002Fimg\u002Fserveex\u002Fpocketid.png",[390,412,413,414,417],{},"C'est donc un bon choix si vous voulez simplement un backend SSO simple et rapide, par exemple pour l'associer à ",[393,415,136],{"href":416},"\u002Fserveex\u002Fsecurity\u002Ftinyauth"," en tant que forward-auth léger, ou pour vous connecter directement aux applications qui gèrent nativement OIDC.",[419,420,421,429],"ul",{},[422,423,424],"li",{},[393,425,428],{"href":426,"rel":427},"https:\u002F\u002Fpocket-id.org\u002Fdocs",[397],"Documentation de Pocket ID",[422,430,431],{},[393,432,435],{"href":433,"rel":434},"https:\u002F\u002Fgithub.com\u002Fpocket-id\u002Fpocket-id",[397],"Pocket ID sur GitHub",[437,438,440],"h2",{"id":439},"installation","Installation",[442,443],"file-tree",{":tree":444},"{\"\u002F\":[{\"srv\":[{\"docker\":[{\"pocket-id\":[\"compose.yaml\",\".env\",\"data\u002F\"]}]}]}]}",[446,447,449,454,485,489,509,516,520,531,739,786,790,796,834,905,912],"steps",{"level":448},"3",[450,451,453],"h3",{"id":452},"créer-le-dossier-de-données","Créer le dossier de données",[455,456,462],"pre",{"className":457,"code":458,"filename":459,"language":460,"meta":461,"style":461},"language-bash shiki shiki-themes github-dark material-theme github-dark","sudo mkdir -p \u002Fsrv\u002Fdocker\u002Fpocket-id\u002Fdata\n","Terminal","bash","",[463,464,465],"code",{"__ignoreMap":461},[466,467,470,474,478,482],"span",{"class":468,"line":469},"line",1,[466,471,473],{"class":472},"sEgDM","sudo",[466,475,477],{"class":476},"s11XM"," mkdir",[466,479,481],{"class":480},"sJWha"," -p",[466,483,484],{"class":476}," \u002Fsrv\u002Fdocker\u002Fpocket-id\u002Fdata\n",[450,486,488],{"id":487},"générer-une-clé-de-chiffrement","Générer une clé de chiffrement",[455,490,492],{"className":457,"code":491,"filename":459,"language":460,"meta":461,"style":461},"openssl rand -base64 32\n",[463,493,494],{"__ignoreMap":461},[466,495,496,499,502,505],{"class":468,"line":469},[466,497,498],{"class":472},"openssl",[466,500,501],{"class":476}," rand",[466,503,504],{"class":480}," -base64",[466,506,508],{"class":507},"swwWl"," 32\n",[390,510,511,512,515],{},"Gardez le résultat, vous en aurez besoin pour le fichier ",[463,513,514],{},".env"," ci-dessous.",[450,517,519],{"id":518},"déployer-la-stack","Déployer la stack",[390,521,522,523,526,527,530],{},"Ouvrez Dockge, cliquez sur ",[463,524,525],{},"compose",", nommez la stack ",[463,528,529],{},"pocket-id",", et ajoutez la configuration suivante :",[455,532,537],{"className":533,"code":534,"filename":535,"language":536,"meta":461,"style":461},"language-yaml shiki shiki-themes github-dark material-theme github-dark","---\nservices:\n  pocket-id:\n    image: pocketid\u002Fpocket-id:v2\n    container_name: pocket-id\n    restart: unless-stopped\n    env_file:\n      - .env\n    volumes:\n      - \u002Fsrv\u002Fdocker\u002Fpocket-id\u002Fdata:\u002Fapp\u002Fdata\n    ports:\n      - 1411:1411\n    healthcheck:\n      test: [\"CMD\", \"curl\", \"-f\", \"http:\u002F\u002Flocalhost:1411\u002Fhealthz\"]\n      interval: 90s\n      timeout: 5s\n      retries: 3\n","compose.yaml","yaml",[463,538,539,544,555,563,575,586,597,605,614,622,630,638,646,654,706,717,728],{"__ignoreMap":461},[466,540,541],{"class":468,"line":469},[466,542,543],{"class":472},"---\n",[466,545,547,551],{"class":468,"line":546},2,[466,548,550],{"class":549},"sRuoG","services",[466,552,554],{"class":553},"s8jd1",":\n",[466,556,558,561],{"class":468,"line":557},3,[466,559,560],{"class":549},"  pocket-id",[466,562,554],{"class":553},[466,564,566,569,572],{"class":468,"line":565},4,[466,567,568],{"class":549},"    image",[466,570,571],{"class":553},":",[466,573,574],{"class":476}," pocketid\u002Fpocket-id:v2\n",[466,576,578,581,583],{"class":468,"line":577},5,[466,579,580],{"class":549},"    container_name",[466,582,571],{"class":553},[466,584,585],{"class":476}," pocket-id\n",[466,587,589,592,594],{"class":468,"line":588},6,[466,590,591],{"class":549},"    restart",[466,593,571],{"class":553},[466,595,596],{"class":476}," unless-stopped\n",[466,598,600,603],{"class":468,"line":599},7,[466,601,602],{"class":549},"    env_file",[466,604,554],{"class":553},[466,606,608,611],{"class":468,"line":607},8,[466,609,610],{"class":553},"      -",[466,612,613],{"class":476}," .env\n",[466,615,617,620],{"class":468,"line":616},9,[466,618,619],{"class":549},"    volumes",[466,621,554],{"class":553},[466,623,625,627],{"class":468,"line":624},10,[466,626,610],{"class":553},[466,628,629],{"class":476}," \u002Fsrv\u002Fdocker\u002Fpocket-id\u002Fdata:\u002Fapp\u002Fdata\n",[466,631,633,636],{"class":468,"line":632},11,[466,634,635],{"class":549},"    ports",[466,637,554],{"class":553},[466,639,641,643],{"class":468,"line":640},12,[466,642,610],{"class":553},[466,644,645],{"class":476}," 1411:1411\n",[466,647,649,652],{"class":468,"line":648},13,[466,650,651],{"class":549},"    healthcheck",[466,653,554],{"class":553},[466,655,657,660,662,665,669,672,674,677,680,683,685,687,689,692,694,696,698,701,703],{"class":468,"line":656},14,[466,658,659],{"class":549},"      test",[466,661,571],{"class":553},[466,663,664],{"class":553}," [",[466,666,668],{"class":667},"s8K8j","\"",[466,670,671],{"class":476},"CMD",[466,673,668],{"class":667},[466,675,676],{"class":553},",",[466,678,679],{"class":667}," \"",[466,681,682],{"class":476},"curl",[466,684,668],{"class":667},[466,686,676],{"class":553},[466,688,679],{"class":667},[466,690,691],{"class":476},"-f",[466,693,668],{"class":667},[466,695,676],{"class":553},[466,697,679],{"class":667},[466,699,700],{"class":476},"http:\u002F\u002Flocalhost:1411\u002Fhealthz",[466,702,668],{"class":667},[466,704,705],{"class":553},"]\n",[466,707,709,712,714],{"class":468,"line":708},15,[466,710,711],{"class":549},"      interval",[466,713,571],{"class":553},[466,715,716],{"class":476}," 90s\n",[466,718,720,723,725],{"class":468,"line":719},16,[466,721,722],{"class":549},"      timeout",[466,724,571],{"class":553},[466,726,727],{"class":476}," 5s\n",[466,729,731,734,736],{"class":468,"line":730},17,[466,732,733],{"class":549},"      retries",[466,735,571],{"class":553},[466,737,738],{"class":507}," 3\n",[740,741,742,745],"tip",{"icon":461},[390,743,744],{},"✨ Ajoutez le label Watchtower pour automatiser les mises à jour :",[455,746,748],{"className":533,"code":747,"filename":535,"language":536,"meta":461,"style":461},"---\nservices:\n  pocket-id:\n    #...\n    labels:\n      - com.centurylinklabs.watchtower.enable=true\n",[463,749,750,754,760,766,772,779],{"__ignoreMap":461},[466,751,752],{"class":468,"line":469},[466,753,543],{"class":472},[466,755,756,758],{"class":468,"line":546},[466,757,550],{"class":549},[466,759,554],{"class":553},[466,761,762,764],{"class":468,"line":557},[466,763,560],{"class":549},[466,765,554],{"class":553},[466,767,768],{"class":468,"line":565},[466,769,771],{"class":770},"sDvJj","    #...\n",[466,773,774,777],{"class":468,"line":577},[466,775,776],{"class":549},"    labels",[466,778,554],{"class":553},[466,780,781,783],{"class":468,"line":588},[466,782,610],{"class":553},[466,784,785],{"class":476}," com.centurylinklabs.watchtower.enable=true\n",[450,787,789],{"id":788},"renseigner-vos-variables-denvironnement","Renseigner vos variables d'environnement",[390,791,792,793,795],{},"Remplissez le fichier ",[463,794,514],{}," :",[455,797,801],{"className":798,"code":799,"filename":514,"language":800,"meta":461,"style":461},"language-properties shiki shiki-themes github-dark material-theme github-dark","APP_URL=https:\u002F\u002Fid.mondomaine.fr\nENCRYPTION_KEY=\nTRUST_PROXY=true\n","properties",[463,802,803,816,824],{"__ignoreMap":461},[466,804,805,809,812],{"class":468,"line":469},[466,806,808],{"class":807},"szyEh","APP_URL",[466,810,811],{"class":553},"=",[466,813,815],{"class":814},"slcoZ","https:\u002F\u002Fid.mondomaine.fr\n",[466,817,818,821],{"class":468,"line":546},[466,819,820],{"class":807},"ENCRYPTION_KEY",[466,822,823],{"class":553},"=\n",[466,825,826,829,831],{"class":468,"line":557},[466,827,828],{"class":807},"TRUST_PROXY",[466,830,811],{"class":553},[466,832,833],{"class":814},"true\n",[835,836,837,853],"table",{},[838,839,840],"thead",{},[841,842,843,847,850],"tr",{},[844,845,846],"th",{},"Variable",[844,848,849],{},"Valeur",[844,851,852],{},"Exemple",[854,855,856,873,889],"tbody",{},[841,857,858,865,868],{},[859,860,861],"td",{},[463,862,863],{"className":798,"language":800,"style":461},[466,864,808],{"class":814},[859,866,867],{},"L'URL publique par laquelle vous joindrez Pocket ID (voir l'exposition plus bas)",[859,869,870],{},[463,871,872],{},"https:\u002F\u002Fid.mondomaine.fr",[841,874,875,881,884],{},[859,876,877],{},[463,878,879],{"className":798,"language":800,"style":461},[466,880,820],{"class":814},[859,882,883],{},"La clé générée ci-dessus",[859,885,886],{},[463,887,888],{},"Q2pVEqsTNRkJSO9SkJzU3KZ2...",[841,890,891,897,900],{},[859,892,893],{},[463,894,895],{"className":798,"language":800,"style":461},[466,896,828],{"class":814},[859,898,899],{},"Nécessaire puisque Pocket ID se trouve derrière Swag",[859,901,902],{},[463,903,904],{},"true",[390,906,907,908,911],{},"Déployez la stack. L'interface locale est disponible sur ",[463,909,910],{},"http:\u002F\u002Fipdevotreserveur:1411",".",[450,913,915],{"id":914},"terminé","Terminé !",[437,917,919],{"id":918},"première-connexion","Première connexion",[390,921,922,923,925],{},"Pocket ID n'utilise pas de mots de passe : votre premier compte est créé avec une ",[400,924,402],{},", que votre navigateur ou votre système génère pour vous (Windows Hello, Touch ID, un téléphone, ou une clé matérielle comme une YubiKey).",[419,927,928,934],{},[422,929,930,931],{},"Allez sur ",[463,932,933],{},"http:\u002F\u002Fipdevotreserveur:1411\u002Fsetup",[422,935,936],{},"Suivez les instructions pour créer votre compte administrateur et enregistrer votre première passkey",[938,939,940,941,943],"note",{},"Comme ",[463,942,808],{}," pointe déjà vers votre futur domaine public, l'enregistrement de la passkey peut vous demander d'ouvrir Pocket ID depuis ce domaine. Exposez-le d'abord (voir plus bas) si la configuration ne se termine pas en local.",[437,945,947],{"id":946},"exposer-pocket-id-avec-swag","Exposer Pocket ID avec Swag",[390,949,950],{},"Les autres applications doivent joindre Pocket ID en HTTPS pour finaliser le processus de connexion OIDC, il doit donc être exposé même si vous ne l'utilisez que depuis chez vous.",[938,952,953,954,957,958,961,962,965,966,970,971,975,976,979,980,982,983,911],{},"Nous partons du principe que vous avez le sous-domaine ",[463,955,956],{},"id.mondomaine.fr"," avec un ",[463,959,960],{},"CNAME"," pointant vers ",[463,963,964],{},"mondomaine.fr"," dans votre ",[393,967,969],{"href":968},"\u002Fgeneral\u002Fnetworking\u002Fdns","zone DNS",". Et bien sûr, ",[393,972,974],{"href":973},"\u002Fserveex\u002Fsecurity\u002Fcloudflare","à moins d'utiliser Cloudflare Zero Trust",", le port ",[463,977,978],{},"443"," de votre box doit être redirigé vers le port ",[463,981,978],{}," de votre serveur dans les ",[393,984,986],{"href":985},"\u002Fgeneral\u002Fnetworking\u002Fnat","règles NAT",[446,988,989,993,996,1115,1118,1128,1132,1138,1149,1164,1167,1365,1369,1385,1389,1395,1401],{"level":448},[450,990,992],{"id":991},"ajouter-le-réseau-de-pocket-id-à-swag","Ajouter le réseau de Pocket ID à SWAG",[390,994,995],{},"Allez dans Dockge et modifiez le fichier compose de SWAG en y ajoutant le réseau de Pocket ID :",[455,997,999],{"className":533,"code":998,"filename":535,"language":536,"meta":461,"style":461},"---\nservices:\n  swag:\n     container_name: # ...\n      # ... \n     networks:                # Rattache le conteneur au réseau personnalisé \n      # ...           \n      - pocket-id             # Nom du réseau déclaré\n\nnetworks:                     # Définit le réseau personnalisé\n  # ...\n  pocket-id:                  # Nom du réseau déclaré\n    name: pocket-id_default   # Nom réel du réseau externe\n    external: true            # Le marque comme défini à l'extérieur\n",[463,1000,1001,1005,1011,1018,1028,1033,1043,1048,1058,1064,1074,1079,1088,1101],{"__ignoreMap":461},[466,1002,1003],{"class":468,"line":469},[466,1004,543],{"class":472},[466,1006,1007,1009],{"class":468,"line":546},[466,1008,550],{"class":549},[466,1010,554],{"class":553},[466,1012,1013,1016],{"class":468,"line":557},[466,1014,1015],{"class":549},"  swag",[466,1017,554],{"class":553},[466,1019,1020,1023,1025],{"class":468,"line":565},[466,1021,1022],{"class":549},"     container_name",[466,1024,571],{"class":553},[466,1026,1027],{"class":770}," # ...\n",[466,1029,1030],{"class":468,"line":577},[466,1031,1032],{"class":770},"      # ... \n",[466,1034,1035,1038,1040],{"class":468,"line":588},[466,1036,1037],{"class":549},"     networks",[466,1039,571],{"class":553},[466,1041,1042],{"class":770},"                # Rattache le conteneur au réseau personnalisé \n",[466,1044,1045],{"class":468,"line":599},[466,1046,1047],{"class":770},"      # ...           \n",[466,1049,1050,1052,1055],{"class":468,"line":607},[466,1051,610],{"class":553},[466,1053,1054],{"class":476}," pocket-id",[466,1056,1057],{"class":770},"             # Nom du réseau déclaré\n",[466,1059,1060],{"class":468,"line":616},[466,1061,1063],{"emptyLinePlaceholder":1062},true,"\n",[466,1065,1066,1069,1071],{"class":468,"line":624},[466,1067,1068],{"class":549},"networks",[466,1070,571],{"class":553},[466,1072,1073],{"class":770},"                     # Définit le réseau personnalisé\n",[466,1075,1076],{"class":468,"line":632},[466,1077,1078],{"class":770},"  # ...\n",[466,1080,1081,1083,1085],{"class":468,"line":640},[466,1082,560],{"class":549},[466,1084,571],{"class":553},[466,1086,1087],{"class":770},"                  # Nom du réseau déclaré\n",[466,1089,1090,1093,1095,1098],{"class":468,"line":648},[466,1091,1092],{"class":549},"    name",[466,1094,571],{"class":553},[466,1096,1097],{"class":476}," pocket-id_default",[466,1099,1100],{"class":770},"   # Nom réel du réseau externe\n",[466,1102,1103,1106,1108,1112],{"class":468,"line":656},[466,1104,1105],{"class":549},"    external",[466,1107,571],{"class":553},[466,1109,1111],{"class":1110},"s08Ry"," true",[466,1113,1114],{"class":770},"            # Le marque comme défini à l'extérieur\n",[390,1116,1117],{},"Redéployez la stack et attendez que SWAG soit pleinement opérationnel.",[938,1119,1120,1121,1124,1125,911],{},"Nous partons ici du principe que le nom du réseau de Pocket ID est ",[463,1122,1123],{},"pocket-id_default",". Vous pouvez vérifier la connexion en visitant le tableau de bord de SWAG sur ",[463,1126,1127],{},"http:\u002F\u002Fipdevotreserveur:81",[450,1129,1131],{"id":1130},"créer-le-fichier-subdomainconf","Créer le fichier subdomain.conf",[390,1133,1134,1135,795],{},"Dans les dossiers de Swag, créez le fichier ",[463,1136,1137],{},"id.subdomain.conf",[740,1139,1141,1142,1145,1146,1148],{"icon":461,"to":1140},"\u002Fserveex\u002Ffiles\u002Ffile-browser-quantum","✨ ",[400,1143,1144],{},"Astuce :"," utilisez ",[400,1147,208],{}," pour naviguer et modifier les fichiers plutôt que des commandes dans le terminal.",[455,1150,1152],{"className":457,"code":1151,"filename":459,"language":460,"meta":461,"style":461},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fid.subdomain.conf\n",[463,1153,1154],{"__ignoreMap":461},[466,1155,1156,1158,1161],{"class":468,"line":469},[466,1157,473],{"class":472},[466,1159,1160],{"class":476}," nano",[466,1162,1163],{"class":476}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Fid.subdomain.conf\n",[390,1165,1166],{},"Collez la configuration suivante :",[455,1168,1172],{"className":1169,"code":1170,"filename":1137,"language":1171,"meta":461,"style":461},"language-nginx shiki shiki-themes github-dark material-theme github-dark","## Version 2023\u002F12\u002F19\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n\n    server_name id.*;\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 pocket-id;\n        set $upstream_port 1411;\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n}\n","nginx",[463,1173,1174,1179,1183,1192,1206,1215,1219,1229,1233,1243,1247,1257,1261,1272,1282,1291,1304,1318,1330,1353,1359],{"__ignoreMap":461},[466,1175,1176],{"class":468,"line":469},[466,1177,1178],{"class":770},"## Version 2023\u002F12\u002F19\n",[466,1180,1181],{"class":468,"line":546},[466,1182,1063],{"emptyLinePlaceholder":1062},[466,1184,1185,1189],{"class":468,"line":557},[466,1186,1188],{"class":1187},"sAoO4","server",[466,1190,1191],{"class":814}," {\n",[466,1193,1194,1198,1200,1203],{"class":468,"line":565},[466,1195,1197],{"class":1196},"sJPTy","    listen ",[466,1199,978],{"class":507},[466,1201,1202],{"class":814}," ssl",[466,1204,1205],{"class":553},";\n",[466,1207,1208,1210,1213],{"class":468,"line":577},[466,1209,1197],{"class":1196},[466,1211,1212],{"class":814},"[::]:443 ssl",[466,1214,1205],{"class":553},[466,1216,1217],{"class":468,"line":588},[466,1218,1063],{"emptyLinePlaceholder":1062},[466,1220,1221,1224,1227],{"class":468,"line":599},[466,1222,1223],{"class":1196},"    server_name ",[466,1225,1226],{"class":814},"id.*",[466,1228,1205],{"class":553},[466,1230,1231],{"class":468,"line":607},[466,1232,1063],{"emptyLinePlaceholder":1062},[466,1234,1235,1238,1241],{"class":468,"line":616},[466,1236,1237],{"class":1196},"    include ",[466,1239,1240],{"class":814},"\u002Fconfig\u002Fnginx\u002Fssl.conf",[466,1242,1205],{"class":553},[466,1244,1245],{"class":468,"line":624},[466,1246,1063],{"emptyLinePlaceholder":1062},[466,1248,1249,1252,1255],{"class":468,"line":632},[466,1250,1251],{"class":1196},"    client_max_body_size ",[466,1253,1254],{"class":507},"0",[466,1256,1205],{"class":553},[466,1258,1259],{"class":468,"line":640},[466,1260,1063],{"emptyLinePlaceholder":1062},[466,1262,1263,1266,1269],{"class":468,"line":648},[466,1264,1265],{"class":1187},"    location",[466,1267,1268],{"class":472}," \u002F ",[466,1270,1271],{"class":814},"{\n",[466,1273,1274,1277,1280],{"class":468,"line":656},[466,1275,1276],{"class":1196},"        include ",[466,1278,1279],{"class":814},"\u002Fconfig\u002Fnginx\u002Fproxy.conf",[466,1281,1205],{"class":553},[466,1283,1284,1286,1289],{"class":468,"line":708},[466,1285,1276],{"class":1196},[466,1287,1288],{"class":814},"\u002Fconfig\u002Fnginx\u002Fresolver.conf",[466,1290,1205],{"class":553},[466,1292,1293,1296,1299,1302],{"class":468,"line":719},[466,1294,1295],{"class":1196},"        set ",[466,1297,1298],{"class":553},"$",[466,1300,1301],{"class":814},"upstream_app pocket-id",[466,1303,1205],{"class":553},[466,1305,1306,1308,1310,1313,1316],{"class":468,"line":730},[466,1307,1295],{"class":1196},[466,1309,1298],{"class":553},[466,1311,1312],{"class":814},"upstream_port ",[466,1314,1315],{"class":507},"1411",[466,1317,1205],{"class":553},[466,1319,1321,1323,1325,1328],{"class":468,"line":1320},18,[466,1322,1295],{"class":1196},[466,1324,1298],{"class":553},[466,1326,1327],{"class":814},"upstream_proto http",[466,1329,1205],{"class":553},[466,1331,1333,1336,1338,1341,1343,1346,1348,1351],{"class":468,"line":1332},19,[466,1334,1335],{"class":1196},"        proxy_pass ",[466,1337,1298],{"class":553},[466,1339,1340],{"class":814},"upstream_proto:\u002F\u002F",[466,1342,1298],{"class":553},[466,1344,1345],{"class":814},"upstream_app:",[466,1347,1298],{"class":553},[466,1349,1350],{"class":814},"upstream_port",[466,1352,1205],{"class":553},[466,1354,1356],{"class":468,"line":1355},20,[466,1357,1358],{"class":814},"    }\n",[466,1360,1362],{"class":468,"line":1361},21,[466,1363,1364],{"class":814},"}\n",[1366,1367,1368],"caution",{},"Ne mettez pas Pocket ID derrière une autre couche d'authentification (TinyAuth, auth HTTP...). C'est le fournisseur d'identité lui-même, le verrouiller empêcherait quiconque, vous compris, de se connecter.",[390,1370,1371,1372,1376,1377,1380,1381,1384],{},"Appuyez sur ",[1373,1374],"kbd",{"value":1375},"Ctrl+O",", puis ",[1373,1378],{"value":1379},"Enter"," pour enregistrer, et ",[1373,1382],{"value":1383},"Ctrl+X"," pour quitter.",[450,1386,1388],{"id":1387},"visiter-votre-nouveau-sous-domaine","Visiter votre nouveau sous-domaine",[390,1390,1391,1392,1394],{},"Attendez quelques minutes, puis ouvrez ",[463,1393,872],{}," dans votre navigateur.",[1366,1396,1397,1400],{},[400,1398,1399],{},"Si ça ne marche pas :"," vérifiez les règles de votre pare-feu.",[450,1402,915],{"id":1403},"terminé-1",[437,1405,1407],{"id":1406},"enregistrer-un-client-oidc","Enregistrer un client OIDC",[390,1409,1410,1411,1413],{},"Pour qu'une autre application (par exemple ",[393,1412,136],{"href":416},") se connecte via Pocket ID, vous devez l'enregistrer comme client OIDC :",[446,1415,1416,1420,1425,1429,1444,1448,1459],{"level":448},[450,1417,1419],{"id":1418},"se-connecter-à-pocket-id","Se connecter à Pocket ID",[390,1421,930,1422,1424],{},[463,1423,872],{}," et connectez-vous avec votre passkey.",[450,1426,1428],{"id":1427},"créer-le-client-oidc","Créer le client OIDC",[390,1430,1431,1432,1436,1437,1440,1441,1443],{},"Allez dans ",[1433,1434,1435],"em",{},"Administration > OIDC Clients",", puis cliquez sur ",[1433,1438,1439],{},"Add OIDC Client",". Renseignez un nom (par exemple ",[463,1442,136],{},") et l'URL de callback de l'application (fournie par l'application que vous protégez).",[450,1445,1447],{"id":1446},"conserver-les-identifiants-du-client","Conserver les identifiants du client",[390,1449,1450,1451,1454,1455,1458],{},"Enregistrez, puis copiez le ",[400,1452,1453],{},"Client ID"," et le ",[400,1456,1457],{},"Client Secret"," générés. Vous en aurez besoin dans la configuration de l'autre application.",[450,1460,915],{"id":1461},"terminé-2",[437,1463,1465],{"id":1464},"connecter-pocket-id-à-tinyauth","Connecter Pocket ID à TinyAuth",[390,1467,1468,1470],{},[393,1469,136],{"href":416}," peut déléguer sa connexion à Pocket ID plutôt que (ou en plus de) son identifiant\u002Fmot de passe local, de sorte que quiconque visite une application protégée s'authentifie avec une passkey et se retrouve redirigé.",[446,1472,1473,1477,1487,1495,1499,1510,1524,1527,1605,1659,1667,1671,1678,1687],{"level":448},[450,1474,1476],{"id":1475},"enregistrer-tinyauth-comme-client-oidc","Enregistrer TinyAuth comme client OIDC",[390,1478,1479,1483,1484,1486],{},[393,1480,1482],{"href":1481},"#enregistrer-un-client-oidc","Enregistrez un client OIDC"," nommé ",[463,1485,136],{},", avec cette URL de callback :",[455,1488,1493],{"className":1489,"code":1491,"language":1492,"meta":461},[1490],"language-text","https:\u002F\u002Ftinyauth.mondomaine.fr\u002Fapi\u002Foauth\u002Fcallback\u002Fpocketid\n","text",[463,1494,1491],{"__ignoreMap":461},[450,1496,1498],{"id":1497},"ajouter-le-fournisseur-pocket-id-dans-tinyauth","Ajouter le fournisseur Pocket ID dans TinyAuth",[390,1500,1501,1502,1454,1504,1506,1507,1509],{},"Copiez le ",[400,1503,1453],{},[400,1505,1457],{}," que Pocket ID vous donne, puis modifiez le fichier ",[463,1508,514],{}," de TinyAuth :",[455,1511,1513],{"className":457,"code":1512,"filename":459,"language":460,"meta":461,"style":461},"sudo nano \u002Fsrv\u002Fdocker\u002Ftinyauth\u002F.env\n",[463,1514,1515],{"__ignoreMap":461},[466,1516,1517,1519,1521],{"class":468,"line":469},[466,1518,473],{"class":472},[466,1520,1160],{"class":476},[466,1522,1523],{"class":476}," \u002Fsrv\u002Fdocker\u002Ftinyauth\u002F.env\n",[390,1525,1526],{},"Ajoutez ceci :",[455,1528,1530],{"className":798,"code":1529,"filename":514,"language":800,"meta":461,"style":461},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_NAME=Pocket ID\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_CLIENTID=\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_CLIENTSECRET=\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_AUTHURL=https:\u002F\u002Fid.mondomaine.fr\u002Fauthorize\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_TOKENURL=https:\u002F\u002Fid.mondomaine.fr\u002Fapi\u002Foidc\u002Ftoken\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_USERINFOURL=https:\u002F\u002Fid.mondomaine.fr\u002Fapi\u002Foidc\u002Fuserinfo\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_REDIRECTURL=https:\u002F\u002Ftinyauth.mondomaine.fr\u002Fapi\u002Foauth\u002Fcallback\u002Fpocketid\nTINYAUTH_OAUTH_PROVIDERS_POCKETID_SCOPES=openid email profile\n",[463,1531,1532,1542,1549,1556,1566,1576,1586,1595],{"__ignoreMap":461},[466,1533,1534,1537,1539],{"class":468,"line":469},[466,1535,1536],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_NAME",[466,1538,811],{"class":553},[466,1540,1541],{"class":814},"Pocket ID\n",[466,1543,1544,1547],{"class":468,"line":546},[466,1545,1546],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_CLIENTID",[466,1548,823],{"class":553},[466,1550,1551,1554],{"class":468,"line":557},[466,1552,1553],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_CLIENTSECRET",[466,1555,823],{"class":553},[466,1557,1558,1561,1563],{"class":468,"line":565},[466,1559,1560],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_AUTHURL",[466,1562,811],{"class":553},[466,1564,1565],{"class":814},"https:\u002F\u002Fid.mondomaine.fr\u002Fauthorize\n",[466,1567,1568,1571,1573],{"class":468,"line":577},[466,1569,1570],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_TOKENURL",[466,1572,811],{"class":553},[466,1574,1575],{"class":814},"https:\u002F\u002Fid.mondomaine.fr\u002Fapi\u002Foidc\u002Ftoken\n",[466,1577,1578,1581,1583],{"class":468,"line":588},[466,1579,1580],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_USERINFOURL",[466,1582,811],{"class":553},[466,1584,1585],{"class":814},"https:\u002F\u002Fid.mondomaine.fr\u002Fapi\u002Foidc\u002Fuserinfo\n",[466,1587,1588,1591,1593],{"class":468,"line":599},[466,1589,1590],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_REDIRECTURL",[466,1592,811],{"class":553},[466,1594,1491],{"class":814},[466,1596,1597,1600,1602],{"class":468,"line":607},[466,1598,1599],{"class":807},"TINYAUTH_OAUTH_PROVIDERS_POCKETID_SCOPES",[466,1601,811],{"class":553},[466,1603,1604],{"class":814},"openid email profile\n",[835,1606,1607,1615],{},[838,1608,1609],{},[841,1610,1611,1613],{},[844,1612,846],{},[844,1614,849],{},[854,1616,1617,1629,1641],{},[841,1618,1619,1626],{},[859,1620,1621],{},[463,1622,1623],{"className":798,"language":800,"style":461},[466,1624,1625],{"class":814},"CLIENTID",[859,1627,1628],{},"Le client ID copié depuis Pocket ID",[841,1630,1631,1638],{},[859,1632,1633],{},[463,1634,1635],{"className":798,"language":800,"style":461},[466,1636,1637],{"class":814},"CLIENTSECRET",[859,1639,1640],{},"Le client secret copié depuis Pocket ID",[841,1642,1643,1656],{},[859,1644,1645,1268,1648,1268,1651],{},[463,1646,1647],{},"AUTHURL",[463,1649,1650],{},"TOKENURL",[463,1652,1653],{"className":798,"language":800,"style":461},[466,1654,1655],{"class":814},"USERINFOURL",[859,1657,1658],{},"L'URL publique de Pocket ID, avec les chemins indiqués ci-dessus",[390,1660,1371,1661,1376,1663,1380,1665,1384],{},[1373,1662],{"value":1375},[1373,1664],{"value":1379},[1373,1666],{"value":1383},[450,1668,1670],{"id":1669},"redéployer-la-stack","Redéployer la stack",[390,1672,1673,1674,1677],{},"Redéployez la stack TinyAuth. À votre prochaine visite sur ",[463,1675,1676],{},"https:\u002F\u002Ftinyauth.mondomaine.fr",", vous verrez une option « Login with Pocket ID » à côté du formulaire de connexion local.",[740,1679,1680,1681,1684,1685,911],{"icon":461},"✨ Pour aller directement sur Pocket ID et masquer le formulaire de connexion local, ajoutez ",[463,1682,1683],{},"TINYAUTH_OAUTH_AUTOREDIRECT=pocketid"," au même fichier ",[463,1686,514],{},[450,1688,915],{"id":1689},"terminé-3",[390,1691,1692],{},"Et voilà ! TinyAuth propose désormais une connexion sans mot de passe via Pocket ID pour chaque application qu'il protège.",[1694,1695,1696],"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 .swwWl, html code.shiki .swwWl{--shiki-light:#79B8FF;--shiki-default:#F78C6C;--shiki-dark:#79B8FF}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 .s8K8j, html code.shiki .s8K8j{--shiki-light:#9ECBFF;--shiki-default:#89DDFF;--shiki-dark:#9ECBFF}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 .s08Ry, html code.shiki .s08Ry{--shiki-light:#79B8FF;--shiki-default:#FF9CAC;--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 .sJPTy, html code.shiki .sJPTy{--shiki-light:#F97583;--shiki-default:#89DDFF;--shiki-dark:#F97583}",{"title":461,"searchDepth":546,"depth":546,"links":1698},[1699,1706,1707,1713,1719],{"id":439,"depth":546,"text":440,"children":1700},[1701,1702,1703,1704,1705],{"id":452,"depth":557,"text":453},{"id":487,"depth":557,"text":488},{"id":518,"depth":557,"text":519},{"id":788,"depth":557,"text":789},{"id":914,"depth":557,"text":915},{"id":918,"depth":546,"text":919},{"id":946,"depth":546,"text":947,"children":1708},[1709,1710,1711,1712],{"id":991,"depth":557,"text":992},{"id":1130,"depth":557,"text":1131},{"id":1387,"depth":557,"text":1388},{"id":1403,"depth":557,"text":915},{"id":1406,"depth":546,"text":1407,"children":1714},[1715,1716,1717,1718],{"id":1418,"depth":557,"text":1419},{"id":1427,"depth":557,"text":1428},{"id":1446,"depth":557,"text":1447},{"id":1461,"depth":557,"text":915},{"id":1464,"depth":546,"text":1465,"children":1720},[1721,1722,1723,1724],{"id":1475,"depth":557,"text":1476},{"id":1497,"depth":557,"text":1498},{"id":1669,"depth":557,"text":1670},{"id":1689,"depth":557,"text":915},[1726],"Djeex","Installer Pocket ID, un fournisseur OIDC auto-hébergé et léger qui permet de se connecter à vos autres applications avec une passkey plutôt qu'un mot de passe.","md",null,{},{"title":140,"description":1727},"d8iwSbgREPvp3q7Fgjs999pe0XdOwwbaUFUFMJYbn7Y",[1734,1736],{"title":136,"path":137,"stem":138,"description":1735,"children":-1},"Installer TinyAuth, un proxy de forward-auth léger, et l'associer à Pocket ID pour ajouter une connexion SSO devant vos applications auto-hébergées. Protéger votre application derrière Swag avec le forward-auth.",{"title":150,"path":151,"stem":152,"description":1737,"children":-1},"Installer Uptime-Kuma pour surveiller la disponibilité de vos services auto-hébergés, configurer des alertes et protéger éventuellement le tableau de bord avec Tinyauth ou Authentik",1788645837581]