diff --git a/nextcloud/.env.example b/nextcloud/.env.example new file mode 100644 index 0000000..0b550fa --- /dev/null +++ b/nextcloud/.env.example @@ -0,0 +1,13 @@ +# Postgres +POSTGRES_DB=nextcloud +POSTGRES_USER=nextcloud +POSTGRES_PASSWORD=CHANGE_ME_postgres_password + +# Nextcloud admin +NEXTCLOUD_ADMIN_USER=admin +NEXTCLOUD_ADMIN_PASSWORD=CHANGE_ME_admin_password + +# Nextcloud config +NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.t-gstone.de +OVERWRITEPROTOCOL=https +OVERWRITECLIURL=https://nextcloud.t-gstone.de diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..ac83855 --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,61 @@ +services: + nextcloud: + image: nextcloud:29-apache + container_name: nextcloud + restart: unless-stopped + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_started + env_file: .env + environment: + - POSTGRES_HOST=postgres + - REDIS_HOST=redis + volumes: + - ${DATA_ROOT}/nextcloud/html:/var/www/html + - ${DATA_ROOT}/nextcloud/data:/var/www/html/data + networks: + - proxy + - nextcloud-internal + + postgres: + image: postgres:16-alpine + container_name: nextcloud-postgres + restart: unless-stopped + env_file: .env + volumes: + - ${DATA_ROOT}/nextcloud/db:/var/lib/postgresql/data + networks: + - nextcloud-internal + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: nextcloud-redis + restart: unless-stopped + networks: + - nextcloud-internal + + cron: + image: nextcloud:29-apache + container_name: nextcloud-cron + restart: unless-stopped + depends_on: + - nextcloud + entrypoint: /cron.sh + volumes: + - ${DATA_ROOT}/nextcloud/html:/var/www/html + - ${DATA_ROOT}/nextcloud/data:/var/www/html/data + networks: + - nextcloud-internal + +networks: + proxy: + external: true + nextcloud-internal: + driver: bridge