Nextcloud
Stack
Voici une stack pour Nextcloud avec ça base de donnée.
Ne pas oublier de personnaliser les ports et mot de passe souhaiter.
version: "2.1"
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Paris
volumes:
- appconfig:/config
- data:/data
ports:
- 28443:443/tcp
networks:
nextcloud-net:
ipv4_address: 172.140.6.4
restart: unless-stopped
depends_on:
- db
- valkey
db:
image: mariadb:latest
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=mot-de-passe
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud-admin
- MYSQL_PASSWORD=mot-de-passe-admin
ports:
- 23306:3306
networks:
nextcloud-net:
ipv4_address: 172.140.6.3
restart: unless-stopped
valkey:
image: valkey/valkey:latest
volumes:
- valkey_data:/data
ports:
- 6379:6379/tcp
networks:
nextcloud-net:
ipv4_address: 172.140.6.2
restart: unless-stopped
volumes:
appconfig:
data:
db_data:
redis_data:
networks:
nextcloud-net:
ipam:
config:
- subnet: 172.140.6.0/16
Configuration
Il faut se connecter à l'interface de nextcloud en tapant l'ip du serveur:port choisi précédemment.
Par rapport à l’exemple : https://192.168.1.34:28443
Une fois sur l'interface, créer le premier utilisateur et renseigner la base de donnée. Exemple par rapport à la stack précédente :
Avant toute manipulation, il est conseiller de faire une copie de sauvegarde au cas où.
/config/www/nextcloud/config/config.php
Nom de domaine
'trusted_domains' =>
array (
0 => '192.168.1.34:28443',
1 => 'sousdomaine.domaine.com',
0 => '172.140.6.04:443',
0 => '172.140.6.04:28443',
),
OnlyOffice
'onlyoffice' =>
array (
'verify_peer_off' => true,
),
Valkey anciennement Redis
'redis' =>
array (
'host' => '172.140.6.2',
'port' => 6379,
),
Configuration supplémentaire pour le transfert le fichier Nextcloud.
Maintenant que tout est en place, il existe une limitation au niveau du transfert des données, on peut voir les valeurs dans l'interface du Nextcloud => Paramètres => Système => la partie PHP.
Pour afficher les valeurs, il suffit de se connecter à la console du serveur Nextcloud puis lire le fichier php.ixi
qui se trouve dans /etc/php81/php.ini
.
Rechercher les valeurs memory_limit=
, post_max_size=
et upload_max_filesize=
.
Pour modifier les valeurs, il faut rajouter les options avec leurs valeurs dans le fichier php-local.ini
qui se trouve dans /config/php/
Les valeurs ici surpasseront ceux de php.ini
.
Exemple :
; Edit this file to override php.ini directives and restart the container
memory_limit=4096M
upload_max_filesize=10240M
max_file_uploads = 20
post_max_size=10240M
Sous-dossiers/Fichiers manquants.
J'ai rajouté un stockage supplémentaire et le souci est que je ne voyais pas tout les sous-dossiers via l'interface web, la solution est d'adapter et lancer la commande suivante, directement sur la machine hôte (fonctionne uniquement pour Nextcloud de Linuxserve).
docker exec container_name sudo -u abc php /config/www/nextcloud/occ files:scan --all
Mise à jour Nextcloud 27
docker exec container_name sudo -u abc /app/www/public/occ files:scan --all
Mise à jour Nextcloud 28, plus besoin.
Fichier/Dossier toujours pas visible.
Suite à la commande suivante :
docker exec container_name sudo -u abc /app/www/public/occ files:scan --all
Il y a l'erreur suivante :
Entry "chemin/vers/le/fichier/dossier" will not be accessible due to incompatible encoding
La solution est d'utiliser le programme convmv
pour conversion en utf-8
convmv -f utf-8 -t utf-8 -r --notest --nfc chemin/vers/le/fichier/dossier
Erreurs :
X-Robots-Tag
L'erreur "L'en-tête HTTP "X-Robots-Tag" n'est pas configurée pour être égale à "noindex, nofollow"" se corrige en éditant le fichier default.conf
qui se trouve dans /config/nginx/site-confs/
, il suffit de trouver la ligne add_header X-Robots-Tag
et remplacer none
par noindex, nofollow
.
FPM initialization failed
De temps en temps, je reçois l'erreur suivante :
[12-Apr-2023 09:15:12] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address in use (98)
[12-Apr-2023 09:15:12] ERROR: FPM initialization failed
Ce qui rend inaccessible Nextcloud, pour résoudre le problème, il faut libérer le port 9000, hors, il est utilisé par défaut pour portainer en http, du coup, j'ai changé le port externe de portainer.