7.4 KiB
title, description
| title | description |
|---|---|
| Nextcloud | 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 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.
Installation
::note{to="https://docs.linuxserver.io/images/docker-nextcloud/"}
Nous utiliserons l'image Docker maintenue par LinuxServer.io ::
::file-tree
tree: /: - srv: - docker: - nextcloud: - config/ - data/ - compose.yaml - .env
::
::steps{level="3"}
Déployer la stack
Ouvrez Dockge, cliquez sur compose, nommez la stack nextcloud et collez ce qui suit :
---
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=${PUID}
- PGID=${GUID}
- TZ=Etc/UTC
volumes:
- /srv/docker/nextcloud/config:/config
- /srv/docker/nextcloud/data:/data
ports:
- ${PORT}:443
restart: unless-stopped
::note{to="/general/networking/samba"}
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é.
::
Renseigner vos variables d'environnement
Trouvez vos PUID et GUID avec la commande suivante :
id utilisateur
Remplissez ensuite le fichier .env avec le port de votre choix et les valeurs trouvées ci-dessus, par exemple :
PUID=1000
GUID=1000
PORT=4545
Déployez la stack et visitez http://ipdevotreserveur:4545 pour terminer la configuration.
Terminé !
::
::caution
Si ça ne marche pas : vérifiez les règles de votre pare-feu. ::
Exposer Nextcloud avec 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 un sous-domaine nextcloud.mondomaine.fr avec un CNAME pointant vers mondomaine.fr dans votre zone DNS. Et à moins d'utiliser Cloudflare Zero Trust, le port 443 de votre box doit être redirigé vers le port 443 de votre serveur via les règles NAT.
::
::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 :
---
services:
swag:
container_name: # ...
# ...
networks:
# ...
- nextcloud
networks:
# ...
nextcloud:
name: nextcloud_default
external: true
::note
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.
::
Redéployez la stack et attendez que SWAG soit pleinement opérationnel.
Configurer les proxys de confiance
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. ::
sudo nano /srv/docker/nextcloud/config/www/nextcloud/config/config.php
Collez ce qui suit avant le ); final :
'trusted_proxies' => [gethostbyname('swag')],
'overwrite.cli.url' => 'https://nextcloud.example.com/',
'overwritehost' => 'nextcloud.example.com',
'overwriteprotocol' => 'https',
Ajoutez également votre domaine dans la section array. Cela devrait ressembler à ceci :
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 :
sudo nano /srv/docker/swag/config/nginx/proxy-confs/nextcloud.subdomain.conf
Collez ce qui suit :
## Version 2024/04/25
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name nextcloud.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app nextcloud;
set $upstream_port 443;
set $upstream_proto https;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
# 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;
# Désactive la mise en tampon du proxy
proxy_buffering off;
}
}
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é Nextcloud ! N'oubliez pas d'installer les applications bureau et mobiles.
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 nommé Nextcloud, avec cette URL de callback :
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 :
- Dans Authentik, créez une application et un provider OAuth2/OpenID Connect nommé
Nextcloud, avec une redirect URI (de typeStrict) valanthttps://nextcloud.mondomaine.fr/apps/user_oidc/code. - Notez les Client ID, Client Secret et Slug du provider.
- Dans les réglages OpenID Connect de Nextcloud, mettez
https://authentik.mondomaine.fr/application/o/<slug>/.well-known/openid-configurationcomme Discovery endpoint, puis renseignez le Client ID et le Client Secret. ::
