- Modifié
NextCloud est la "nouvelle version owncloud" créée à la suite du départ d'un des fondateurs de la société owncloud. Voir sur google si vous voulez des détails.
NextCloud est un logiciel libre vous permettant d'accéder depuis n'importe quel endroit à vos documents importants. Il est installable sur n'importe quel serveur et vous permet de synchroniser vos données "dans le nuage" sur votre serveur. Il fait partie des solutions les plus complètes en la matière, c'est probablement même le meilleur dans son domaine.
NextCloud gère plusieurs utilisateurs. Un système de plugins permet de rajouter des fonctionnalités comme client mail, agenda, gestionnaire de mots de passe, gestionnaire de tâches, etc. Il est possible d'y lier votre compte Dropbox, Google ou autres. Vous pouvez également créer des liens de partages en 2 clics. Il est également possible de chiffrer l'intégralité de vos données.
Des clients desktop sont disponibles pour Windows, Mac OS X, CentOS, Debian, Fedora, openSUSE, SLE, Ubuntu. De plus, les clients owncloud devraient fonctionner sur NextCloud.
Des clients mobiles sont disponibles sur Android, iOS, Blackberry. Il est possible de synchroniser plusieurs services avec un smartphone comme l'agenda ou les notes, de quoi se débarasser de google.
La page de base de NextCloud
Prérequis
Maitriser les bases de docker pour comprendre un minimum ce que vous faites.
Installation
Vous avez 2 possibilités pour installer NextCloud. L'installation manuelle et installer un conteneur Docker. Docker est un outil avancé, difficile à prendre en main, qui nécessite du temps et de la pratique avant de se débrouiller avec mais une fois que c'est fait, vous aurez une simplicité hallucinante à déployer, configurer et sauvegarder vos applications. Et ce n'est pas un outil réservé aux administrateurs systèmes ou autres, je n'en suis pas un et en ramant pendant 1 ou 2 semaines complètes sur docker, j'ai finit par m'en sortir et toutes mes applications sont désormais "dockerisées".
La méthode docker
Docker et docker-compose sont requis pour le tuto docker, voir le tuto de Xataz ou le site officiel
Je fais ici un tuto pour lancer un conteneur NextCloud à partir d'un debian de base, c'est à dire sans nginx installé ou docker déjà installé. En gros c'est un reverse proxy nginx, un conteneur NextCloud et un conteneur mariadb. Si vous avez pas une config de base alors il faudra adapter suivant vos besoins.
/!\Attention /!\ J'attire votre attention sur le fait que ce tuto contient beaucoup de valeurs "par défaut" dans les fichiers d'exemple. Ces valeurs sont facilement identifiables avec un peu de bon sens et il vous faut les remplacer par des valeurs adaptées.
Tout d'abord on va télécharger l'image NextCloud et l'image nginx (reverse proxy nginx) de Wonderfall
- le reverse proxy nginx avec les volumes pour placer les fichiers de config et les ports utilisés
- le lien entre le reverse proxy nginx et NextCloud
- le conteneur NextCloud avec ses paramètres d'environnement et les volumes pour ne pas perdre vos données
- le lien entre NextCloud et sa base de données
Ensuite, en étant toujours dans /mnt/docker (important !) lancez ces 2 commandes:
Ensuite on va créer les fichiers de configurations nécessaires.
Créer le .conf de NextCloud.
On se déplace dans le bon dossier et on crée notre .conf:
Nginx nécessite plusieurs fichiers de paramètres pour fonctionner correctement. Il s'agit des paramètres d'en tête (header), de proxy (pour la redirection vers nos conteneurs docker). Mettre ces paramètres dans des fichiers de conf nous évite de devoir les écrire dans chacun des fichiers .conf correspondant aux vhosts. Pour savoir à quoi les paramètres correspondent en détail, je vous renvoie sur la doc nginx.
Si vous lancez votre docker-compose tel quel avec
Si vous avez fait le test, il faut stopper docker-compose:
Ensuite une fois que le certificat est fait et que votre .conf est bien modifié, on lance docker-compose:
Une fois qu'il n'y a vraiment plus de logs, vous pouvez lancer NextCloud. dans votre navigateur à l'adresse https://nextcloud.votredomaine.tld
Si tout se passe bien, vous devez tomber sur ceci (sans les champs remplis bien évidemment):

