Skip to main content

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 :

2023-01-08_15-53.png

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).

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

Source

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.