modified: .gitignore
modified: apps/gramps/docker-compose.yml modified: apps/nextcloud/docker-compose.yml modified: apps/passbolt/docker-compose.yml modified: core/docker-compose.yml modified: monitoring/gotify/docker-compose.yml modified: monitoring/prometheus/docker-compose.yml modified: monitoring/prometheus/prometheus.yml .env.example DEPLOYMENT.md SECURITY_SECRETS_INVENTORY.md secrets/
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
services:
|
||||
nextcloud-webapp:
|
||||
# image: nextcloud:production
|
||||
profiles: ["apps","all","nextcloud"]
|
||||
build:
|
||||
context: ${PROJECT_ROOT}/apps/nextcloud
|
||||
container_name: nextcloud-webapp
|
||||
restart: always
|
||||
hostname: nextcloud.lan.ddnsgeek.com
|
||||
env_file:
|
||||
- ${PROJECT_ROOT}/secrets/stack-secrets.env
|
||||
volumes:
|
||||
- ${PROJECT_ROOT}/apps/nextcloud/data:/var/www/html/data:rw
|
||||
- ${PROJECT_ROOT}/apps/nextcloud/config:/var/www/html/config:rw
|
||||
@@ -16,26 +17,28 @@ services:
|
||||
- nextcloud-db
|
||||
- nextcloud-redis
|
||||
environment:
|
||||
- MYSQL_PASSWORD=${NEXTCLOUD_MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${NEXTCLOUD_MYSQL_DATABASE}
|
||||
- MYSQL_USER=${NEXTCLOUD_MYSQL_USER}
|
||||
- MYSQL_HOST=${NEXTCLOUD_MYSQL_HOST}
|
||||
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS}
|
||||
- OVERWRITEPROTOCOL=${NEXTCLOUD_OVERWRITEPROTOCOL}
|
||||
- OVERWRITECLIURL=${NEXTCLOUD_OVERWRITECLIURL}
|
||||
|
||||
- SMTP_HOST=${NEXTCLOUD_SMTP_HOST}
|
||||
- SMTP_SECURE=${NEXTCLOUD_SMTP_SECURE}
|
||||
- SMTP_PORT=${NEXTCLOUD_SMTP_PORT}
|
||||
- SMTP_AUTHTYPE=${NEXTCLOUD_SMTP_AUTHTYPE}
|
||||
- MAIL_FROM_ADDRESS=${NEXTCLOUD_MAIL_FROM_ADDRESS}
|
||||
- MAIL_DOMAIN=${NEXTCLOUD_MAIL_DOMAIN}
|
||||
- MYSQL_PASSWORD_FILE=/run/secrets/nextcloud_db_password
|
||||
- MYSQL_DATABASE=${NEXTCLOUD_DB_NAME}
|
||||
- MYSQL_USER=${NEXTCLOUD_DB_USER}
|
||||
- MYSQL_HOST=nextcloud_db:3306
|
||||
- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.lan.ddnsgeek.com
|
||||
- OVERWRITEPROTOCOL=https
|
||||
- OVERWRITECLIURL=https://nextcloud.lan.ddnsgeek.com
|
||||
- SMTP_HOST=smtp.gmail.com
|
||||
- SMTP_SECURE=tls
|
||||
- SMTP_PORT=587
|
||||
- SMTP_AUTHTYPE=login
|
||||
- MAIL_FROM_ADDRESS=${NEXTCLOUD_SMTP_FROM_ADDRESS}
|
||||
- MAIL_DOMAIN=${NEXTCLOUD_SMTP_DOMAIN}
|
||||
- SMTP_NAME=${NEXTCLOUD_SMTP_NAME}
|
||||
- SMTP_PASSWORD=${NEXTCLOUD_SMTP_PASSWORD}
|
||||
|
||||
- REDIS_HOST=${NEXTCLOUD_REDIS_HOST}
|
||||
- REDIS_HOST_PORT=${NEXTCLOUD_REDIS_HOST_PORT}
|
||||
- REDIS_HOST_PASSWORD=${NEXTCLOUD_REDIS_HOST_PASSWORD}
|
||||
- SMTP_PASSWORD_FILE=/run/secrets/nextcloud_smtp_password
|
||||
- REDIS_HOST=redis
|
||||
- REDIS_HOST_PORT=6379
|
||||
- REDIS_HOST_PASSWORD_FILE=/run/secrets/nextcloud_redis_password
|
||||
secrets:
|
||||
- nextcloud_db_password
|
||||
- nextcloud_smtp_password
|
||||
- nextcloud_redis_password
|
||||
networks:
|
||||
- traefik
|
||||
- nextcloud
|
||||
@@ -54,7 +57,6 @@ services:
|
||||
- "traefik.http.middlewares.nextcloud-webfinger.redirectregex.regex=https://(.*)/.well-known/webfinger"
|
||||
- "traefik.http.middlewares.nextcloud-webfinger.redirectregex.replacement=https://$${1}/nextcloud/index.php/.well-known/webfinger"
|
||||
- "traefik.docker.network=core_traefik"
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
@@ -68,9 +70,6 @@ services:
|
||||
retries: 6
|
||||
start_period: 180s
|
||||
|
||||
|
||||
|
||||
|
||||
nextcloud-db:
|
||||
image: mariadb:11.4
|
||||
restart: always
|
||||
@@ -78,36 +77,41 @@ services:
|
||||
container_name: nextcloud-db
|
||||
hostname: nextcloud_db
|
||||
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
|
||||
env_file:
|
||||
- ${PROJECT_ROOT}/secrets/stack-secrets.env
|
||||
volumes:
|
||||
- ${PROJECT_ROOT}/apps/nextcloud/database:/var/lib/mysql:rw
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${NEXTCLOUD_MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_PASSWORD=${NEXTCLOUD_MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${NEXTCLOUD_MYSQL_DATABASE}
|
||||
- MYSQL_USER=${NEXTCLOUD_MYSQL_USER}
|
||||
- MARIADB_AUTO_UPGRADE=${NEXTCLOUD_MARIADB_AUTO_UPGRADE}
|
||||
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/nextcloud_db_root_password
|
||||
- MYSQL_PASSWORD_FILE=/run/secrets/nextcloud_db_password
|
||||
- MYSQL_DATABASE=${NEXTCLOUD_DB_NAME}
|
||||
- MYSQL_USER=${NEXTCLOUD_DB_USER}
|
||||
- MARIADB_AUTO_UPGRADE=1
|
||||
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
|
||||
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
|
||||
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
|
||||
secrets:
|
||||
- nextcloud_db_root_password
|
||||
- nextcloud_db_password
|
||||
- nextcloud_admin_password
|
||||
networks:
|
||||
- nextcloud
|
||||
labels:
|
||||
- "io.portainer.accesscontrol.public"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mariadb-admin ping -u ${NEXTCLOUD_MYSQL_USER} --password=${NEXTCLOUD_MYSQL_PASSWORD} --silent"]
|
||||
test: ["CMD-SHELL", "mariadb-admin ping -u $$MYSQL_USER --password=$$(cat /run/secrets/nextcloud_db_password) --silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 60s
|
||||
|
||||
|
||||
nextcloud-redis:
|
||||
image: "redis"
|
||||
profiles: ["apps","all","nextcloud"]
|
||||
command: ["redis-server", "--requirepass", "${NEXTCLOUD_REDIS_HOST_PASSWORD}", "--appendonly", "yes", "--save", "60", "1000"]
|
||||
command: ["sh", "-c", "redis-server --requirepass \"$$(cat /run/secrets/nextcloud_redis_password)\" --appendonly yes --save 60 1000"]
|
||||
hostname: redis
|
||||
container_name: nextcloud-redis
|
||||
environment:
|
||||
- REDIS_HOST_PASSWORD=${NEXTCLOUD_REDIS_HOST_PASSWORD}
|
||||
secrets:
|
||||
- nextcloud_redis_password
|
||||
volumes:
|
||||
- ${PROJECT_ROOT}/apps/nextcloud/data/redis:/data:rw
|
||||
restart: always
|
||||
@@ -116,15 +120,23 @@ services:
|
||||
labels:
|
||||
- "io.portainer.accesscontrol.public"
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "redis-cli -a ${NEXTCLOUD_REDIS_HOST_PASSWORD} PING | grep -q PONG"]
|
||||
test: ["CMD-SHELL", "redis-cli -a \"$$(cat /run/secrets/nextcloud_redis_password)\" PING | grep -q PONG"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
start_period: 10s
|
||||
|
||||
|
||||
networks:
|
||||
# traefik_reverse_proxy:
|
||||
# external: true
|
||||
nextcloud:
|
||||
# driver: bridge
|
||||
|
||||
secrets:
|
||||
nextcloud_db_root_password:
|
||||
file: ${PROJECT_ROOT}/secrets/nextcloud_db_root_password.txt
|
||||
nextcloud_db_password:
|
||||
file: ${PROJECT_ROOT}/secrets/nextcloud_db_password.txt
|
||||
nextcloud_admin_password:
|
||||
file: ${PROJECT_ROOT}/secrets/nextcloud_admin_password.txt
|
||||
nextcloud_smtp_password:
|
||||
file: ${PROJECT_ROOT}/secrets/nextcloud_smtp_password.txt
|
||||
nextcloud_redis_password:
|
||||
file: ${PROJECT_ROOT}/secrets/nextcloud_redis_password.txt
|
||||
|
||||
Reference in New Issue
Block a user