Choisissez un login différent de "admin" si possible, c'est trop courant et surement le premier login qu'une personne mal intentionnée essayerait.
Choisissez un mot de passe sécurisé, pour ma part je les génère avec KeepassX.
Pour le dossier NextCloud., mettre:
Pour l'hôte de la base de données (le dernier paramètre) il faut mettre le nom du conteneur de notre base de données, c'est à dire:
Vous devriez être connecté dans votre instance NextCloud. si tout se passe correctement.
Configuration NextCloud.
C'est là que ça devient un peu bordélique. Après avoir installé NextCloud., vous ne devriez pas voir directement le fichier config.php dans
Pour se faire:
Bien vérifier au passage que vous avez:
Bien évidemment, n'oubliez pas de redemarrer le conteneur avec:
Vu que le fichier config.php est bien configuré et qu'il est dans un volume, on va simuler une mise à jour ou on va changer l'image actuelle pour une nouvelle, on devrait conserver notre installation intacte.
Pour se faire on fait:
Ensuite, reconnectez vous sur votre instance NextCloud. et vérifiez que vos données sont toujours là. En cas d'erreur impossible à régler, n'hésitez pas à poster dans le sujet dédié.
désactiver le cron AJAX
L'image docker wonderfall/nextcloud intègre un cron système. Ce cron effectue la même chose que le cron AJAX. Il faut donc le supprimer.
Pour se faire, une fois connecté, aller dans la partie administration en cliquant sur le bouton en haut à droite:

Ensuite dans le menu à gauche, vous cliquez sur cron:

Et si ce n'est pas déjà fait, vous mettez la valeur sur "Cron" comme sur cette image:

Permissions
Si vous avez des erreurs liées à des permissions, n'hésitez pas à les mettre au maximum sur vos volumes docker, c'est peut-être pas top niveau sécurité mais au moins ça marche (
) :
La partie qui suit n'est pas obligatoire. Tout devrait marcher correctement sans néanmoins, ça peut servir vu que je rajoute des infos sympas. A vous de voir.
Configuration avancée de votre fichier config.php]
Voir la documentation ici pour aller plus loin.
Vous disposez de différentes options, je vais en citer quelques unes.
Définir les noms de domaines qui ont l'autorisation d'accéder à NextCloud..
L'image wonderfall/boring-nginx
Cette image n'est pas recommandée au "grand public" c'est uniquement pour les gens qui savent ce qu'ils font, l'image sûre reste wonderfall/nginx.
Cette image contrairement à wonderfall/nginx a été compilée avec boring SSL. C'est un fork d'OpenSSL. Pour plus de détails, je vous invite à lire l'article de Wonderfall à ce sujet ici L'image nginx elle est compilée avec LibreSSL qui est un autre fork de OpenSSL.
Ngxproxy
Les 2 images wonderfall/nginx et wonderfall/boring-nginx ont un utilitaire ngxproxy qui vous permet de générer des .conf
Il se lance avec la commande suivante:

