[{"data":1,"prerenderedAt":1943},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-serveex-files-file-browser-quantum-":376,"-fr-serveex-files-file-browser-quantum--surround":1938},[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":208,"body":378,"contributors":1930,"description":1932,"extension":1933,"hideCopyPage":15,"hideHeader":15,"hideToc":15,"links":1934,"meta":1935,"navigation":788,"path":209,"seo":1936,"stem":210,"__hash__":1937},"docs_fr\u002Ffr\u002F3.serveex\u002F7.files\u002F1.file-browser-quantum.md",{"type":379,"value":380,"toc":1917},"minimark",[381,389,408,415,420,424,821,828,832,848,851,886,1390,1393,1397,1410,1860,1876,1913],[382,383],"ellipsis",{"blur":384,"left":385,"top":386,"width":387,"z-index":388},"140px","0px","10rem","40rem","60",[390,391,392,398,399,402,403,407],"p",{},[393,394,208],"a",{"href":395,"rel":396},"https:\u002F\u002Fgithub.com\u002Fgtsteffaniak\u002Ffilebrowser",[397],"nofollow"," est un fork communautaire de ",[393,400,351],{"href":401},"\u002Frecycled\u002Fdeprecated\u002Ffile-browser",", réécrit pour de meilleures performances (recherche indexée, moins de mémoire consommée) et configuré via un unique fichier ",[404,405,406],"code",{},"config.yaml"," plutôt qu'uniquement par une base de données.",[390,409,410],{},[411,412],"img",{"alt":413,"src":414},"file-browser-quantum","\u002Fimg\u002Fserveex\u002Ffilebrowser-quantum.png",[416,417,419],"h2",{"id":418},"installation","Installation",[421,422],"file-tree",{":tree":423},"{\"\u002F\":[{\"srv\":[{\"docker\":[{\"filebrowser-quantum\":[\"compose.yaml\",{\"data\":[\"config.yaml\",\"filebrowser.sqlite\"]}]}]}]}]}",[425,426,428,433,436,466,472,487,494,593,609,613,624,725,743,803,817],"steps",{"level":427},"3",[429,430,432],"h3",{"id":431},"créer-le-fichier-de-configuration","Créer le fichier de configuration",[390,434,435],{},"Créez le dossier de données :",[437,438,444],"pre",{"className":439,"code":440,"filename":441,"language":442,"meta":443,"style":443},"language-bash shiki shiki-themes github-dark material-theme github-dark","sudo mkdir -p \u002Fsrv\u002Fdocker\u002Ffilebrowser-quantum\u002Fdata\n","Terminal","bash","",[404,445,446],{"__ignoreMap":443},[447,448,451,455,459,463],"span",{"class":449,"line":450},"line",1,[447,452,454],{"class":453},"sEgDM","sudo",[447,456,458],{"class":457},"s11XM"," mkdir",[447,460,462],{"class":461},"sJWha"," -p",[447,464,465],{"class":457}," \u002Fsrv\u002Fdocker\u002Ffilebrowser-quantum\u002Fdata\n",[390,467,468,469,471],{},"Créez le fichier ",[404,470,406],{}," :",[437,473,475],{"className":439,"code":474,"filename":441,"language":442,"meta":443,"style":443},"sudo nano \u002Fsrv\u002Fdocker\u002Ffilebrowser-quantum\u002Fdata\u002Fconfig.yaml\n",[404,476,477],{"__ignoreMap":443},[447,478,479,481,484],{"class":449,"line":450},[447,480,454],{"class":453},[447,482,483],{"class":457}," nano",[447,485,486],{"class":457}," \u002Fsrv\u002Fdocker\u002Ffilebrowser-quantum\u002Fdata\u002Fconfig.yaml\n",[390,488,489,490,493],{},"Collez ce qui suit, en ajoutant une entrée ",[404,491,492],{},"sources"," par dossier que vous voulez parcourir :",[437,495,499],{"className":496,"code":497,"filename":406,"language":498,"meta":443,"style":443},"language-yaml shiki shiki-themes github-dark material-theme github-dark","server:\n  cacheDir: \u002Fhome\u002Ffilebrowser\u002Fdata\u002Ftmp\n  sources:\n    - path: \u002Fsrv\u002Fdocker\n      config:\n        defaultEnabled: true\n    - path: \u002Fmedia\n      config:\n        defaultEnabled: true\n","yaml",[404,500,501,511,523,531,545,553,565,577,584],{"__ignoreMap":443},[447,502,503,507],{"class":449,"line":450},[447,504,506],{"class":505},"sRuoG","server",[447,508,510],{"class":509},"s8jd1",":\n",[447,512,514,517,520],{"class":449,"line":513},2,[447,515,516],{"class":505},"  cacheDir",[447,518,519],{"class":509},":",[447,521,522],{"class":457}," \u002Fhome\u002Ffilebrowser\u002Fdata\u002Ftmp\n",[447,524,526,529],{"class":449,"line":525},3,[447,527,528],{"class":505},"  sources",[447,530,510],{"class":509},[447,532,534,537,540,542],{"class":449,"line":533},4,[447,535,536],{"class":509},"    -",[447,538,539],{"class":505}," path",[447,541,519],{"class":509},[447,543,544],{"class":457}," \u002Fsrv\u002Fdocker\n",[447,546,548,551],{"class":449,"line":547},5,[447,549,550],{"class":505},"      config",[447,552,510],{"class":509},[447,554,556,559,561],{"class":449,"line":555},6,[447,557,558],{"class":505},"        defaultEnabled",[447,560,519],{"class":509},[447,562,564],{"class":563},"s08Ry"," true\n",[447,566,568,570,572,574],{"class":449,"line":567},7,[447,569,536],{"class":509},[447,571,539],{"class":505},[447,573,519],{"class":509},[447,575,576],{"class":457}," \u002Fmedia\n",[447,578,580,582],{"class":449,"line":579},8,[447,581,550],{"class":505},[447,583,510],{"class":509},[447,585,587,589,591],{"class":449,"line":586},9,[447,588,558],{"class":505},[447,590,519],{"class":509},[447,592,564],{"class":563},[390,594,595,596,600,601,604,605,608],{},"Appuyez sur ",[597,598],"kbd",{"value":599},"Ctrl+O",", puis ",[597,602],{"value":603},"Enter"," pour enregistrer, et ",[597,606],{"value":607},"Ctrl+X"," pour quitter.",[429,610,612],{"id":611},"déployer-la-stack","Déployer la stack",[390,614,615,616,619,620,623],{},"Ouvrez Dockge, cliquez sur ",[404,617,618],{},"compose",", nommez la stack ",[404,621,622],{},"filebrowser-quantum",", puis copiez-collez ce qui suit :",[437,625,628],{"className":496,"code":626,"filename":627,"language":498,"meta":443,"style":443},"---\nservices:\n  filebrowser-quantum:\n    container_name: filebrowser-quantum\n    image: gtstef\u002Ffilebrowser:beta\n    restart: unless-stopped\n    volumes:\n      - \u002Fsrv\u002Fdocker:\u002Fsrv\u002Fdocker\n      - \u002Fmedia:\u002Fmedia\n      - \u002Fsrv\u002Fdocker\u002Ffilebrowser-quantum\u002Fdata:\u002Fhome\u002Ffilebrowser\u002Fdata\n    ports:\n      - 8020:80\n","compose.yaml",[404,629,630,635,642,649,659,669,679,686,694,701,709,717],{"__ignoreMap":443},[447,631,632],{"class":449,"line":450},[447,633,634],{"class":453},"---\n",[447,636,637,640],{"class":449,"line":513},[447,638,639],{"class":505},"services",[447,641,510],{"class":509},[447,643,644,647],{"class":449,"line":525},[447,645,646],{"class":505},"  filebrowser-quantum",[447,648,510],{"class":509},[447,650,651,654,656],{"class":449,"line":533},[447,652,653],{"class":505},"    container_name",[447,655,519],{"class":509},[447,657,658],{"class":457}," filebrowser-quantum\n",[447,660,661,664,666],{"class":449,"line":547},[447,662,663],{"class":505},"    image",[447,665,519],{"class":509},[447,667,668],{"class":457}," gtstef\u002Ffilebrowser:beta\n",[447,670,671,674,676],{"class":449,"line":555},[447,672,673],{"class":505},"    restart",[447,675,519],{"class":509},[447,677,678],{"class":457}," unless-stopped\n",[447,680,681,684],{"class":449,"line":567},[447,682,683],{"class":505},"    volumes",[447,685,510],{"class":509},[447,687,688,691],{"class":449,"line":579},[447,689,690],{"class":509},"      -",[447,692,693],{"class":457}," \u002Fsrv\u002Fdocker:\u002Fsrv\u002Fdocker\n",[447,695,696,698],{"class":449,"line":586},[447,697,690],{"class":509},[447,699,700],{"class":457}," \u002Fmedia:\u002Fmedia\n",[447,702,704,706],{"class":449,"line":703},10,[447,705,690],{"class":509},[447,707,708],{"class":457}," \u002Fsrv\u002Fdocker\u002Ffilebrowser-quantum\u002Fdata:\u002Fhome\u002Ffilebrowser\u002Fdata\n",[447,710,712,715],{"class":449,"line":711},11,[447,713,714],{"class":505},"    ports",[447,716,510],{"class":509},[447,718,720,722],{"class":449,"line":719},12,[447,721,690],{"class":509},[447,723,724],{"class":457}," 8020:80\n",[726,727,728,729,731,732,734,735,738,739,742],"note",{},"Montez chaque dossier listé sous ",[404,730,492],{}," dans ",[404,733,406],{}," au même chemin à l'intérieur du conteneur (ici ",[404,736,737],{},"\u002Fsrv\u002Fdocker"," et ",[404,740,741],{},"\u002Fmedia","), sans quoi File Browser Quantum ne les trouvera pas.",[744,745,746,754],"tip",{"icon":443},[390,747,748,749,753],{},"✨ ",[750,751,752],"strong",{},"Astuce :"," ajoutez le label watchtower pour automatiser les mises à jour.",[437,755,757],{"className":496,"code":756,"filename":627,"language":498,"meta":443,"style":443},"services:\n  filebrowser-quantum:\n    #...\n    labels:\n\n      - com.centurylinklabs.watchtower.enable=true\n```\n",[404,758,759,765,771,777,784,790,797],{"__ignoreMap":443},[447,760,761,763],{"class":449,"line":450},[447,762,639],{"class":505},[447,764,510],{"class":509},[447,766,767,769],{"class":449,"line":513},[447,768,646],{"class":505},[447,770,510],{"class":509},[447,772,773],{"class":449,"line":525},[447,774,776],{"class":775},"sDvJj","    #...\n",[447,778,779,782],{"class":449,"line":533},[447,780,781],{"class":505},"    labels",[447,783,510],{"class":509},[447,785,786],{"class":449,"line":547},[447,787,789],{"emptyLinePlaceholder":788},true,"\n",[447,791,792,794],{"class":449,"line":555},[447,793,690],{"class":509},[447,795,796],{"class":457}," com.centurylinklabs.watchtower.enable=true\n",[447,798,799],{"class":449,"line":567},[447,800,802],{"class":801},"slcoZ","```\n",[390,804,805,806,809,810,813,814,816],{},"Déployez le conteneur et allez sur ",[404,807,808],{},"http:\u002F\u002Fipdevotreserveur:8020",". Connectez-vous avec les identifiants par défaut ",[404,811,812],{},"admin"," \u002F ",[404,815,812],{},", puis changez immédiatement le mot de passe dans les réglages de votre profil.",[429,818,820],{"id":819},"terminé","Terminé !",[822,823,824,827],"caution",{},[750,825,826],{},"Si ça ne marche pas :"," vérifiez les règles de votre pare-feu.",[416,829,831],{"id":830},"exposer-file-browser-quantum-avec-swag","Exposer File Browser Quantum avec Swag",[833,834,835,836,839,840,843,844,847],"warning",{},"File Browser Quantum ne gère pas l'authentification multifacteur. L'exposer publiquement pourrait mettre vos systèmes en danger. Ne le faites que si vous utilisez une solution d'authentification robuste comme ",[393,837,136],{"href":838},"\u002Fserveex\u002Fsecurity\u002Ftinyauth"," ou ",[393,841,254],{"href":842},"\u002Fserveex\u002Fadvanced\u002Fauthentik\u002F",". Sinon, ne l'exposez pas avec SWAG. Utilisez plutôt un VPN comme ",[393,845,118],{"href":846},"\u002Fserveex\u002Fcore\u002Fwireguard",".",[390,849,850],{},"Vous voudrez peut-être accéder à File Browser Quantum à distance depuis tous vos appareils. Pour cela, nous allons l'exposer à travers Swag.",[726,852,853,854,857,858,861,862,866,867,870,871,874,875,878,879,881,882,847],{"icon":443},"📋 ",[750,855,856],{},"Au préalable :"," nous partons du principe que vous avez déjà créé un sous-domaine du type ",[404,859,860],{},"fbq.mondomaine.fr"," dans votre ",[393,863,865],{"href":864},"\u002Fgeneral\u002Fnetworking\u002Fdns","zone DNS",", pointant vers ",[404,868,869],{},"mondomaine.fr"," avec un ",[404,872,873],{},"CNAME",". À moins d'utiliser Cloudflare Zero Trust, nous partons aussi du principe que vous avez déjà redirigé le port ",[404,876,877],{},"443"," de votre box vers le port ",[404,880,877],{}," de votre serveur avec les ",[393,883,885],{"href":884},"\u002Fgeneral\u002Fnetworking\u002Fnat","règles NAT",[425,887,888,892,895,1013,1024,1027,1031,1037,1051,1054,1379,1387],{"level":427},[429,889,891],{"id":890},"ajouter-le-réseau-de-file-browser-quantum-à-swag","Ajouter le réseau de File Browser Quantum à SWAG",[390,893,894],{},"Dans Dockge, allez sur la stack SWAG et modifiez le fichier compose pour y ajouter le réseau de File Browser Quantum :",[437,896,898],{"className":496,"code":897,"filename":627,"language":498,"meta":443,"style":443},"---\nservices:\n  swag:\n     container_name: # ...\n      # ... \n     networks:                          # Rattache le conteneur au réseau personnalisé \n      # ...           \n      - filebrowser-quantum             # Nom du réseau déclaré dans la stack\n\nnetworks:                               # Définit le réseau personnalisé\n  # ...\n  filebrowser-quantum:                  # Nom du réseau déclaré dans la stack\n    name: filebrowser-quantum_default   # Nom réel du réseau externe\n    external: true                      # Précise qu'il s'agit d'un réseau externe\n",[404,899,900,904,910,917,927,932,942,947,957,961,971,976,985,999],{"__ignoreMap":443},[447,901,902],{"class":449,"line":450},[447,903,634],{"class":453},[447,905,906,908],{"class":449,"line":513},[447,907,639],{"class":505},[447,909,510],{"class":509},[447,911,912,915],{"class":449,"line":525},[447,913,914],{"class":505},"  swag",[447,916,510],{"class":509},[447,918,919,922,924],{"class":449,"line":533},[447,920,921],{"class":505},"     container_name",[447,923,519],{"class":509},[447,925,926],{"class":775}," # ...\n",[447,928,929],{"class":449,"line":547},[447,930,931],{"class":775},"      # ... \n",[447,933,934,937,939],{"class":449,"line":555},[447,935,936],{"class":505},"     networks",[447,938,519],{"class":509},[447,940,941],{"class":775},"                          # Rattache le conteneur au réseau personnalisé \n",[447,943,944],{"class":449,"line":567},[447,945,946],{"class":775},"      # ...           \n",[447,948,949,951,954],{"class":449,"line":579},[447,950,690],{"class":509},[447,952,953],{"class":457}," filebrowser-quantum",[447,955,956],{"class":775},"             # Nom du réseau déclaré dans la stack\n",[447,958,959],{"class":449,"line":586},[447,960,789],{"emptyLinePlaceholder":788},[447,962,963,966,968],{"class":449,"line":703},[447,964,965],{"class":505},"networks",[447,967,519],{"class":509},[447,969,970],{"class":775},"                               # Définit le réseau personnalisé\n",[447,972,973],{"class":449,"line":711},[447,974,975],{"class":775},"  # ...\n",[447,977,978,980,982],{"class":449,"line":719},[447,979,646],{"class":505},[447,981,519],{"class":509},[447,983,984],{"class":775},"                  # Nom du réseau déclaré dans la stack\n",[447,986,988,991,993,996],{"class":449,"line":987},13,[447,989,990],{"class":505},"    name",[447,992,519],{"class":509},[447,994,995],{"class":457}," filebrowser-quantum_default",[447,997,998],{"class":775},"   # Nom réel du réseau externe\n",[447,1000,1002,1005,1007,1010],{"class":449,"line":1001},14,[447,1003,1004],{"class":505},"    external",[447,1006,519],{"class":509},[447,1008,1009],{"class":563}," true",[447,1011,1012],{"class":775},"                      # Précise qu'il s'agit d'un réseau externe\n",[726,1014,1015,1016,1019,1020,847],{},"Nous partons ici du principe que le nom du réseau de File Browser Quantum est ",[404,1017,1018],{},"filebrowser-quantum_default",". Vous pouvez confirmer que la connexion fonctionne en accédant au tableau de bord de SWAG sur ",[393,1021,1022],{"href":1022,"rel":1023},"http:\u002F\u002Fipdevotreserveur:81",[397],[390,1025,1026],{},"Redémarrez la stack en cliquant sur « deploy » et attendez que SWAG soit complètement initialisé.",[429,1028,1030],{"id":1029},"créer-le-fichier-subdomainconf","Créer le fichier subdomain.conf",[390,1032,1033,1034,847],{},"Dans les dossiers de Swag, créez le fichier ",[404,1035,1036],{},"fbq.subdomain.conf",[437,1038,1040],{"className":439,"code":1039,"filename":441,"language":442,"meta":443,"style":443},"sudo nano \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Ffbq.subdomain.conf\n",[404,1041,1042],{"__ignoreMap":443},[447,1043,1044,1046,1048],{"class":449,"line":450},[447,1045,454],{"class":453},[447,1047,483],{"class":457},[447,1049,1050],{"class":457}," \u002Fsrv\u002Fdocker\u002Fswag\u002Fconfig\u002Fnginx\u002Fproxy-confs\u002Ffbq.subdomain.conf\n",[390,1052,1053],{},"Et collez la configuration suivante :",[437,1055,1059],{"className":1056,"code":1057,"filename":1036,"language":1058,"meta":443,"style":443},"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 fbq.*;\n\n    include \u002Fconfig\u002Fnginx\u002Fssl.conf;\n\n    client_max_body_size 0;\n\n    # enable for ldap auth (requires ldap-location.conf in the location block)\n    #include \u002Fconfig\u002Fnginx\u002Fldap-server.conf;\n\n    # enable for Authelia (requires authelia-location.conf in the location block)\n    #include \u002Fconfig\u002Fnginx\u002Fauthelia-server.conf;\n\n    # enable for Authentik (requires authentik-location.conf in the location block)\n    #include \u002Fconfig\u002Fnginx\u002Fauthentik-server.conf;\n\n    location \u002F {\n        # enable the next two lines for http auth\n        #auth_basic \"Restricted\";\n        #auth_basic_user_file \u002Fconfig\u002Fnginx\u002F.htpasswd;\n\n        # enable for ldap auth (requires ldap-server.conf in the server block)\n        #include \u002Fconfig\u002Fnginx\u002Fldap-location.conf;\n\n        # enable for Authelia (requires authelia-server.conf in the server block)\n        #include \u002Fconfig\u002Fnginx\u002Fauthelia-location.conf;\n\n        # enable for Authentik (requires authentik-server.conf in the server block)\n        #include \u002Fconfig\u002Fnginx\u002Fauthentik-location.conf;\n\n        include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n        include \u002Fconfig\u002Fnginx\u002Fresolver.conf;\n        set $upstream_app filebrowser-quantum;\n        set $upstream_port 80;\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n}\n","nginx",[404,1060,1061,1066,1070,1078,1093,1102,1106,1116,1120,1130,1134,1144,1148,1153,1158,1163,1169,1175,1180,1186,1192,1197,1208,1214,1220,1226,1231,1237,1243,1248,1254,1260,1265,1271,1277,1282,1293,1303,1317,1332,1344,1367,1373],{"__ignoreMap":443},[447,1062,1063],{"class":449,"line":450},[447,1064,1065],{"class":775},"## Version 2023\u002F12\u002F19\n",[447,1067,1068],{"class":449,"line":513},[447,1069,789],{"emptyLinePlaceholder":788},[447,1071,1072,1075],{"class":449,"line":525},[447,1073,506],{"class":1074},"sAoO4",[447,1076,1077],{"class":801}," {\n",[447,1079,1080,1084,1087,1090],{"class":449,"line":533},[447,1081,1083],{"class":1082},"sJPTy","    listen ",[447,1085,877],{"class":1086},"swwWl",[447,1088,1089],{"class":801}," ssl",[447,1091,1092],{"class":509},";\n",[447,1094,1095,1097,1100],{"class":449,"line":547},[447,1096,1083],{"class":1082},[447,1098,1099],{"class":801},"[::]:443 ssl",[447,1101,1092],{"class":509},[447,1103,1104],{"class":449,"line":555},[447,1105,789],{"emptyLinePlaceholder":788},[447,1107,1108,1111,1114],{"class":449,"line":567},[447,1109,1110],{"class":1082},"    server_name ",[447,1112,1113],{"class":801},"fbq.*",[447,1115,1092],{"class":509},[447,1117,1118],{"class":449,"line":579},[447,1119,789],{"emptyLinePlaceholder":788},[447,1121,1122,1125,1128],{"class":449,"line":586},[447,1123,1124],{"class":1082},"    include ",[447,1126,1127],{"class":801},"\u002Fconfig\u002Fnginx\u002Fssl.conf",[447,1129,1092],{"class":509},[447,1131,1132],{"class":449,"line":703},[447,1133,789],{"emptyLinePlaceholder":788},[447,1135,1136,1139,1142],{"class":449,"line":711},[447,1137,1138],{"class":1082},"    client_max_body_size ",[447,1140,1141],{"class":1086},"0",[447,1143,1092],{"class":509},[447,1145,1146],{"class":449,"line":719},[447,1147,789],{"emptyLinePlaceholder":788},[447,1149,1150],{"class":449,"line":987},[447,1151,1152],{"class":775},"    # enable for ldap auth (requires ldap-location.conf in the location block)\n",[447,1154,1155],{"class":449,"line":1001},[447,1156,1157],{"class":775},"    #include \u002Fconfig\u002Fnginx\u002Fldap-server.conf;\n",[447,1159,1161],{"class":449,"line":1160},15,[447,1162,789],{"emptyLinePlaceholder":788},[447,1164,1166],{"class":449,"line":1165},16,[447,1167,1168],{"class":775},"    # enable for Authelia (requires authelia-location.conf in the location block)\n",[447,1170,1172],{"class":449,"line":1171},17,[447,1173,1174],{"class":775},"    #include \u002Fconfig\u002Fnginx\u002Fauthelia-server.conf;\n",[447,1176,1178],{"class":449,"line":1177},18,[447,1179,789],{"emptyLinePlaceholder":788},[447,1181,1183],{"class":449,"line":1182},19,[447,1184,1185],{"class":775},"    # enable for Authentik (requires authentik-location.conf in the location block)\n",[447,1187,1189],{"class":449,"line":1188},20,[447,1190,1191],{"class":775},"    #include \u002Fconfig\u002Fnginx\u002Fauthentik-server.conf;\n",[447,1193,1195],{"class":449,"line":1194},21,[447,1196,789],{"emptyLinePlaceholder":788},[447,1198,1200,1203,1205],{"class":449,"line":1199},22,[447,1201,1202],{"class":1074},"    location",[447,1204,813],{"class":453},[447,1206,1207],{"class":801},"{\n",[447,1209,1211],{"class":449,"line":1210},23,[447,1212,1213],{"class":775},"        # enable the next two lines for http auth\n",[447,1215,1217],{"class":449,"line":1216},24,[447,1218,1219],{"class":775},"        #auth_basic \"Restricted\";\n",[447,1221,1223],{"class":449,"line":1222},25,[447,1224,1225],{"class":775},"        #auth_basic_user_file \u002Fconfig\u002Fnginx\u002F.htpasswd;\n",[447,1227,1229],{"class":449,"line":1228},26,[447,1230,789],{"emptyLinePlaceholder":788},[447,1232,1234],{"class":449,"line":1233},27,[447,1235,1236],{"class":775},"        # enable for ldap auth (requires ldap-server.conf in the server block)\n",[447,1238,1240],{"class":449,"line":1239},28,[447,1241,1242],{"class":775},"        #include \u002Fconfig\u002Fnginx\u002Fldap-location.conf;\n",[447,1244,1246],{"class":449,"line":1245},29,[447,1247,789],{"emptyLinePlaceholder":788},[447,1249,1251],{"class":449,"line":1250},30,[447,1252,1253],{"class":775},"        # enable for Authelia (requires authelia-server.conf in the server block)\n",[447,1255,1257],{"class":449,"line":1256},31,[447,1258,1259],{"class":775},"        #include \u002Fconfig\u002Fnginx\u002Fauthelia-location.conf;\n",[447,1261,1263],{"class":449,"line":1262},32,[447,1264,789],{"emptyLinePlaceholder":788},[447,1266,1268],{"class":449,"line":1267},33,[447,1269,1270],{"class":775},"        # enable for Authentik (requires authentik-server.conf in the server block)\n",[447,1272,1274],{"class":449,"line":1273},34,[447,1275,1276],{"class":775},"        #include \u002Fconfig\u002Fnginx\u002Fauthentik-location.conf;\n",[447,1278,1280],{"class":449,"line":1279},35,[447,1281,789],{"emptyLinePlaceholder":788},[447,1283,1285,1288,1291],{"class":449,"line":1284},36,[447,1286,1287],{"class":1082},"        include ",[447,1289,1290],{"class":801},"\u002Fconfig\u002Fnginx\u002Fproxy.conf",[447,1292,1092],{"class":509},[447,1294,1296,1298,1301],{"class":449,"line":1295},37,[447,1297,1287],{"class":1082},[447,1299,1300],{"class":801},"\u002Fconfig\u002Fnginx\u002Fresolver.conf",[447,1302,1092],{"class":509},[447,1304,1306,1309,1312,1315],{"class":449,"line":1305},38,[447,1307,1308],{"class":1082},"        set ",[447,1310,1311],{"class":509},"$",[447,1313,1314],{"class":801},"upstream_app filebrowser-quantum",[447,1316,1092],{"class":509},[447,1318,1320,1322,1324,1327,1330],{"class":449,"line":1319},39,[447,1321,1308],{"class":1082},[447,1323,1311],{"class":509},[447,1325,1326],{"class":801},"upstream_port ",[447,1328,1329],{"class":1086},"80",[447,1331,1092],{"class":509},[447,1333,1335,1337,1339,1342],{"class":449,"line":1334},40,[447,1336,1308],{"class":1082},[447,1338,1311],{"class":509},[447,1340,1341],{"class":801},"upstream_proto http",[447,1343,1092],{"class":509},[447,1345,1347,1350,1352,1355,1357,1360,1362,1365],{"class":449,"line":1346},41,[447,1348,1349],{"class":1082},"        proxy_pass ",[447,1351,1311],{"class":509},[447,1353,1354],{"class":801},"upstream_proto:\u002F\u002F",[447,1356,1311],{"class":509},[447,1358,1359],{"class":801},"upstream_app:",[447,1361,1311],{"class":509},[447,1363,1364],{"class":801},"upstream_port",[447,1366,1092],{"class":509},[447,1368,1370],{"class":449,"line":1369},42,[447,1371,1372],{"class":801},"    }\n",[447,1374,1376],{"class":449,"line":1375},43,[447,1377,1378],{"class":801},"}\n",[390,1380,595,1381,600,1383,604,1385,608],{},[597,1382],{"value":599},[597,1384],{"value":603},[597,1386],{"value":607},[429,1388,820],{"id":1389},"terminé-1",[390,1391,1392],{},"Et voilà ! File Browser Quantum est maintenant exposé.",[416,1394,1396],{"id":1395},"protéger-file-browser-quantum-avec-tinyauth","Protéger File Browser Quantum avec TinyAuth",[390,1398,1399,1400,1402,1403,1405,1406,471],{},"Ajoutez la vérification forward-auth de ",[393,1401,136],{"href":838}," directement dans ",[404,1404,1036],{},", de la même façon que dans ",[393,1407,1409],{"href":1408},"\u002Fserveex\u002Fsecurity\u002Ftinyauth#protecting-an-app-via-reverse-proxy","le tutoriel TinyAuth",[437,1411,1414],{"className":1056,"code":1412,"filename":1036,"highlights":1413,"language":1058,"meta":443,"style":443},"## Version 2023\u002F12\u002F19\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n\n    server_name fbq.*;\n\n    include \u002Fconfig\u002Fnginx\u002Fssl.conf;\n\n    client_max_body_size 0;\n\n    # enable for ldap auth (requires ldap-location.conf in the location block)\n    #include \u002Fconfig\u002Fnginx\u002Fldap-server.conf;\n\n    # enable for Authelia (requires authelia-location.conf in the location block)\n    #include \u002Fconfig\u002Fnginx\u002Fauthelia-server.conf;\n\n    # enable for Authentik (requires authentik-location.conf in the location block)\n    #include \u002Fconfig\u002Fnginx\u002Fauthentik-server.conf;\n\n    location \u002Ftinyauth {\n        internal;\n        proxy_pass http:\u002F\u002Ftinyauth:3000\u002Fapi\u002Fauth\u002Fnginx;\n        proxy_pass_request_body off;\n        proxy_set_header Content-Length \"\";\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_set_header X-Forwarded-Host $http_host;\n        proxy_set_header X-Forwarded-Uri $request_uri;\n    }\n\n    location @tinyauth_login {\n        return 302 https:\u002F\u002Ftinyauth.mondomaine.fr\u002Flogin?redirect_uri=$scheme:\u002F\u002F$http_host$request_uri;\n    }\n\n    location \u002F {\n        auth_request \u002Ftinyauth;\n        error_page 401 = @tinyauth_login;\n\n        # enable the next two lines for http auth\n        #auth_basic \"Restricted\";\n        #auth_basic_user_file \u002Fconfig\u002Fnginx\u002F.htpasswd;\n\n        # enable for ldap auth (requires ldap-server.conf in the server block)\n        #include \u002Fconfig\u002Fnginx\u002Fldap-location.conf;\n\n        # enable for Authelia (requires authelia-server.conf in the server block)\n        #include \u002Fconfig\u002Fnginx\u002Fauthelia-location.conf;\n\n        # enable for Authentik (requires authentik-server.conf in the server block)\n        #include \u002Fconfig\u002Fnginx\u002Fauthentik-location.conf;\n\n        include \u002Fconfig\u002Fnginx\u002Fproxy.conf;\n        include \u002Fconfig\u002Fnginx\u002Fresolver.conf;\n        set $upstream_app filebrowser-quantum;\n        set $upstream_port 80;\n        set $upstream_proto http;\n        proxy_pass $upstream_proto:\u002F\u002F$upstream_app:$upstream_port;\n    }\n}\n",[1199,1210,1216,1222,1228,1233,1239,1245,1250,1256,1262,1267,1273,1295,1305],[404,1415,1416,1420,1424,1430,1440,1448,1452,1460,1464,1472,1476,1484,1488,1492,1496,1500,1504,1508,1512,1516,1520,1524,1535,1543,1553,1565,1579,1594,1609,1624,1629,1634,1644,1671,1676,1680,1688,1699,1713,1717,1721,1725,1729,1733,1738,1743,1748,1753,1758,1763,1768,1773,1778,1787,1796,1807,1820,1831,1850,1855],{"__ignoreMap":443},[447,1417,1418],{"class":449,"line":450},[447,1419,1065],{"class":775},[447,1421,1422],{"class":449,"line":513},[447,1423,789],{"emptyLinePlaceholder":788},[447,1425,1426,1428],{"class":449,"line":525},[447,1427,506],{"class":1074},[447,1429,1077],{"class":801},[447,1431,1432,1434,1436,1438],{"class":449,"line":533},[447,1433,1083],{"class":1082},[447,1435,877],{"class":1086},[447,1437,1089],{"class":801},[447,1439,1092],{"class":509},[447,1441,1442,1444,1446],{"class":449,"line":547},[447,1443,1083],{"class":1082},[447,1445,1099],{"class":801},[447,1447,1092],{"class":509},[447,1449,1450],{"class":449,"line":555},[447,1451,789],{"emptyLinePlaceholder":788},[447,1453,1454,1456,1458],{"class":449,"line":567},[447,1455,1110],{"class":1082},[447,1457,1113],{"class":801},[447,1459,1092],{"class":509},[447,1461,1462],{"class":449,"line":579},[447,1463,789],{"emptyLinePlaceholder":788},[447,1465,1466,1468,1470],{"class":449,"line":586},[447,1467,1124],{"class":1082},[447,1469,1127],{"class":801},[447,1471,1092],{"class":509},[447,1473,1474],{"class":449,"line":703},[447,1475,789],{"emptyLinePlaceholder":788},[447,1477,1478,1480,1482],{"class":449,"line":711},[447,1479,1138],{"class":1082},[447,1481,1141],{"class":1086},[447,1483,1092],{"class":509},[447,1485,1486],{"class":449,"line":719},[447,1487,789],{"emptyLinePlaceholder":788},[447,1489,1490],{"class":449,"line":987},[447,1491,1152],{"class":775},[447,1493,1494],{"class":449,"line":1001},[447,1495,1157],{"class":775},[447,1497,1498],{"class":449,"line":1160},[447,1499,789],{"emptyLinePlaceholder":788},[447,1501,1502],{"class":449,"line":1165},[447,1503,1168],{"class":775},[447,1505,1506],{"class":449,"line":1171},[447,1507,1174],{"class":775},[447,1509,1510],{"class":449,"line":1177},[447,1511,789],{"emptyLinePlaceholder":788},[447,1513,1514],{"class":449,"line":1182},[447,1515,1185],{"class":775},[447,1517,1518],{"class":449,"line":1188},[447,1519,1191],{"class":775},[447,1521,1522],{"class":449,"line":1194},[447,1523,789],{"emptyLinePlaceholder":788},[447,1525,1528,1530,1533],{"class":1526,"line":1199},[449,1527],"highlight",[447,1529,1202],{"class":1074},[447,1531,1532],{"class":453}," \u002Ftinyauth ",[447,1534,1207],{"class":801},[447,1536,1538,1541],{"class":1537,"line":1210},[449,1527],[447,1539,1540],{"class":1082},"        internal",[447,1542,1092],{"class":509},[447,1544,1546,1548,1551],{"class":1545,"line":1216},[449,1527],[447,1547,1349],{"class":1082},[447,1549,1550],{"class":801},"http:\u002F\u002Ftinyauth:3000\u002Fapi\u002Fauth\u002Fnginx",[447,1552,1092],{"class":509},[447,1554,1556,1559,1563],{"class":1555,"line":1222},[449,1527],[447,1557,1558],{"class":1082},"        proxy_pass_request_body ",[447,1560,1562],{"class":1561},"soUAX","off",[447,1564,1092],{"class":509},[447,1566,1568,1571,1574,1577],{"class":1567,"line":1228},[449,1527],[447,1569,1570],{"class":1082},"        proxy_set_header ",[447,1572,1573],{"class":801},"Content-Length ",[447,1575,1576],{"class":457},"\"\"",[447,1578,1092],{"class":509},[447,1580,1582,1584,1587,1589,1592],{"class":1581,"line":1233},[449,1527],[447,1583,1570],{"class":1082},[447,1585,1586],{"class":801},"X-Forwarded-Proto ",[447,1588,1311],{"class":509},[447,1590,1591],{"class":801},"scheme",[447,1593,1092],{"class":509},[447,1595,1597,1599,1602,1604,1607],{"class":1596,"line":1239},[449,1527],[447,1598,1570],{"class":1082},[447,1600,1601],{"class":801},"X-Forwarded-Host ",[447,1603,1311],{"class":509},[447,1605,1606],{"class":801},"http_host",[447,1608,1092],{"class":509},[447,1610,1612,1614,1617,1619,1622],{"class":1611,"line":1245},[449,1527],[447,1613,1570],{"class":1082},[447,1615,1616],{"class":801},"X-Forwarded-Uri ",[447,1618,1311],{"class":509},[447,1620,1621],{"class":801},"request_uri",[447,1623,1092],{"class":509},[447,1625,1627],{"class":1626,"line":1250},[449,1527],[447,1628,1372],{"class":801},[447,1630,1632],{"class":1631,"line":1256},[449,1527],[447,1633,789],{"emptyLinePlaceholder":788},[447,1635,1637,1639,1642],{"class":1636,"line":1262},[449,1527],[447,1638,1202],{"class":1074},[447,1640,1641],{"class":453}," @tinyauth_login ",[447,1643,1207],{"class":801},[447,1645,1647,1651,1654,1657,1659,1662,1664,1666,1668],{"class":1646,"line":1267},[449,1527],[447,1648,1650],{"class":1649},"sJLGa","        return",[447,1652,1653],{"class":1086}," 302",[447,1655,1656],{"class":801}," https:\u002F\u002Ftinyauth.mondomaine.fr\u002Flogin?redirect_uri=",[447,1658,1311],{"class":509},[447,1660,1661],{"class":801},"scheme:\u002F\u002F",[447,1663,1311],{"class":509},[447,1665,1606],{"class":801},[447,1667,1311],{"class":509},[447,1669,1670],{"class":801},"request_uri;\n",[447,1672,1674],{"class":1673,"line":1273},[449,1527],[447,1675,1372],{"class":801},[447,1677,1678],{"class":449,"line":1279},[447,1679,789],{"emptyLinePlaceholder":788},[447,1681,1682,1684,1686],{"class":449,"line":1284},[447,1683,1202],{"class":1074},[447,1685,813],{"class":453},[447,1687,1207],{"class":801},[447,1689,1691,1694,1697],{"class":1690,"line":1295},[449,1527],[447,1692,1693],{"class":1082},"        auth_request ",[447,1695,1696],{"class":801},"\u002Ftinyauth",[447,1698,1092],{"class":509},[447,1700,1702,1705,1708,1711],{"class":1701,"line":1305},[449,1527],[447,1703,1704],{"class":1082},"        error_page ",[447,1706,1707],{"class":1086},"401",[447,1709,1710],{"class":801}," = @tinyauth_login",[447,1712,1092],{"class":509},[447,1714,1715],{"class":449,"line":1319},[447,1716,789],{"emptyLinePlaceholder":788},[447,1718,1719],{"class":449,"line":1334},[447,1720,1213],{"class":775},[447,1722,1723],{"class":449,"line":1346},[447,1724,1219],{"class":775},[447,1726,1727],{"class":449,"line":1369},[447,1728,1225],{"class":775},[447,1730,1731],{"class":449,"line":1375},[447,1732,789],{"emptyLinePlaceholder":788},[447,1734,1736],{"class":449,"line":1735},44,[447,1737,1236],{"class":775},[447,1739,1741],{"class":449,"line":1740},45,[447,1742,1242],{"class":775},[447,1744,1746],{"class":449,"line":1745},46,[447,1747,789],{"emptyLinePlaceholder":788},[447,1749,1751],{"class":449,"line":1750},47,[447,1752,1253],{"class":775},[447,1754,1756],{"class":449,"line":1755},48,[447,1757,1259],{"class":775},[447,1759,1761],{"class":449,"line":1760},49,[447,1762,789],{"emptyLinePlaceholder":788},[447,1764,1766],{"class":449,"line":1765},50,[447,1767,1270],{"class":775},[447,1769,1771],{"class":449,"line":1770},51,[447,1772,1276],{"class":775},[447,1774,1776],{"class":449,"line":1775},52,[447,1777,789],{"emptyLinePlaceholder":788},[447,1779,1781,1783,1785],{"class":449,"line":1780},53,[447,1782,1287],{"class":1082},[447,1784,1290],{"class":801},[447,1786,1092],{"class":509},[447,1788,1790,1792,1794],{"class":449,"line":1789},54,[447,1791,1287],{"class":1082},[447,1793,1300],{"class":801},[447,1795,1092],{"class":509},[447,1797,1799,1801,1803,1805],{"class":449,"line":1798},55,[447,1800,1308],{"class":1082},[447,1802,1311],{"class":509},[447,1804,1314],{"class":801},[447,1806,1092],{"class":509},[447,1808,1810,1812,1814,1816,1818],{"class":449,"line":1809},56,[447,1811,1308],{"class":1082},[447,1813,1311],{"class":509},[447,1815,1326],{"class":801},[447,1817,1329],{"class":1086},[447,1819,1092],{"class":509},[447,1821,1823,1825,1827,1829],{"class":449,"line":1822},57,[447,1824,1308],{"class":1082},[447,1826,1311],{"class":509},[447,1828,1341],{"class":801},[447,1830,1092],{"class":509},[447,1832,1834,1836,1838,1840,1842,1844,1846,1848],{"class":449,"line":1833},58,[447,1835,1349],{"class":1082},[447,1837,1311],{"class":509},[447,1839,1354],{"class":801},[447,1841,1311],{"class":509},[447,1843,1359],{"class":801},[447,1845,1311],{"class":509},[447,1847,1364],{"class":801},[447,1849,1092],{"class":509},[447,1851,1853],{"class":449,"line":1852},59,[447,1854,1372],{"class":801},[447,1856,1858],{"class":449,"line":1857},60,[447,1859,1378],{"class":801},[726,1861,1863,1864,1867,1868,1871,1872,1875],{"to":1862},"\u002Fserveex\u002Fsecurity\u002Ftinyauth#exposing-tinyauth-with-swag","Le bloc ",[404,1865,1866],{},"location \u002Ftinyauth"," s'exécute dans le conteneur de SWAG lui-même, SWAG doit donc être sur le réseau Docker de TinyAuth pour le joindre par son nom (",[404,1869,1870],{},"tinyauth"," ici). Cela devrait déjà être en place depuis ",[750,1873,1874],{},"l'exposition de TinyAuth",". Si vous rencontrez une erreur, revérifiez que le fichier compose de SWAG a toujours ce réseau rattaché.",[744,1877,748,1878,1880,1881,1884,1885,1887,1888,738,1899,1908,1909,847],{"icon":443},[750,1879,752],{}," vous pouvez protéger cette application avec ",[393,1882,254],{"href":1883},"\u002Fserveex\u002Fadvanced\u002Fauthentik"," plutôt que TinyAuth, en ouvrant ",[404,1886,1036],{}," et en décommentant ",[404,1889,1890,1893,1896],{"className":1056,"language":1058,"style":443},[447,1891,1892],{"class":1082},"include ",[447,1894,1895],{"class":801},"\u002Fconfig\u002Fnginx\u002Fauthentik-server.conf",[447,1897,1898],{"class":509},";",[404,1900,1901,1903,1906],{"className":1056,"language":1058,"style":443},[447,1902,1892],{"class":1082},[447,1904,1905],{"class":801},"\u002Fconfig\u002Fnginx\u002Fauthentik-location.conf",[447,1907,1898],{"class":509},". N'oubliez pas de ",[393,1910,1912],{"href":1911},"\u002Fserveex\u002Fadvanced\u002Fauthentik#protecting-an-app-via-reverse-proxy","créer une application et un provider dans Authentik",[1914,1915,1916],"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 .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 .s08Ry, html code.shiki .s08Ry{--shiki-light:#79B8FF;--shiki-default:#FF9CAC;--shiki-dark:#79B8FF}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 .slcoZ, html code.shiki .slcoZ{--shiki-light:#E1E4E8;--shiki-default:#EEFFFF;--shiki-dark:#E1E4E8}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}html pre.shiki code .swwWl, html code.shiki .swwWl{--shiki-light:#79B8FF;--shiki-default:#F78C6C;--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 .sJLGa, html code.shiki .sJLGa{--shiki-light:#F97583;--shiki-light-font-style:inherit;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}",{"title":443,"searchDepth":513,"depth":513,"links":1918},[1919,1924,1929],{"id":418,"depth":513,"text":419,"children":1920},[1921,1922,1923],{"id":431,"depth":525,"text":432},{"id":611,"depth":525,"text":612},{"id":819,"depth":525,"text":820},{"id":830,"depth":513,"text":831,"children":1925},[1926,1927,1928],{"id":890,"depth":525,"text":891},{"id":1029,"depth":525,"text":1030},{"id":1389,"depth":525,"text":820},{"id":1395,"depth":513,"text":1396},[1931],"Djeex","Installer File Browser Quantum, un fork modernisé de File Browser, pour parcourir et gérer les fichiers de votre serveur depuis une interface web rapide.","md",null,{},{"title":208,"description":1932},"y8hScJXQAAP_5_IJo-FvRtT0WhSpi8nztxqO6bqBAFs",[1939,1941],{"title":198,"path":199,"stem":200,"description":1940,"children":-1},"Installer Nextcloud pour auto-héberger vos fichiers, photos et agenda, une alternative respectueuse de la vie privée à Google Drive, OneDrive et iCloud.",{"title":212,"path":213,"stem":214,"description":1942,"children":-1},"Installer Pingvin Share, une plateforme de partage de fichiers auto-hébergée pour envoyer des fichiers en toute sécurité sans passer par WeTransfer ou Google Drive.",1788645837582]