Mirror the French docs onto the English structure

This commit is contained in:
Djeex
2026-09-05 16:55:39 +02:00
parent 86f04ed794
commit 1894ac7ead
74 changed files with 6322 additions and 1588 deletions
+92 -48
View File
@@ -3,61 +3,69 @@ title: Immich
description: Installer Immich, une alternative auto-hébergée à Google Photos et iCloud avec reconnaissance faciale, géolocalisation et synchronisation multi-appareils.
---
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
# Immich
::note
🎯 __Objectifs :__ installer [Immich](https://immich.app/docs/overview/introduction) pour gérer vos photos sur tout vos appareils.
::
[Immich](https://immich.app/docs/overview/introduction) est une solution de gestion de photos et de vidéos que vous pouvez installer directement sur votre serveur. Cette solution remplace les clouds type Google Photo ou iCloud. Elle dispose de nombreuse fonctionnalités comme la reconnaissance de visage ou la géolocalisation.
[Immich](https://immich.app/docs/overview/introduction) est une solution auto-hébergée de gestion de photos et de vidéos qui remplace les services cloud comme Google Photos ou iCloud. Elle propose des fonctions puissantes comme la reconnaissance faciale et la géolocalisation.
![Picture](/img/serveex/immich.png)
## Installation
Structure des dossiers
```text [Arborescence]
root
└── docker
└── immich
├── library
├── compose.yaml
└── .env
```
::file-tree
---
tree:
/:
- srv:
- docker:
- immich:
- library/
- compose.yaml
- .env
---
::
Ouvrez Dockge, cliquez sur `compose`, appelez la stack `immich` puis copiez collez le contenu du dernier `docker-compose.yml` [publié ici](https://github.com/immich-app/immich/blob/main/docker/docker-compose.yml).
::steps{level="3"}
### Déployer la stack
Ouvrez Dockge, cliquez sur `compose`, nommez la stack `immich`, puis copiez-collez le dernier `docker-compose.yml` [publié ici](https://github.com/immich-app/immich/blob/main/docker/docker-compose.yml).
::warning
__Attention__ : n'ajoutez pas le label de Watchtower à la stack d'Immich. Immich étant une solution en perpetuelle évolution, des mises à jour automatiques risqueraient de casser votre installation.
__Attention__ : n'ajoutez pas le label Watchtower à la stack Immich. Immich évolue rapidement, et les mises à jour automatiques peuvent casser votre installation.
::
Configurer le `.env` en copiant collant le contenu de la dernière version [publiée ici](https://github.com/immich-app/immich/blob/main/docker/example.env) et suivez les commentaires indiqués dans le fichier.
### Renseigner vos variables d'environnement
::note
Configurez le fichier `.env` en copiant la dernière version [depuis ici](https://github.com/immich-app/immich/blob/main/docker/example.env) et suivez les commentaires du fichier.
Si vous avez un NAS ou un disque réseau partagé via [samba](/fr/general/networking/samba) pour stocker vos données, remplacez la valeur de `UPLOAD_LOCATION`{lang=properties} par le chemin d'accès de votre dossier partagé.
::note{to="/general/networking/samba/"}
Si vous utilisez un NAS ou un disque partagé sur le réseau via **Samba** pour stocker vos données, remplacez la valeur de `UPLOAD_LOCATION`{lang=properties} par le chemin de votre dossier partagé.
::
::tip{icon=""}
✨ __Astuce :__ si votre CPU/iGPU/GPU le supporte, Immich permet d'utiliser l'accélération matérielle pour lire les vidéos ou pour la reconnaissance d'images. Ces fonctionnalités peuvent tripler les performances d'Immich. Plus d'infos sur le [Transcoding](https://immich.app/docs/features/hardware-transcoding/) et sur le [Machine learning](https://immich.app/docs/features/ml-hardware-acceleration).
__Astuce :__ si votre CPU/iGPU/GPU le permet, Immich peut utiliser l'accélération matérielle pour la lecture vidéo et la reconnaissance d'images. Cela peut tripler les performances. En savoir plus sur le [transcodage](https://immich.app/docs/features/hardware-transcoding/) et le [machine learning](https://immich.app/docs/features/ml-hardware-acceleration).
::
Déployez le conteneur.
Déployez le conteneur. Vous pouvez vous connecter et suivre les instructions de configuration sur `http://ipdevotreserveur:2283`.
Et voilà, vous pouvez vous connecter et suivre les instructions sur `http://ipduserveur:2283`
### Terminé !
::
## 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 Immich via Swag.
## Exposer Immich avec SWAG
Le principal intérêt de cette installation est de pouvoir accéder à Immich à distance sur tous vos appareils. Nous allons exposer Immich avec SWAG.
::note
::note{icon=""}
📋 __Au préalable :__
<br/><br/>
Nous partons du principe que vous avez le sous-domaine `immich.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).
Nous partons du principe que vous avez un sous-domaine `immich.mondomaine.fr` avec un `CNAME` pointant vers `mondomaine.fr` dans votre [zone DNS](/general/networking/dns). Par ailleurs, à moins d'utiliser [Cloudflare Zero Trust](/serveex/security/cloudflare), assurez-vous 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 immich :
::steps{level="3"}
### Ajouter le réseau d'Immich à SWAG
Dans Dockge, ouvrez la stack SWAG et modifiez le fichier compose pour y ajouter le réseau d'Immich :
```yaml [compose.yaml]
---
@@ -65,35 +73,37 @@ services:
swag:
container_name: # ...
# ...
networks: # Relie le conteneur au réseau custom
networks: # Rattache le conteneur au réseau personnalisé
# ...
- immich # Nom du réseau déclaré dans la stack
networks: # Définit le réseau custom
- immich # Nom du réseau défini dans la stack
networks: # Définit le réseau personnalisé
# ...
immich: # Nom du réseau déclaré dans la stack
name: immich_default # Nom véritable du réseau externe
external: true # Précise que c'est un réseau à rechercher en externe
immich: # Nom du réseau défini dans la stack
name: immich_default # Nom réel du réseau externe
external: true # Indique qu'il s'agit d'un réseau externe
```
::note
Ici nous partons du principe que le nom du réseau de immich est `immich_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant http://ipduserveur:81.
Nous partons du principe que le réseau d'Immich s'appelle `immich_default`. Vous pouvez vérifier la connectivité 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émarrez la stack en cliquant sur « deploy » et attendez que SWAG soit complètement initialisé.
Dans les dossiers de Swag, créez le fichier `immich.subdomain.conf`.
### Créer le fichier subdomain.conf
::tip{icon=""}
Dans les dossiers de SWAG, créez un fichier nommé `immich.subdomain.conf`.
✨ __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.
::tip{icon="" to="/serveex/files/file-browser-quantum"}
✨ __Astuce :__ vous pouvez utiliser **File Browser Quantum** pour naviguer et modifier vos fichiers plutôt que des commandes dans le terminal.
::
```bash [Terminal]
sudo nano /docker/swag/config/nginx/proxy-confs/immich.subdomain.conf
sudo nano /srv/docker/swag/config/nginx/proxy-confs/immich.subdomain.conf
```
Collez la configuration ci-dessous :
Puis collez la configuration suivante :
```nginx [immich.subdomain.conf]
## Version 2023/12/19
@@ -141,7 +151,6 @@ server {
set $upstream_port 3001;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
location ~ (/immich)?/api {
@@ -151,15 +160,50 @@ server {
set $upstream_port 3001;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
```
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Ente"}, 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.
Et voilà, vous avez exposé Immich ! N'oubliez pas d'installer les applications [iOS](https://apps.apple.com/us/app/immich/id1613945652)/[Android](https://play.google.com/store/apps/details?id=app.alextran.immich) afin de synchroniser vos appareils.
### Terminé !
::
::tip{icon=""}
__Astuce :__ Vous pouvez protéger cette app avec Authentik de façon native en [suivant ces instructions](https://docs.goauthentik.io/integrations/services/immich/).
Et voilà ! Immich est maintenant accessible depuis internet. N'oubliez pas d'installer les applications [iOS](https://apps.apple.com/us/app/immich/id1613945652) / [Android](https://play.google.com/store/apps/details?id=app.alextran.immich) pour synchroniser vos appareils.
## Protéger Immich avec Pocket ID
Immich gère OIDC nativement, vous pouvez donc exiger une connexion Pocket ID avant de laisser qui que ce soit accéder à vos photos, plutôt qu'avec (ou en plus de) les comptes propres à l'application.
::steps{level="3"}
### Enregistrer Immich comme client OIDC
[Enregistrez un client OIDC dans Pocket ID](/serveex/security/pocket-id#registering-an-oidc-client) nommé `immich`, avec ces trois URL de callback :
```text
https://immich.mondomaine.fr/auth/login
https://immich.mondomaine.fr/user-settings
app.immich:///oauth-callback
```
La troisième URL est celle qui permet à l'application mobile de se connecter aussi.
### Activer OAuth dans Immich
Dans Immich, allez dans _Administration > Settings > Authentication Settings > OAuth_, activez-le, et renseignez :
| Champ | Valeur |
|-------|-------|
| Issuer URL | L'URL de découverte OIDC de Pocket ID |
| Client ID | Le client ID copié depuis Pocket ID |
| Client Secret | Le client secret copié depuis Pocket ID |
### Terminé !
::
::tip{icon="" to="/serveex/advanced/authentik"}
✨ Vous pouvez utiliser **Authentik** plutôt que Pocket ID :
1. Dans Authentik, créez une application et un provider OAuth2/OpenID Connect nommé `immich`, avec les trois mêmes redirect URI que ci-dessus (de type `Strict`).
2. Notez les __Client ID__, __Client Secret__ et __Slug__ du provider.
3. Dans les réglages OAuth d'Immich, mettez `https://authentik.mondomaine.fr/application/o/<slug>/` comme Issuer URL, puis renseignez le Client ID et le Client Secret.
::
+120 -65
View File
@@ -1,38 +1,39 @@
---
title: Nextcloud
description: Installer Nextcloud pour auto-héberger vos fichiers, photos et agenda une alternative respectueuse de la vie privée à Google Drive, OneDrive et iCloud.
description: Installer Nextcloud pour auto-héberger vos fichiers, photos et agenda, une alternative respectueuse de la vie privée à Google Drive, OneDrive et iCloud.
---
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
# Nextcloud
::note
🎯 __Objectifs :__ installer [Nextcloud](https://nextcloud.com/) pour gérer vos photos sur tout vos appareils.
::
[Nextcloud](https://nextcloud.com/) est une solution qui vous permet d'accéder à vos données sur tout vos appareils, et de les synchroniser. Nexctloud dispose également de fonctionnalités de collaboration, de calendrier et bien d'autres. Cette solution remplace des solutions du type Google Drive, iCloud, ou encore OneDrive.
[Nextcloud](https://nextcloud.com/) est une solution auto-hébergée qui permet d'accéder à vos données et de les synchroniser sur tous vos appareils. Elle inclut aussi des fonctions de collaboration, un agenda, et bien plus. C'est une excellente alternative à des services comme Google Drive, iCloud ou OneDrive.
![Picture](/img/serveex/nextcloud.png)
## Installation
::note
::note{to="https://docs.linuxserver.io/images/docker-nextcloud/"}
Nous utiliserons l'image docker maintenue par [LinuxServer.io](https://docs.linuxserver.io/images/docker-nextcloud/)
Nous utiliserons l'image Docker maintenue par **LinuxServer.io**
::
Structure des fichiers
::file-tree
---
tree:
/:
- srv:
- docker:
- nextcloud:
- config/
- data/
- compose.yaml
- .env
---
::
```text [Arborescence]
root
└── docker
└── nextcloud
├── config
├── data
├── compose.yaml
└── .env
```
::steps{level="3"}
### Déployer la stack
Ouvrez Dockge, cliquez sur `compose`, appelez la stack `nextcloud` puis copiez collez ceci :
Ouvrez Dockge, cliquez sur `compose`, nommez la stack `nextcloud` et collez ce qui suit :
```yaml [compose.yaml]
---
@@ -45,24 +46,27 @@ services:
- PGID=${GUID}
- TZ=Etc/UTC
volumes:
- /docker/nextcloud/config:/config
- /docker/nextcloud/data:/data
- /srv/docker/nextcloud/config:/config
- /srv/docker/nextcloud/data:/data
ports:
- ${PORT}:443
restart: unless-stopped
```
::note
::note{to="/general/networking/samba"}
Si vous avez un NAS ou un disque réseau partagé via [samba](/fr/general/networking/samba) pour stocker vos données, remplacez `/docker/nextcloud/data` par le chemin d'accès de votre dossier partagé.
Si vous utilisez un NAS ou un disque partagé sur le réseau via **Samba**, remplacez `/srv/docker/nextcloud/data` par le chemin de votre dossier partagé.
::
Trouvez votre `PUID` et votre `GUID` en tapant la commande suivante :
### Renseigner vos variables d'environnement
Trouvez vos `PUID` et `GUID` avec la commande suivante :
```bash [Terminal]
id nomdutilisateur
id utilisateur
```
Et renseignez le `.env` avec le port souhaité, et les infos que vous avez trouvées, par exemple :
Remplissez ensuite le fichier `.env` avec le port de votre choix et les valeurs trouvées ci-dessus, par exemple :
```properties [.env]
PUID=1000
@@ -70,22 +74,28 @@ GUID=1000
PORT=4545
```
Déployez la stack et rendez-vous sur `http://ipduserveur:4545` et suivez les instructions.
Déployez la stack et visitez `http://ipdevotreserveur:4545` pour terminer la configuration.
### 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 Nextcloud 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 Nextcloud via Swag.
L'objectif de cette installation est d'accéder à Nextcloud à distance depuis tous vos appareils. Nous allons utiliser Swag pour exposer l'application.
::note
Nous partons du principe que vous avez le sous-domaine `nextcloud.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).
Nous partons du principe que vous avez un sous-domaine `nextcloud.mondomaine.fr` avec un `CNAME` pointant vers `mondomaine.fr` dans votre [zone DNS](/general/networking/dns). Et à moins d'utiliser [Cloudflare Zero Trust](/serveex/security/cloudflare), le port `443` de votre box doit être 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 nextcloud :
::steps{level="3"}
### Ajouter le réseau de Nextcloud à SWAG
Dans Dockge, allez sur votre stack SWAG et modifiez le compose pour y ajouter le réseau de Nextcloud :
```yaml [compose.yaml]
---
@@ -93,57 +103,65 @@ services:
swag:
container_name: # ...
# ...
networks: # Relie le conteneur au réseau custom
networks:
# ...
- nextcloud # Nom du réseau déclaré dans la stack
networks: # Définit le réseau custom
- nextcloud
networks:
# ...
nextcloud: # Nom du réseau déclaré dans la stack
name: nextcloud_default # Nom véritable du réseau externe
external: true # Précise que c'est un réseau à rechercher en externe
nextcloud:
name: nextcloud_default
external: true
```
::note
Ici nous partons du principe que le nom du réseau de nextcloud est `nextcloud_default`. Vous pouvez vérifier que la connexion est opérationnelle en visitant le dashboard de SWAG en tapant http://ipduserveur:81.
Nous partons du principe que le réseau de Nextcloud s'appelle `nextcloud_default`. Vous pouvez confirmer la connectivité 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 et attendez que SWAG soit pleinement opérationnel.
Dans les fichiers de nextcloud, éditez le fichier `config.php`.
### Configurer les proxys de confiance
::tip{icon=""}
✨ __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.
Dans les fichiers de Nextcloud, modifiez le fichier `config.php` :
::tip{icon="" to="/serveex/files/file-browser-quantum"}
✨ __Astuce :__ vous pouvez utiliser **File Browser Quantum** pour naviguer et modifier les fichiers plutôt que des commandes dans le terminal.
::
```bash [Terminal]
sudo nano /docker/nextcloud/config/www/nextcloud/config/config.php
sudo nano /srv/docker/nextcloud/config/www/nextcloud/config/config.php
```
Copiez les informations suivantes __avant__ `);`.
Collez ce qui suit avant le `);` final :
```php [config.php]
'trusted_proxies' => [gethostbyname('swag')], 'overwrite.cli.url' => 'https://nextcloud.example.com/',
'trusted_proxies' => [gethostbyname('swag')],
'overwrite.cli.url' => 'https://nextcloud.example.com/',
'overwritehost' => 'nextcloud.example.com',
'overwriteprotocol' => 'https',
```
Ajoutez également votre nom de domaine dans la section `array` , cela devrait ressembler à ceci
```php [config.php]
array (
0 => '192.168.0.1:444', # Cette ligne est surement différente chez vous, ne la modifiez pas !
1 => 'nextcloud.mondomaine.fr', # Renseignez votre domaine
),
```
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
Ajoutez également votre domaine dans la section `array`. Cela devrait ressembler à ceci :
Dans les dossiers de Swag, créez le fichier `nextcloud.subdomain.conf`.
```php [config.php]
array (
0 => '192.168.0.1:444', # Cette ligne peut différer, n'y touchez pas !
1 => 'nextcloud.mondomaine.fr', # Ajoutez votre domaine ici
),
```
Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.
### Créer le fichier subdomain.conf
Dans les dossiers de Swag, créez le fichier `nextcloud.subdomain.conf` :
```bash [Terminal]
sudo nano /docker/swag/config/nginx/proxy-confs/nextcloud.subdomain.conf
sudo nano /srv/docker/swag/config/nginx/proxy-confs/nextcloud.subdomain.conf
```
Collez la configuration ci-dessous :
Collez ce qui suit :
```nginx [nextcloud.subdomain.conf]
## Version 2024/04/25
@@ -165,23 +183,60 @@ server {
set $upstream_proto https;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
# Hide proxy response headers from Nextcloud that conflict with ssl.conf
# Uncomment the Optional additional headers in SWAG's ssl.conf to pass Nextcloud's security scan
# Masque les en-têtes de réponse de Nextcloud qui entrent en conflit avec ssl.conf
proxy_hide_header Referrer-Policy;
proxy_hide_header X-Content-Type-Options;
proxy_hide_header X-Frame-Options;
proxy_hide_header X-XSS-Protection;
# Disable proxy buffering
# Désactive la mise en tampon du proxy
proxy_buffering off;
}
}
```
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Ente"}, 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.
Et voilà, vous avez exposé Nextcloud ! Et n'oubliez pas d'installer [les applications pour ordinateurs et mobiles](https://nextcloud.com/fr/install/).
### Terminé !
::
::tip{icon=""}
__Astuce :__ Vous pouvez protéger cette app avec Authentik de façon native en [suivant ces instructions](https://docs.goauthentik.io/integrations/services/nextcloud/).
Et voilà ! Vous avez exposé Nextcloud ! N'oubliez pas d'installer [les applications bureau et mobiles](https://nextcloud.com/install/).
## Protéger Nextcloud avec Pocket ID
Nextcloud peut aussi déléguer la connexion à un fournisseur OIDC plutôt qu'à (ou en plus de) ses propres comptes.
::steps{level="3"}
### Installer l'application OpenID Connect
Dans Nextcloud, allez dans _Apps > Integration_ et installez __OpenID Connect user backend__ (`user_oidc`).
### Enregistrer Nextcloud comme client OIDC
[Enregistrez un client OIDC dans Pocket ID](/serveex/security/pocket-id#registering-an-oidc-client) nommé `Nextcloud`, avec cette URL de callback :
```text
https://nextcloud.mondomaine.fr/apps/user_oidc/code
```
### Ajouter le fournisseur dans Nextcloud
Dans Nextcloud, allez dans _Administration > OpenID Connect_, cliquez sur le bouton `+`, et renseignez :
| Champ | Valeur |
|-------|-------|
| Identifier | `PocketID` |
| Client ID | Le client ID copié depuis Pocket ID |
| Client secret | Le client secret copié depuis Pocket ID |
| Discovery endpoint | L'URL de découverte OIDC de Pocket ID |
| Scope | `openid email profile groups` |
### Terminé !
::
::tip{icon="" to="/serveex/advanced/authentik"}
✨ Vous pouvez utiliser **Authentik** plutôt que Pocket ID :
1. Dans Authentik, créez une application et un provider OAuth2/OpenID Connect nommé `Nextcloud`, avec une redirect URI (de type `Strict`) valant `https://nextcloud.mondomaine.fr/apps/user_oidc/code`.
2. Notez les __Client ID__, __Client Secret__ et __Slug__ du provider.
3. Dans les réglages OpenID Connect de Nextcloud, mettez `https://authentik.mondomaine.fr/application/o/<slug>/.well-known/openid-configuration` comme Discovery endpoint, puis renseignez le Client ID et le Client Secret.
::