Ajouter d'autres conteneurs.
L'image wonderfall/nextcloud intègre déjà les paramètres headers ( .conf nginx), seulement ce n'est pas forcément le cas pour tous les conteneurs docker. Vous devez vérifier sur la description des images docker ou sur le readme du Github associé s'ils sont présents ou non. Si ce n'est pas le cas, il faut ajouter les fichiers de config nécessaires, voir le github de Hardware
Les logs
Concernant mon expérience personnelle, 99% des erreurs avec les conteneurs sont liées à une mauvaise configuration nginx que ce soit dans le docker-compose.yml ou un fichier vhost .conf
N'hésitez pas à utiliser cette commande si quelquechose ne fonctionne pas normalement:
Activation des plugins préinstallés installés
Allez sur :
Ensuite dans Not enabled je vous conseille:
- Default encryption module si vous souhaitez chiffrer vos données
- External storage support indispensable si vous souhaitez lier votre compte dropbox, google, etc.
- Gallery Un peu lent à mon goût mais peut être sympa pour regarder des photos. Nécessite de désactiver le plugin Pictures.
Dans Productivity:
- Calendar : Calendrier synchronisable avec smartphone, permet de remplacer google agenda.
- Contacts : Des importations de répertoires sont possibles. Je n'ai pas testé une éventuelle synchronisation smartphone.
- Tasks : Gestionnaire de tâches très bien fait.
Dans Tool:
- Files move : Améliore le déplacement de fichiers.
- ownNote : A considéré comme un clone d'evernote, un client de synchronisation android est dispo sur le Play Store pour 1€ et quelque.
Dans Other:
- Search Lucene : Améliore la recherche dans vos fichiers.
- Delete Confirmations : Ajoute une demande de confirmation pour supprimer un fichier.
- Direct Menu : Modifie le menu et affiche tous les icônes des plugins directement.
Je vais détailler la marche à suivre pour certains.
Chiffrer NextCloud
/!\Attention/!\ Une fois cette option activée, il n'est pas possible de revenir sur un NextCloud non chiffré, vous devrez refaire toute l'installation si vous le souhaitez.
Tout d'abord, il faut aller dans les paramètres d'administration (le menu en haut à droite avec marqué "Admin").
Ensuite dans le menu de gauche, vous cliquez sur Server-side encryption puis vous cocher:

Ne validez qu'après avoir pris le temps de tout lire svp.
Ensuite aller dans les applications non activés:


Et activer le chiffrement en cliquant sur "Enable":

External storage support
Cette application vous permet de configurer un accès à différents types de stockage, serveur FTP, amazon S3 or Swift, Google Drive, Dropbox, autres serveurs NextCloud, serveurs WebDAV, et +. Vous pouvez choisir quel type de stockage activer pour un utilisateur, un groupe ou le système entier. Les utilisateurs verront un nouveau dossier apparaitre dans leur dossier root qui leur permettra d'accéder à ce volume externe comme n'importe quel autre volume. Ils pourront également faire des liens de partage pour les données stockées dans les volumes externes.
Pour plus d'informations, voir la doc : https://docs.nextcloud.org/server/9/go.php?to=admin-external-storage
Tout d'abord, il faut activer l'application.
On retourne dans Apps et on retourne dans Not enabled
Cliquez sur "Enable" en dessous de "External storage support"
Ensuite on retourne dans le menu "Admin" (en haut à droite) et on va dans External Storage

Lier votre compte dropbox à NextCloud.
N'oubliez pas que les services de renseignements américains piquent les données stockées dans les services de cloud, ne stockez pas de données confidentielles dans ces services.
En haut à droite, cliquez sur Admin
Ensuite dans External Storage, cliquez sur Add Storage
Ensuite aller sur dropbox et connectez vous:
https://www.dropbox.com/
En bas cliquez sur ... et Developpers
Et cliquez sur app console:
Cliquez sur CreateApp en haut à droite.
Vérifiez votre mail.
Pour la suite, faire comme sur l'image, le nom de l'application n'a aucune importance, si jamais votre nom ne marche pas, mettez nimporte quoi.
Après validation, vous obtenez l'écran suivant
Et mettre les clés App Key et App secret dans les paramètres External Storage Dropbox de Owncloud et cliquez sur Grant Access
Une page dropbox s'ouvre et vous demande si vous autorisez l'application, cliquez sur allow.
Ensuite, votre compte dropbox est lié et un dossier dropbox sera présent sur la page de vos fichiers.
Lier votre google drive à votre NextCloud
N'oubliez pas que les services de renseignements américains piquent les données stockées dans les services de cloud, ne stockez pas de données confidentielles dans ces services.
Dans External Storage, ajouter un compte google drive:

