Mirror the French docs onto the English structure
This commit is contained in:
@@ -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