Mettre en place Nextcloud Docker
Prérequis :
- Avoir une base de donnée
Postgresdéployé en local- Voir déploiement Postgres
- Avoir un nom de domaine
- Dans notre cas le nom de domaine utilisé est :
miraceti.net
- Dans notre cas le nom de domaine utilisé est :
Il existe plusieurs manière de mettre en place Nextcloud Docker. Dans notre cas nous allons utiliser une base de données Postgres déjà déployé avec Docker
Configuration nom de domaine
Grâce à notre nom de domaine, nous allons pouvoir créer des sous domaine (en CNAME A).
Sur le site de nom de domaine respectif, dans la section DNS, ajouter l'entrée suivante :
- cloud.miraceti.net A ip.adress.server
Configuration Docker Compose
Pour accéder à notre base de données externe, nous devons importer le network lié à la base de donnée (dans notre cas le network est "bddnetwork").
De plus dans la variable d'environnement POSTGRES_HOST du conteneur de nextcloud on doit renseigner le nom du conteneur BDD externe (Dans notre cas "postgres")
Fichier docker-compose.yaml :
services:
nextcloud:
image: ${NEXTCLOUD_IMAGE_TAG}
container_name: nextcloud
networks:
- bddnetwork
ports:
- 8082:80
volumes:
- /path/to/data/nextcloud:/var/www/html
- /path/to/conf/nextcloud/config:/var/www/html/config
restart: unless-stopped
environment:
TZ: ${NEXTCLOUD_TIMEZONE}
POSTGRES_HOST: postgres
DB_PORT: 5432
POSTGRES_DB: ${NEXTCLOUD_DB_NAME}
POSTGRES_USER: ${NEXTCLOUD_DB_USER}
POSTGRES_PASSWORD: ${NEXTCLOUD_DB_PASSWORD}
REDIS_HOST: redis-nextcloud
REDIS_HOST_PORT: 6379
REDIS_HOST_PASSWORD: ${NEXTCLOUD_REDIS_PASSWORD}
# TRUSTED_PROXIES: ${NEXTCLOUD_HOSTNAME}
OVERWRITECLIURL: ${NEXTCLOUD_URL}
OVERWRITEPROTOCOL: https
OVERWRITEHOST: ${NEXTCLOUD_HOSTNAME}
# PHP_MEMORY_LIMIT: 2048M # If you want to overwritte Php Memory Limit
# PHP_UPLOAD_LIMIT: 2048M # If you want to overwritte Php Upload Limit
redis-nextcloud:
image: ${NEXTCLOUD_REDIS_IMAGE_TAG}
container_name: redis-nextcloud
command: ["redis-server", "--requirepass", "$NEXTCLOUD_REDIS_PASSWORD"]
volumes:
- /path/to/data/redis-nextcloud:/data
networks:
- bddnetwork
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
start_period: 60s
restart: unless-stopped
volumes:
nextcloud:
redis-nextcloud:
networks:
bddnetwork:
external: true
Fichier .env :
# Nextcloud Variables
NEXTCLOUD_REDIS_IMAGE_TAG=redis:7.2
NEXTCLOUD_IMAGE_TAG=nextcloud:29.0
NEXTCLOUD_REDIS_PASSWORD=5454fdsLJDSqd45
NEXTCLOUD_DB_NAME=nextclouddb
NEXTCLOUD_DB_USER=nextclouddbuser
NEXTCLOUD_DB_PASSWORD=q5s4dazelqksdjfga
NEXTCLOUD_URL=https://cloud.miraceti.net
NEXTCLOUD_HOSTNAME=cloud.miraceti.net
# Timezone inside container
# A list of these tz database names can be looked up at Wikipedia
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
NEXTCLOUD_TIMEZONE=Europe/Paris