Chez google, il faut enregistrer les applications qui sont autorisées à accéder à votre compte sur Google APIs.
Cliquez sur ce lien
Vous allez arriver sur un bazar sans nom:

Vous cliquez sur Credentials dans le menu de gauche.

Puis "Create credentials" et "OAuth client ID"

Il faudra revenir sur cette page pour mettre le lien pour lier votre NextCloud. Je le dis simplement ici à titre d'information.
Bien mettre "Web application".
Ensuite on clique sur "Create"

Ensuite vous allez récupérer vos identifiants Client ID et Client Secret:

Revenez sur votre page NextCloud et copiez les dans l'application et validez.

Ensuite une fenêtre google se lance et va vous demander de vous connecter pour lier votre compte.

Après vous ALLEZ AVOIR UNE ERREUR.
Désolé pour les majuscules et le gras, c'est pour bien attirer l'attention sur le fait que l'erreur est normale
Il faut récupérer le lien dans la page et le copier/coller.
En gros vous allez retourner sur cette page en cliquant sur le lien:
https://console.developers.google.com/apis/credentials
Cliquez sur votre application:

Copiez votre url et cliquez sur Save:
Un popup va s'afficher au milieu de la page et indiquer que votre changement a bien été sauvegardé.
Retourner dans NextCloud, si tout s'est bien passé, vous avez désormais un dossier google drive comme ceci:

NextCloud est un logiciel libre vous permettant d'accéder depuis n'importe quel endroit à vos documents importants. Il est installable sur n'importe quel serveur et vous permet de synchroniser vos données "dans le nuage" sur votre serveur. Il fait partie des solutions les plus complètes en la matière, c'est probablement même le meilleur dans son domaine.
NextCloud gère plusieurs utilisateurs. Un système de plugins permet de rajouter des fonctionnalités comme client mail, agenda, gestionnaire de mots de passe, gestionnaire de tâches, etc. Il est possible d'y lier votre compte Dropbox, Google ou autres. Vous pouvez également créer des liens de partages en 2 clics. Il est également possible de chiffrer l'intégralité de vos données.
Des clients desktop sont disponibles pour Windows, Mac OS X, CentOS, Debian, Fedora, openSUSE, SLE, Ubuntu. De plus, les clients owncloud devraient fonctionner sur NextCloud.
Des clients mobiles sont disponibles sur Android, iOS, Blackberry. Il est possible de synchroniser plusieurs services avec un smartphone comme l'agenda ou les notes, de quoi se débarasser de google.
Pour discuter de ce tuto, voir https://mondedie.fr/d/8307/1


