Mirror the French docs onto the English structure
This commit is contained in:
@@ -0,0 +1,286 @@
|
||||
---
|
||||
title: File Browser Quantum
|
||||
description: 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.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
[File Browser Quantum](https://github.com/gtsteffaniak/filebrowser) est un fork communautaire de [File Browser](/recycled/deprecated/file-browser), réécrit pour de meilleures performances (recherche indexée, moins de mémoire consommée) et configuré via un unique fichier `config.yaml` plutôt qu'uniquement par une base de données.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
::file-tree
|
||||
---
|
||||
tree:
|
||||
/:
|
||||
- srv:
|
||||
- docker:
|
||||
- filebrowser-quantum:
|
||||
- compose.yaml
|
||||
- data:
|
||||
- config.yaml
|
||||
- filebrowser.sqlite
|
||||
---
|
||||
::
|
||||
|
||||
::steps{level="3"}
|
||||
### Créer le fichier de configuration
|
||||
|
||||
Créez le dossier de données :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo mkdir -p /srv/docker/filebrowser-quantum/data
|
||||
```
|
||||
|
||||
Créez le fichier `config.yaml` :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /srv/docker/filebrowser-quantum/data/config.yaml
|
||||
```
|
||||
|
||||
Collez ce qui suit, en ajoutant une entrée `sources` par dossier que vous voulez parcourir :
|
||||
|
||||
```yaml [config.yaml]
|
||||
server:
|
||||
cacheDir: /home/filebrowser/data/tmp
|
||||
sources:
|
||||
- path: /srv/docker
|
||||
config:
|
||||
defaultEnabled: true
|
||||
- path: /media
|
||||
config:
|
||||
defaultEnabled: true
|
||||
```
|
||||
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
### Déployer la stack
|
||||
|
||||
Ouvrez Dockge, cliquez sur `compose`, nommez la stack `filebrowser-quantum`, puis copiez-collez ce qui suit :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
filebrowser-quantum:
|
||||
container_name: filebrowser-quantum
|
||||
image: gtstef/filebrowser:beta
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /srv/docker:/srv/docker
|
||||
- /media:/media
|
||||
- /srv/docker/filebrowser-quantum/data:/home/filebrowser/data
|
||||
ports:
|
||||
- 8020:80
|
||||
```
|
||||
|
||||
::note
|
||||
|
||||
Montez chaque dossier listé sous `sources` dans `config.yaml` au même chemin à l'intérieur du conteneur (ici `/srv/docker` et `/media`), sans quoi File Browser Quantum ne les trouvera pas.
|
||||
::
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ ajoutez le label watchtower pour automatiser les mises à jour.
|
||||
|
||||
```yaml [compose.yaml]
|
||||
services:
|
||||
filebrowser-quantum:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
::
|
||||
|
||||
Déployez le conteneur et allez sur `http://ipdevotreserveur:8020`. Connectez-vous avec les identifiants par défaut `admin` / `admin`, puis changez immédiatement le mot de passe dans les réglages de votre profil.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
::caution
|
||||
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
## Exposer File Browser Quantum avec Swag
|
||||
|
||||
::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 [TinyAuth](/serveex/security/tinyauth) ou [Authentik](/serveex/advanced/authentik/). Sinon, ne l'exposez pas avec SWAG. Utilisez plutôt un VPN comme [Wireguard](/serveex/core/wireguard).
|
||||
::
|
||||
|
||||
Vous voudrez peut-être accéder à File Browser Quantum à distance depuis tous vos appareils. Pour cela, nous allons l'exposer à travers Swag.
|
||||
|
||||
::note{icon=""}
|
||||
|
||||
📋 __Au préalable :__ nous partons du principe que vous avez déjà créé un sous-domaine du type `fbq.mondomaine.fr` dans votre [zone DNS](/general/networking/dns), pointant vers `mondomaine.fr` avec un `CNAME`. À moins d'utiliser Cloudflare Zero Trust, nous partons aussi du principe que vous avez déjà redirigé le port `443` de votre box vers le port `443` de votre serveur avec les [règles NAT](/general/networking/nat).
|
||||
::
|
||||
|
||||
::steps{level="3"}
|
||||
### Ajouter le réseau de File Browser Quantum à SWAG
|
||||
|
||||
Dans Dockge, allez sur la stack SWAG et modifiez le fichier compose pour y ajouter le réseau de File Browser Quantum :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
swag:
|
||||
container_name: # ...
|
||||
# ...
|
||||
networks: # Rattache le conteneur au réseau personnalisé
|
||||
# ...
|
||||
- filebrowser-quantum # Nom du réseau déclaré dans la stack
|
||||
|
||||
networks: # Définit le réseau personnalisé
|
||||
# ...
|
||||
filebrowser-quantum: # Nom du réseau déclaré dans la stack
|
||||
name: filebrowser-quantum_default # Nom réel du réseau externe
|
||||
external: true # Précise qu'il s'agit d'un réseau externe
|
||||
```
|
||||
|
||||
::note
|
||||
|
||||
Nous partons ici du principe que le nom du réseau de File Browser Quantum est `filebrowser-quantum_default`. Vous pouvez confirmer que la connexion fonctionne en accédant au tableau de bord de SWAG sur http://ipdevotreserveur:81.
|
||||
::
|
||||
|
||||
Redémarrez la stack en cliquant sur « deploy » et attendez que SWAG soit complètement initialisé.
|
||||
|
||||
### Créer le fichier subdomain.conf
|
||||
|
||||
Dans les dossiers de Swag, créez le fichier `fbq.subdomain.conf`.
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /srv/docker/swag/config/nginx/proxy-confs/fbq.subdomain.conf
|
||||
```
|
||||
|
||||
Et collez la configuration suivante :
|
||||
|
||||
```nginx [fbq.subdomain.conf]
|
||||
## Version 2023/12/19
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
|
||||
server_name fbq.*;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size 0;
|
||||
|
||||
# enable for ldap auth (requires ldap-location.conf in the location block)
|
||||
#include /config/nginx/ldap-server.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-location.conf in the location block)
|
||||
#include /config/nginx/authelia-server.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-location.conf in the location block)
|
||||
#include /config/nginx/authentik-server.conf;
|
||||
|
||||
location / {
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||
#include /config/nginx/ldap-location.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||
#include /config/nginx/authelia-location.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||
#include /config/nginx/authentik-location.conf;
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app filebrowser-quantum;
|
||||
set $upstream_port 80;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
Et voilà ! File Browser Quantum est maintenant exposé.
|
||||
|
||||
## Protéger File Browser Quantum avec TinyAuth
|
||||
Ajoutez la vérification forward-auth de [TinyAuth](/serveex/security/tinyauth) directement dans `fbq.subdomain.conf`, de la même façon que dans [le tutoriel TinyAuth](/serveex/security/tinyauth#protecting-an-app-via-reverse-proxy) :
|
||||
|
||||
```nginx [fbq.subdomain.conf]{22-34,37-38}
|
||||
## Version 2023/12/19
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
|
||||
server_name fbq.*;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size 0;
|
||||
|
||||
# enable for ldap auth (requires ldap-location.conf in the location block)
|
||||
#include /config/nginx/ldap-server.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-location.conf in the location block)
|
||||
#include /config/nginx/authelia-server.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-location.conf in the location block)
|
||||
#include /config/nginx/authentik-server.conf;
|
||||
|
||||
location /tinyauth {
|
||||
internal;
|
||||
proxy_pass http://tinyauth:3000/api/auth/nginx;
|
||||
proxy_pass_request_body off;
|
||||
proxy_set_header Content-Length "";
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-Uri $request_uri;
|
||||
}
|
||||
|
||||
location @tinyauth_login {
|
||||
return 302 https://tinyauth.mondomaine.fr/login?redirect_uri=$scheme://$http_host$request_uri;
|
||||
}
|
||||
|
||||
location / {
|
||||
auth_request /tinyauth;
|
||||
error_page 401 = @tinyauth_login;
|
||||
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||
#include /config/nginx/ldap-location.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||
#include /config/nginx/authelia-location.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||
#include /config/nginx/authentik-location.conf;
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app filebrowser-quantum;
|
||||
set $upstream_port 80;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
::note{to="/serveex/security/tinyauth#exposing-tinyauth-with-swag"}
|
||||
|
||||
Le bloc `location /tinyauth` 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 (`tinyauth` ici). Cela devrait déjà être en place depuis **l'exposition de TinyAuth**. Si vous rencontrez une erreur, revérifiez que le fichier compose de SWAG a toujours ce réseau rattaché.
|
||||
::
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ vous pouvez protéger cette application avec [Authentik](/serveex/advanced/authentik) plutôt que TinyAuth, en ouvrant `fbq.subdomain.conf` et en décommentant `include /config/nginx/authentik-server.conf;`{lang=nginx} et `include /config/nginx/authentik-location.conf;`{lang=nginx}. N'oubliez pas de [créer une application et un provider dans Authentik](/serveex/advanced/authentik#protecting-an-app-via-reverse-proxy).
|
||||
::
|
||||
@@ -1,159 +0,0 @@
|
||||
---
|
||||
title: File Browser
|
||||
description: Installer File Browser pour parcourir et gérer les fichiers de votre serveur depuis une interface web, exposée de manière sécurisée avec SWAG.
|
||||
---
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
# File Browser
|
||||
|
||||
::note
|
||||
🎯 __Objectifs :__
|
||||
|
||||
- Installer File Browser
|
||||
- Exposer File Browser avec Swag
|
||||
::
|
||||
|
||||
[File Browser](https://github.com/filebrowser/filebrowser) est une interface permettant d'accéder aux fichiers de votre serveur et de les éditer.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
Ouvrez Dockge, cliquez sur `compose`, appelez la stack `filebrowser` puis copiez collez ceci :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
filebrowser:
|
||||
container_name: filebrowser
|
||||
volumes:
|
||||
- /docker/filebrowser/config:/config/
|
||||
- /chemin/vers/vos/dossiers:/vosdossiers #ajoutez ici les dossiers que vous voulez voir apparaitre dans filebrowser
|
||||
ports:
|
||||
- 8010:80
|
||||
image: filebrowser/filebrowser:s6
|
||||
```
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ ajoutez le label de watchtower dans chaque conteneur afin d'automatiser les mises à jour
|
||||
|
||||
```yaml [compose.yaml]
|
||||
services:
|
||||
filebrowser:
|
||||
#...
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
::
|
||||
|
||||
Déployez le conteneur et rendez-vous sur `http://ipduserveur:8010`. Et voilà, votre instance File Browser en webui est disponible !
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
## Exposer File Browser avec Swag
|
||||
|
||||
::warning
|
||||
|
||||
File Browser n'utilise pas d'authentification multifacteur. Exposer File Browser sur internet pourrait compromettre les machines auxquelles il est relié. Ne le faite que si vous utilisez un systeme d'authentification multifacteur comme [Authentik](/fr/serveex/security/authentik). Sinon, n'exposez pas avec SWAG et utilisez plutôt un VPN comme [Wireguard](/fr/serveex/security/wireguard).
|
||||
::
|
||||
|
||||
Vous aurez peut-etre envie d'y accéder à distance et sur tout vos appareils. Pour cela, nous allons exposer IT Tools via Swag.
|
||||
|
||||
::note
|
||||
|
||||
__Au préalable :__ nous partons du principe que vous avez créé dans votre [zone DNS](/fr/general/networking/dns) un sous domaine du type `files.mondomaine.fr` avec pour `CNAME` `mondomaine.fr` et, [à moins que vous utilisiez Cloudflare Zero Trust](/fr/serveex/security/cloudflare), que que vous avez déjà redirigé le port `443` de votre box vers le `443` de votre serveur dans [les règles NAT](/fr/general/networking/nat).
|
||||
::
|
||||
|
||||
Dans Dockge, rendez-vous dans la stack de SWAG et éditez le compose en ajoutant le réseau de filebrowser :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
services:
|
||||
swag:
|
||||
container_name: # ...
|
||||
# ...
|
||||
networks: # Relie le conteneur au réseau custom
|
||||
# ...
|
||||
- filebrowser # Nom du réseau déclaré dans la stack
|
||||
|
||||
networks: # Définit le réseau custom
|
||||
# ...
|
||||
filebrowser: # Nom du réseau déclaré dans la stack
|
||||
name: filebrowser_default # Nom véritable du réseau externe
|
||||
external: true # Précise que c'est un réseau à rechercher en externe
|
||||
```
|
||||
|
||||
::note
|
||||
|
||||
Ici nous partons du principe que le nom du réseau de filebrowser est `filebrowser_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant http://ipduserveur:81.
|
||||
::
|
||||
|
||||
Relancez la stack en cliquant sur "déployer" et patientez le temps que SWAG soit complètement opérationnel.
|
||||
|
||||
Dans les dossiers de Swag, créez le fichier `files.subdomain.conf`.
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /docker/swag/config/nginx/proxy-confs/files.subdomain.conf
|
||||
```
|
||||
Collez la configuration ci-dessous :
|
||||
|
||||
```nginx [files.subdomain.conf]
|
||||
## Version 2023/12/19
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
|
||||
server_name files.*;
|
||||
|
||||
include /config/nginx/ssl.conf;
|
||||
|
||||
client_max_body_size 0;
|
||||
|
||||
#if ($lan-ip = yes) { set $geo-whitelist yes; }
|
||||
#if ($geo-whitelist = no) { return 404; }
|
||||
if ($geo-blacklist = no) { return 404; }
|
||||
|
||||
# enable for ldap auth (requires ldap-location.conf in the location block)
|
||||
#include /config/nginx/ldap-server.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-location.conf in the location block)
|
||||
#include /config/nginx/authelia-server.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-location.conf in the location block)
|
||||
#include /config/nginx/authentik-server.conf;
|
||||
|
||||
location / {
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||
#include /config/nginx/ldap-location.conf;
|
||||
|
||||
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||
#include /config/nginx/authelia-location.conf;
|
||||
|
||||
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||
#include /config/nginx/authentik-location.conf;
|
||||
|
||||
include /config/nginx/proxy.conf;
|
||||
include /config/nginx/resolver.conf;
|
||||
set $upstream_app filebrowser;
|
||||
set $upstream_port 80;
|
||||
set $upstream_proto http;
|
||||
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
||||
|
||||
Et voilà, vous avez exposé File Browser !
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ vous pouvez protéger cette app avec Authentik en ouvrant `files.subodmain.conf` et en retirant les `#` devant `include /config/nginx/authentik-server.conf;`{lang=nginx} et `include /config/nginx/authentik-location.conf;`{lang=nginx}. N'oubliez pas de [créer une application et un fournisseur dans Authentik](/fr/serveex/security/authentik#protéger-une-app-par-reverse-proxy).
|
||||
::
|
||||
@@ -1,24 +1,21 @@
|
||||
---
|
||||
title: Pingvin
|
||||
description: Installer Pingvin Share, une plateforme d'envoi de fichiers auto-hébergée pour partager des fichiers de façon sécurisée sans WeTransfer ni Google Drive.
|
||||
description: 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.
|
||||
---
|
||||
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
# Pingvin
|
||||
|
||||
::note
|
||||
🎯 __Objectifs :__
|
||||
[Pingvin](https://github.com/stonith404/pingvin-share) est un outil pour partager rapidement des fichiers, à la manière de WeTransfer. Ses nombreuses options de partage (mot de passe, durée d'expiration, lien personnalisé, etc.) en font l'outil idéal pour partager des fichiers rapidement. Pingvin peut aussi créer des _demandes d'envoi_, c'est-à-dire un lien partageable à envoyer à quelqu'un pour qu'il dépose ses fichiers et que vous les récupériez.
|
||||
|
||||
- Installer Pingvin
|
||||
- Exposer Pingvin
|
||||
::
|
||||
|
||||
[Pingvin](https://github.com/stonith404/pingvin-share) est un outil permettant de partager rapidement des fichiers, à la manière de WeTransfer. Ses nombreuses options de partage (mot de passe, durée d'expiration, personnalisation du lien...) en font l'outil idéal pour partager rapidement des fichiers. Pingvin permet également de créer des _demandes de dépot_, c'est à dire un lien partageable à envoyer à quelqu'un de votre choix pour qu'il puisse téléverser ses fichiers afin que vous puissiez les récupérer.
|
||||
|
||||

|
||||

|
||||
|
||||
## Installation
|
||||
Ouvrez Dockge, cliquez sur `compose`, appelez la stack `pingvin` puis copiez collez ceci :
|
||||
|
||||
::steps{level="3"}
|
||||
### Déployer la stack
|
||||
|
||||
Ouvrez Dockge, cliquez sur `compose`, nommez la stack `pingvin`, puis copiez-collez ceci :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
@@ -30,9 +27,9 @@ services:
|
||||
ports:
|
||||
- 3600:3000
|
||||
volumes:
|
||||
- /docker/pingvin/data:/opt/app/backend/data
|
||||
- /docker/pingvin/data/img:/opt/app/frontend/public/img
|
||||
- /docker/pingvin/uploads:/opt/app/backend/uploads # chemin du dossier dans lequel vous souhaitez stocker les fichiers uploadés dans pingvin. A changer selon vos préférences.
|
||||
- /srv/docker/pingvin/data:/opt/app/backend/data
|
||||
- /srv/docker/pingvin/data/img:/opt/app/frontend/public/img
|
||||
- /srv/docker/pingvin/uploads:/opt/app/backend/uploads # chemin du dossier où stocker les fichiers envoyés à pingvin. À adapter à votre convenance.
|
||||
depends_on:
|
||||
clamav:
|
||||
condition: service_healthy
|
||||
@@ -45,11 +42,11 @@ services:
|
||||
```
|
||||
::note
|
||||
|
||||
Ici nous partons du principe que le nom du réseau de Swag est `swag_default`.
|
||||
À partir d'ici, nous partons du principe que le nom du réseau de Swag est `swag_default`.
|
||||
::
|
||||
|
||||
::tip{icon=""}
|
||||
✨ __Astuce :__ ajoutez le label de watchtower dans chaque conteneur afin d'automatiser les mises à jour
|
||||
✨ __Astuce :__ ajoutez le label watchtower à chaque conteneur pour automatiser les mises à jour.
|
||||
|
||||
```yaml [compose.yaml]
|
||||
services:
|
||||
@@ -58,7 +55,7 @@ Ici nous partons du principe que le nom du réseau de Swag est `swag_default`.
|
||||
labels:
|
||||
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
|
||||
|
||||
clamav:
|
||||
#...
|
||||
labels:
|
||||
@@ -67,23 +64,28 @@ Ici nous partons du principe que le nom du réseau de Swag est `swag_default`.
|
||||
```
|
||||
::
|
||||
|
||||
Déployez le conteneur et rendez-vous sur `http://ipduserveur:3600`. Et voilà, votre instance File Browser en webui est disponible !
|
||||
Déployez le conteneur et allez sur `http://ipdevotreserveur:3600`. Et voilà ! Votre instance web Pingvin est en route !
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
::caution
|
||||
|
||||
__En cas d'échec :__ vérifiez les règles de votre pare-feu.
|
||||
__Si ça ne marche pas :__ vérifiez les règles de votre pare-feu.
|
||||
::
|
||||
|
||||
## Exposer Immich avec Swag
|
||||
Tout l'intérêt d'une telle solution, c'est de pouvoir y accéder à distance et sur tout vos appareils. Pour cela, nous allons exposer Pingvin via Swag.
|
||||
## Exposer Pingvin avec Swag
|
||||
Tout l'intérêt d'une solution comme celle-ci est de pouvoir y accéder à distance, depuis tous vos appareils. Pour cela, nous allons exposer Pingvin à travers Swag.
|
||||
|
||||
::note
|
||||
📋 __Au préalable :__
|
||||
<br/><br/>
|
||||
Nous partons du principe que vous avez le sous-domaine `pingvin.mondomaine.fr` avec un `CNAME` qui pointe vers `mondomaine.fr` dans votre [zone DNS](/fr/general/networking/dns). Et que bien sûr, [à moins que vous utilisiez Cloudflare Zero Trust](/fr/serveex/security/cloudflare), le port `443` de votre box pointe bien sur le port `443` de votre serveur via [les règles NAT](/fr/general/networking/nat).
|
||||
::note{icon=""}
|
||||
📋 __Au préalable :__ <br/><br/>
|
||||
Nous partons du principe que vous avez le sous-domaine `pingvin.mondomaine.fr` avec un `CNAME` pointant vers `mondomaine.fr` dans votre [zone DNS](/general/networking/dns). Et bien sûr, [à moins d'utiliser Cloudflare Zero Trust](/serveex/security/cloudflare), que le port `443` de votre box est redirigé vers le port `443` de votre serveur via les [règles NAT](/general/networking/nat).
|
||||
::
|
||||
|
||||
Dans Dockge, rendez-vous dans la stack de SWAG et éditez le compose en ajoutant le réseau de pingvin :
|
||||
::steps{level="3"}
|
||||
### Ajouter le réseau de Pingvin à SWAG
|
||||
|
||||
Dans Dockge, allez sur la stack SWAG et modifiez le fichier compose pour y ajouter le réseau de pingvin :
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
@@ -91,33 +93,35 @@ services:
|
||||
swag:
|
||||
container_name: # ...
|
||||
# ...
|
||||
networks: # Relie le conteneur au réseau custom
|
||||
networks: # Rattache le conteneur au réseau personnalisé
|
||||
# ...
|
||||
- pingvin # Nom du réseau déclaré dans la stack
|
||||
|
||||
networks: # Définit le réseau custom
|
||||
|
||||
networks: # Définit le réseau personnalisé
|
||||
# ...
|
||||
pingvin: # Nom du réseau déclaré dans la stack
|
||||
name: pingvin_default # Nom véritable du réseau externe
|
||||
external: true # Précise que c'est un réseau à rechercher en externe
|
||||
name: pingvin_default # Nom réel du réseau externe
|
||||
external: true # Précise qu'il s'agit d'un réseau à chercher à l'extérieur
|
||||
```
|
||||
|
||||
::note
|
||||
|
||||
Ici nous partons du principe que le nom du réseau de pingvin est `pingvin_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant http://ipduserveur:81.
|
||||
À partir d'ici, nous partons du principe que le nom du réseau de pingvin est `pingvin_default`. Vous pouvez vérifier que la connexion fonctionne en visitant le tableau de bord de SWAG sur http://ipdevotreserveur:81.
|
||||
::
|
||||
|
||||
Relancez la stack en cliquant sur "déployer" et patientez le temps que SWAG soit complètement opérationnel.
|
||||
Redéployez la stack en cliquant sur « deploy » et attendez que SWAG soit complètement démarré.
|
||||
|
||||
### Créer le fichier subdomain.conf
|
||||
|
||||
Dans les dossiers de Swag, créez le fichier `pingvin.subdomain.conf`.
|
||||
|
||||
::tip{icon=""}
|
||||
::tip{icon="" to="/serveex/files/file-browser-quantum"}
|
||||
|
||||
✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal.
|
||||
✨ __Astuce :__ vous pouvez utiliser **File Browser Quantum** pour naviguer dans vos fichiers et éditer vos documents plutôt que des commandes dans le terminal.
|
||||
::
|
||||
|
||||
```bash [Terminal]
|
||||
sudo nano /docker/swag/config/nginx/proxy-confs/pingvin.subdomain.conf
|
||||
sudo nano /srv/docker/swag/config/nginx/proxy-confs/pingvin.subdomain.conf
|
||||
```
|
||||
Collez la configuration ci-dessous :
|
||||
|
||||
@@ -173,34 +177,79 @@ server {
|
||||
|
||||
```
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
||||
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
Et voilà, vous avez exposé Pingvin !
|
||||
|
||||
## Sécuriser Pingvin avec Authentik
|
||||
## Protéger Pingvin avec Pocket ID
|
||||
Pingvin gère OIDC nativement, vous pouvez donc exiger une connexion Pocket ID avant de laisser qui que ce soit partager ou recevoir des fichiers, plutôt qu'avec (ou en plus de) les comptes propres à l'application.
|
||||
|
||||
Vous pouvez protéger cette app avec Authentik de façon native en suivant les instructions ci-dessous.
|
||||
::steps{level="3"}
|
||||
### Enregistrer Pingvin comme client OIDC
|
||||
|
||||
1. Dans votre espace admin authentik, créez un fournisseur OAuth2/OpenID.
|
||||
[Enregistrez un client OIDC dans Pocket ID](/serveex/security/pocket-id#registering-an-oidc-client) nommé `pingvin`, avec cette URL de callback :
|
||||
|
||||
2. Remplissez chaque section comme suit en remplaçant `mondomaine.fr` par votre domaine. Copiez quelque part le contenu des champs `ID du client` et `Secret du client`.
|
||||
```text
|
||||
https://pingvin.mondomaine.fr/api/oauth/callback/oidc
|
||||
```
|
||||
|
||||

|
||||

|
||||

|
||||
### Activer le Social Login dans Pingvin
|
||||
|
||||
3. Enregistrez et créez une application `pingvin` comme suit.
|
||||
Dans Pingvin, allez dans _Administration > Configuration > Social Login_ et renseignez :
|
||||
|
||||

|
||||
| Champ | Valeur |
|
||||
|-------|-------|
|
||||
| OpenID Connect | Activé |
|
||||
| Discovery URI | L'URL de découverte OIDC de Pocket ID |
|
||||
| Scope | `openid email profile groups` |
|
||||
|
||||
4. Enregistrez et aller dans la liste de vos avant-postes. Ajoutez le fournisseur pingvin` à votre avant-poste.
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
5. Quittez authentik, et allez dans l'interface d'administration de Pingvin.
|
||||
Et voilà ! Désormais, quand vous vous connectez à Pingvin, un bouton « Open ID » est disponible sous le formulaire de connexion.
|
||||
|
||||
6. Dans la section _« Identifiant social »_ renseignez les champs suivant :
|
||||
- `URI de découverte OpenID` avec `https://pingvin.mondomaine.fr/application/o/pingvin/.well-known/openid-configuration` (n'oubliez pas de remplacer `mondomaine.fr` par votre domaine)
|
||||
- `Revendication du nom d’utilisateur OpenID` avec `preferred_username`
|
||||
- `ID du client OpenID` avec l'ID que vous avez copié en étape 2.
|
||||
- `Secret du client OpenID` avec le token que vous avez copié en étape 2.
|
||||
::::tip{icon=""}
|
||||
✨ Vous pouvez utiliser [Authentik](/serveex/advanced/authentik) plutôt que Pocket ID :
|
||||
|
||||
Et voilà, désormais lorsque vous vous connectez à Pingvin, un bouton "Open ID" sera disponible en dessous de la mire de connexion.
|
||||
:::collapsible{name="les étapes de configuration Authentik"}
|
||||
::steps{level="4"}
|
||||
#### Créer un provider OAuth2/OpenID
|
||||
|
||||
Dans l'espace d'administration d'Authentik, créez un provider OAuth2/OpenID.
|
||||
|
||||
#### Configurer le provider
|
||||
|
||||
Remplissez chaque section comme suit, en remplaçant `mondomaine.fr` par votre propre domaine. Copiez les champs `Client ID` et `Client Secret` en lieu sûr.
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
#### Créer l'application
|
||||
|
||||
Enregistrez et créez une application `pingvin` comme suit.
|
||||
|
||||

|
||||
|
||||
#### Ajouter le provider à votre outpost
|
||||
|
||||
Enregistrez et allez sur votre liste d'outposts. Ajoutez le provider pingvin à votre outpost.
|
||||
|
||||
#### Configurer les réglages OAuth de Pingvin
|
||||
|
||||
Quittez Authentik et allez dans l'interface d'administration de Pingvin. Dans la section _« OAuth »_, renseignez les champs suivants :
|
||||
|
||||
- `OpenID discovery URI` avec `https://pingvin.mondomaine.fr/application/o/pingvin/.well-known/openid-configuration` (n'oubliez pas de remplacer `mondomaine.fr` par votre propre domaine)
|
||||
- `OpenID username claim` avec `preferred_username`
|
||||
- `OpenID client ID` avec l'ID copié à l'étape 2.
|
||||
- `OpenID client secret` avec le token copié à l'étape 2.
|
||||
|
||||
#### Terminé !
|
||||
::
|
||||
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
Reference in New Issue
Block a user