Nextcloud dockerisé
On va configurer le système Nextcloud comme un conteneur docker avec SSL généré automatiquement (par Let’s encrypt) et renouvelé automatiquement par notre proxy Web nginx.
Prérequis
Pour utiliser ce fichier docker-compose (docker-compose.yml
) on doit avoir installé:
- docker (https://docs.docker.com/engine/installation/)
- docker-compose (https://docs.docker.com/compose/install/)
Construction de l’image
Cette image est basée sur l’image officielle de nextcloud du docker hub.
Elle tourne avec un proxy nginx et Let´s Encrypt.
Le Dockerfile :
FROM nextcloud:latest RUN apt-get update && apt-get install -y \ supervisor \ && rm -rf /var/lib/apt/lists/* \ && mkdir /var/log/supervisord /var/run/supervisord COPY supervisord.conf /etc/supervisor/supervisord.conf CMD ["/usr/bin/supervisord"]
Le fichier supervisord
Pour que nextcloud utilise les tâches cron.
[supervisord] nodaemon=true logfile=/var/log/supervisord/supervisord.log pidfile=/var/run/supervisord/supervisord.pid childlogdir=/var/log/supervisord/ logfile_maxbytes=50MB ; maximum size of logfile before rotation logfile_backups=10 ; number of backed up logfiles loglevel=error [program:apache2] stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 command=apache2-foreground [program:cron] stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 command=/cron.sh
On construit l’image avec :
Comment l’utiliser
1. Cloner ce repository github
git clone https://github.com/nicoroud/docker-nexcloud.git
2. Modifier le fichier .env
selon les besoins
# Configuration for Nextcloud using NGINX WebProxy # # Containers name DB_CONTAINER_NAME=cloud-db APP_CONTAINER_NAME=cloud-app # Mysql settings MYSQL_HOST=cloud-db MYSQL_DATABASE=cloud_db MYSQL_ROOT_PASSWORD=myrootpassword MYSQL_USER=mysqluser MYSQL_PASSWORD=mysqlpassword # Nextcloud settings NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_PASSWORD=password # Nextcloud data path #NEXTCLOUD_DATA_DIR=/path/to/nextcloud NEXTCLOUD_DATA_DIR=/var/www/html/data NEXTCLOUD_TABLE_PREFIX= # Nextcloud local data path LOCAL_DB_DIR=/path/to/nextcloud/db LOCAL_DATA_DIR=/path/to/nextcloud/cloud LOCAL_CONF_DIR=/path/to/nextcloud/cloud/config LOCAL_APPS_DIR=/path/to/nextcloud/cloud/apps # Host VIRTUAL_HOST=cloud.example.com LETSENCRYPT_HOST=cloud.example.com LETSENCRYPT_EMAIL=admin@example.com # # Network name # # Your container app must use a network conencted to your webproxy # https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion # NETWORK=webproxy
**3. Lancement**
```bash
docker-compose up -d
Au premier lancement, la commande docker-compose up -d
va d’abord télécharger l’image depuis le (hub docker)[https://hub.docker.com/r/nicoroud/docker-nextcloud/].
Ensuite, le conteneur sera créé (si les conteneurs nginx sont bien lancés).