Maitriser les bases de docker pour comprendre un minimum ce que vous faites.
Installation
Vous avez 2 possibilités pour installer NextCloud. L'installation manuelle et installer un conteneur Docker. Docker est un outil avancé, difficile à prendre en main, qui nécessite du temps et de la pratique avant de se débrouiller avec mais une fois que c'est fait, vous aurez une simplicité hallucinante à déployer, configurer et sauvegarder vos applications. Et ce n'est pas un outil réservé aux administrateurs systèmes ou autres, je n'en suis pas un et en ramant pendant 1 ou 2 semaines complètes sur docker, j'ai finit par m'en sortir et toutes mes applications sont désormais "dockerisées".
La méthode docker
Docker et docker-compose sont requis pour le tuto docker, voir le tuto de Xataz ou le site officiel
Je fais ici un tuto pour lancer un conteneur NextCloud à partir d'un debian de base, c'est à dire sans nginx installé ou docker déjà installé. En gros c'est un reverse proxy nginx, un conteneur NextCloud et un conteneur mariadb. Si vous avez pas une config de base alors il faudra adapter suivant vos besoins.
/!\Attention /!\ J'attire votre attention sur le fait que ce tuto contient beaucoup de valeurs "par défaut" dans les fichiers d'exemple. Ces valeurs sont facilement identifiables avec un peu de bon sens et il vous faut les remplacer par des valeurs adaptées.
Tout d'abord on va télécharger l'image NextCloud et l'image nginx (reverse proxy nginx) de Wonderfall
docker pull wonderfall/nextcloud
docker pull wonderfall/nginx
Ensuite on va créé les dossiers nécessaires. Je vous donne ma méthode, vous êtes libres de faire ça dans n'importe quel dossier. Si ça vous arrange de faire /home/votre_utilisateur/docker alors faites le! Attention si vous utilisez un Kimsufi KS-1 avec la configuration des partitions par défaut, il faudra mettre vos dossiers dans votre /home.
mkdir /mnt/docker && cd /mnt/docker
Ensuite on va créer notre docker-compose.yml
nano docker-compose.yml
et on colle:
nginx:
image: wonderfall/nginx
container_name: nginx
links:
- nextcloud:nextcloud
ports:
- "80:8000"
- "443:4430"
volumes:
- /mnt/docker/nginx/sites-enabled:/sites-enabled
- /mnt/docker/nginx/conf:/conf.d
- /mnt/docker/nginx/log:/var/log/nginx
- /mnt/docker/nginx/certs:/certs
- /mnt/docker/nginx/passwd:/passwds
- /mnt/docker/nginx/www:/www
nextcloud:
image: wonderfall/nextcloud
container_name: nextcloud
links:
- db_nextcloud:db_nextcloud
environment:
- UID=1000
- GID=1000
volumes:
- /mnt/docker/nextcloud/data:/data
- /mnt/docker/nextcloud/config:/config
- /mnt/docker/nextcloud/apps:/apps2
db_nextcloud:
image: mariadb:10
container_name: db_nextcloud
volumes:
- /mnt/docker/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=supersecretpassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=supersecretpassword
Pour résumer, ce fichier contient :- le reverse proxy nginx avec les volumes pour placer les fichiers de config et les ports utilisés
- le lien entre le reverse proxy nginx et NextCloud
- le conteneur NextCloud avec ses paramètres d'environnement et les volumes pour ne pas perdre vos données
- le lien entre NextCloud et sa base de données
Ensuite, en étant toujours dans /mnt/docker (important !) lancez ces 2 commandes:
docker-compose up -d
docker-compose stop
Docker-compose up -d va lancer les conteneurs configurés dans le fichier en arrière plan et créer les dossiers nécessaires. Ne vous attendez pas à ce que NextCloud marche déjà, c'est uniquement pour ne pas créer les dossiers à la main, un informaticien doit être un feignant. C'est obligé. Docker-compose stop va stopper les conteneurs lancés avec le fichier docker-compose.ymlEnsuite on va créer les fichiers de configurations nécessaires.
Créer le .conf de NextCloud.
On se déplace dans le bon dossier et on crée notre .conf:
cd /mnt/docker/nginx/sites-enabled
nano nextcloud.conf
On colle dedans:
server {
listen 8000;
server_name nextcloud.domain.tld;
return 301 https://$host$request_uri;
}
server {
listen 4430 ssl http2;
server_name nextcloud.domain.tld;
ssl_certificate /certs/domain.tld.crt;
ssl_certificate_key /certs/domain.tld.key;
location / {
proxy_pass http://nextcloud:80;
include /conf.d/proxy-params.conf;
}
}
Créer les fichiers de conf nginxNginx nécessite plusieurs fichiers de paramètres pour fonctionner correctement. Il s'agit des paramètres d'en tête (header), de proxy (pour la redirection vers nos conteneurs docker). Mettre ces paramètres dans des fichiers de conf nous évite de devoir les écrire dans chacun des fichiers .conf correspondant aux vhosts. Pour savoir à quoi les paramètres correspondent en détail, je vous renvoie sur la doc nginx.
cd /mnt/docker/nginx/conf
nano proxy-params.conf
et on colle:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
nano ssl_params.conf
et on colle:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA";
ssl_prefer_server_ciphers on;
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_session_tickets off;
Configuration de votre certificat ssl.Si vous lancez votre docker-compose tel quel avec
docker-compose up -d
et que vous faites:
docker-compose logs nginx
Il va vous emmerder avec un certificat invalide si ce n'est pas configuré.Si vous avez fait le test, il faut stopper docker-compose:
docker-compose stop
Si vous avez déjà un certificat, vous devez mettre les fichiers correspondants dans/mnt/docker/nginx/certs
Pour let's encrypt, il s'agit de fullchain.pem et privkey.pem. Il faut également changer les 2 directives du certificat ssl dans:
nano /mnt/docker/nginx/sites-enabled/nextcloud.conf
Si vous n'avez pas de certificat, je vous invite à suivre ce tuto Certificat SSL signé gratuit avec Let's Encrypt et nginx et à continuer celui ci après. Vous devrez mettre les fichiers fullchain.pem et privkey.pem dans /mnt/docker/nginx/certsEnsuite une fois que le certificat est fait et que votre .conf est bien modifié, on lance docker-compose:
docker-compose up -d
Et on vérifie en regardant les logs nginx que tout s'est bien passé:
docker-compose logs nginx
S'il n'y a pas de logs, tout est bon, s'il y a une erreur, essayez de la corriger et s'il y a une erreur que vous pensez avoir déjà corrigé, faites:
docker-compose stop && docker-compose rm nginx && docker-compose up -d
et confirmer la suppression de nginx.Une fois qu'il n'y a vraiment plus de logs, vous pouvez lancer NextCloud. dans votre navigateur à l'adresse https://nextcloud.votredomaine.tld
Si tout se passe bien, vous devez tomber sur ceci (sans les champs remplis bien évidemment):

