diff --git a/nextcloud/.env b/nextcloud/.env index e69de29..97127de 100644 --- a/nextcloud/.env +++ b/nextcloud/.env @@ -0,0 +1,15 @@ +MYSQL_PASSWORD=password +MYSQL_DATABASE=nextcloud +MYSQL_USER=nextcloud + +APP_DOMAIN=nextcloud.2li.ch +NEXTCLOUD_ADMIN_USER=admin +NEXTCLOUD_ADMIN_PASSWORD=password +NEXTCLOUD_TRUSTED_DOMAINS=nextcloud2.2li.local 10.7.89.103 + +SMTP_HOST=mail.infomaniak.com +SMTP_PORT=587 +SMTP_SECURE=ssl +SMTP_NAME=admin@2li.ch +SMTP_PASSWORD=password +MAIL_FROM_ADDRESS=admin@2li.ch diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml index e69de29..1d71d37 100644 --- a/nextcloud/docker-compose.yml +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,68 @@ +version: '2' + +volumes: + db: + +services: + traefik: + image: "traefik:v2.2" + ports: + - "443:443" + volumes: + - "./traefik.yaml:/etc/traefik/traefik.yaml:ro" + - "./letsencrypt:/letsencrypt" + - "/var/run/docker.sock:/var/run/docker.sock:ro" + db: + image: mariadb + command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW + restart: unless-stopped + volumes: + - db:/var/lib/mysql + environment: + - MYSQL_RANDOM_ROOT_PASSWORD=yes + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + + redis: + image: redis:alpine + restart: unless-stopped + + app: + build: ./nextcloud + environment: + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - MYSQL_HOST=db + - "NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}" + - "NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}" + - "NEXTCLOUD_TRUSTED_DOMAINS=${APP_DOMAIN} ${NEXTCLOUD_TRUSTED_DOMAINS}" + - REDIS_HOST=redis + - "SMTP_HOST=${SMTP_HOST}" + - "SMTP_SECURE=${SMTP_SECURE}" + - "SMTP_PORT=${SMTP_PORT}" + - "SMTP_NAME=${SMTP_NAME}" + - "SMTP_PASSWORD=${SMTP_PASSWORD}" + - "MAIL_FORM_ADDRESS=${MAIL_FROM_ADDRESS}" + depends_on: + - db + - redis + volumes: + - ./data:/var/www/html + labels: + - "traefik.enable=true" + - "traefik.http.routers.nextcloud.rule=Host(`${APP_DOMAIN}`)" + - "traefik.http.routers.nextcloud.entrypoints=websecure" + - "traefik.http.routers.nextcloud.tls.certresolver=myresolver" + restart: unless-stopped + + cron: + image: nextcloud:apache + restart: unless-stopped + volumes: + - ./data:/var/www/html + entrypoint: /cron.sh + depends_on: + - db + - redis