Choisissez un login différent de "admin" si possible, c'est trop courant et surement le premier login qu'une personne mal intentionnée essayerait.
Choisissez un mot de passe sécurisé, pour ma part je les génère avec KeepassX.
Pour le dossier NextCloud., mettre:
/data
Pour les paramètres de bases de données, voir ce que vous avez mis dans votre docker-compose. Les paramètres par défaut sont bien évidemment à changer.Pour l'hôte de la base de données (le dernier paramètre) il faut mettre le nom du conteneur de notre base de données, c'est à dire:
db_nextcloud
Quand tout est fait, vous pouvez valider.Vous devriez être connecté dans votre instance NextCloud. si tout se passe correctement.
Configuration NextCloud.
C'est là que ça devient un peu bordélique. Après avoir installé NextCloud., vous ne devriez pas voir directement le fichier config.php dans
/mnt/docker/nextcloud/config
il faut redemarrer NextCloud. pour le voir en faisant:
docker-compose restart nextcloud
Ensuite il faut modifier le fichier config.php pour configurer plusieurs choses notamment activer la persistance des données des apps NextCloud.Pour se faire:
nano /mnt/docker/nextcloud/config/config.php
et coller à la fin du fichier avant );
'apps_paths' => array (
0 => array (
"path" => "/nextcloud/apps",
"url" => "/apps",
"writable" => false,
),
1 => array (
"path" => "/apps2",
"url" => "/apps2",
"writable" => true,
),
)
Voir ici pour plus d'informations.Bien vérifier au passage que vous avez:
'datadirectory' => '/data',
au lieu de :
'datadirectory' => '/nextcloud/data',
Et pour finir ajouter à votre fichier:
'memcache.local' => '\OC\Memcache\APCu',
Pour activer memcache. (ça va accélérer NextCloud. en mettant les données en cache).Bien évidemment, n'oubliez pas de redemarrer le conteneur avec:
docker-compose restart nextcloud
Simulation d'une mise à jour du conteneur NextCloud. pour vérifier la persistance des donnéesVu que le fichier config.php est bien configuré et qu'il est dans un volume, on va simuler une mise à jour ou on va changer l'image actuelle pour une nouvelle, on devrait conserver notre installation intacte.
Pour se faire on fait:
docker-compose stop nginx nextcloud && docker-compose rm nginx nextcloud && docker-compose up -d nginx nextcloud
En validant la suppression des conteneurs.Ensuite, reconnectez vous sur votre instance NextCloud. et vérifiez que vos données sont toujours là. En cas d'erreur impossible à régler, n'hésitez pas à poster dans le sujet dédié.
désactiver le cron AJAX
L'image docker wonderfall/nextcloud intègre un cron système. Ce cron effectue la même chose que le cron AJAX. Il faut donc le supprimer.
Pour se faire, une fois connecté, aller dans la partie administration en cliquant sur le bouton en haut à droite:

Ensuite dans le menu à gauche, vous cliquez sur cron:

Et si ce n'est pas déjà fait, vous mettez la valeur sur "Cron" comme sur cette image:

Permissions
Si vous avez des erreurs liées à des permissions, n'hésitez pas à les mettre au maximum sur vos volumes docker, c'est peut-être pas top niveau sécurité mais au moins ça marche (

chmod -R 777 votre_volume
Config avancé et quelques trucs en plusLa partie qui suit n'est pas obligatoire. Tout devrait marcher correctement sans néanmoins, ça peut servir vu que je rajoute des infos sympas. A vous de voir.
Configuration avancée de votre fichier config.php]
Voir la documentation ici pour aller plus loin.
Vous disposez de différentes options, je vais en citer quelques unes.
Définir les noms de domaines qui ont l'autorisation d'accéder à NextCloud..
'trusted_domains' =>
array (
'demo.example.org',
'otherdomain.example.org',
),
Définir la langue utilisée dans NextCloud.
'default_language' => 'en',
Définir l'application par défaut qui est lancée après connexion à NextCloud.
'defaultapp' => 'files',
L'image wonderfall/boring-nginx
Cette image n'est pas recommandée au "grand public" c'est uniquement pour les gens qui savent ce qu'ils font, l'image sûre reste wonderfall/nginx.
Cette image contrairement à wonderfall/nginx a été compilée avec boring SSL. C'est un fork d'OpenSSL. Pour plus de détails, je vous invite à lire l'article de Wonderfall à ce sujet ici L'image nginx elle est compilée avec LibreSSL qui est un autre fork de OpenSSL.
Ngxproxy
Les 2 images wonderfall/nginx et wonderfall/boring-nginx ont un utilitaire ngxproxy qui vous permet de générer des .conf
Il se lance avec la commande suivante:
docker exec -ti nginx ngxproxy
Un petit exemple ici (merci Wonderfall):
Ajouter d'autres conteneurs.
L'image wonderfall/nextcloud intègre déjà les paramètres headers ( .conf nginx), seulement ce n'est pas forcément le cas pour tous les conteneurs docker. Vous devez vérifier sur la description des images docker ou sur le readme du Github associé s'ils sont présents ou non. Si ce n'est pas le cas, il faut ajouter les fichiers de config nécessaires, voir le github de Hardware
Les logs
Concernant mon expérience personnelle, 99% des erreurs avec les conteneurs sont liées à une mauvaise configuration nginx que ce soit dans le docker-compose.yml ou un fichier vhost .conf
N'hésitez pas à utiliser cette commande si quelquechose ne fonctionne pas normalement:
docker-compose logs nginx
Apps NextCloudActivation des plugins préinstallés installés
Allez sur :

- Default encryption module si vous souhaitez chiffrer vos données
- External storage support indispensable si vous souhaitez lier votre compte dropbox, google, etc.
- Gallery Un peu lent à mon goût mais peut être sympa pour regarder des photos. Nécessite de désactiver le plugin Pictures.
Dans Productivity:
- Calendar : Calendrier synchronisable avec smartphone, permet de remplacer google agenda.
- Contacts : Des importations de répertoires sont possibles. Je n'ai pas testé une éventuelle synchronisation smartphone.
- Tasks : Gestionnaire de tâches très bien fait.
Dans Tool:
- Files move : Améliore le déplacement de fichiers.
- ownNote : A considéré comme un clone d'evernote, un client de synchronisation android est dispo sur le Play Store pour 1€ et quelque.
Dans Other:
- Search Lucene : Améliore la recherche dans vos fichiers.
- Delete Confirmations : Ajoute une demande de confirmation pour supprimer un fichier.
- Direct Menu : Modifie le menu et affiche tous les icônes des plugins directement.
Je vais détailler la marche à suivre pour certains.
Chiffrer NextCloud
/!\Attention/!\ Une fois cette option activée, il n'est pas possible de revenir sur un NextCloud non chiffré, vous devrez refaire toute l'installation si vous le souhaitez.
Tout d'abord, il faut aller dans les paramètres d'administration (le menu en haut à droite avec marqué "Admin").
Ensuite dans le menu de gauche, vous cliquez sur Server-side encryption puis vous cocher:
Enable server-side encryption
Vous devrez voir ceci:
Ne validez qu'après avoir pris le temps de tout lire svp.

Ensuite aller dans les applications non activés:


Et activer le chiffrement en cliquant sur "Enable":

External storage support
Cette application vous permet de configurer un accès à différents types de stockage, serveur FTP, amazon S3 or Swift, Google Drive, Dropbox, autres serveurs NextCloud, serveurs WebDAV, et +. Vous pouvez choisir quel type de stockage activer pour un utilisateur, un groupe ou le système entier. Les utilisateurs verront un nouveau dossier apparaitre dans leur dossier root qui leur permettra d'accéder à ce volume externe comme n'importe quel autre volume. Ils pourront également faire des liens de partage pour les données stockées dans les volumes externes.
Pour plus d'informations, voir la doc : https://docs.nextcloud.org/server/9/go.php?to=admin-external-storage
Tout d'abord, il faut activer l'application.
On retourne dans Apps et on retourne dans Not enabled
Cliquez sur "Enable" en dessous de "External storage support"
Ensuite on retourne dans le menu "Admin" (en haut à droite) et on va dans External Storage

Lier votre compte dropbox à NextCloud.
N'oubliez pas que les services de renseignements américains piquent les données stockées dans les services de cloud, ne stockez pas de données confidentielles dans ces services.
En haut à droite, cliquez sur Admin


https://www.dropbox.com/
En bas cliquez sur ... et Developpers


Vérifiez votre mail.
Pour la suite, faire comme sur l'image, le nom de l'application n'a aucune importance, si jamais votre nom ne marche pas, mettez nimporte quoi.




Lier votre google drive à votre NextCloud
N'oubliez pas que les services de renseignements américains piquent les données stockées dans les services de cloud, ne stockez pas de données confidentielles dans ces services.
Dans External Storage, ajouter un compte google drive:

Chez google, il faut enregistrer les applications qui sont autorisées à accéder à votre compte sur Google APIs.
Cliquez sur ce lien
Vous allez arriver sur un bazar sans nom:

Vous cliquez sur Credentials dans le menu de gauche.

Puis "Create credentials" et "OAuth client ID"

Il faudra revenir sur cette page pour mettre le lien pour lier votre NextCloud. Je le dis simplement ici à titre d'information.
Bien mettre "Web application".
Ensuite on clique sur "Create"

Ensuite vous allez récupérer vos identifiants Client ID et Client Secret:

Revenez sur votre page NextCloud et copiez les dans l'application et validez.

Ensuite une fenêtre google se lance et va vous demander de vous connecter pour lier votre compte.

Après vous ALLEZ AVOIR UNE ERREUR.
Désolé pour les majuscules et le gras, c'est pour bien attirer l'attention sur le fait que l'erreur est normale
Il faut récupérer le lien dans la page et le copier/coller.
https://console.developers.google.com/tres-longue-url

En gros vous allez retourner sur cette page en cliquant sur le lien:
https://console.developers.google.com/apis/credentials
Cliquez sur votre application:

Copiez votre url et cliquez sur Save:
https://votre-domaine.tld/index.php/settings/admin

Un popup va s'afficher au milieu de la page et indiquer que votre changement a bien été sauvegardé.
Retourner dans NextCloud, si tout s'est bien passé, vous avez désormais un dossier google drive comme ceci:
