392 lines
10 KiB
YAML
392 lines
10 KiB
YAML
services:
|
|
nextcloud-aio-apache:
|
|
depends_on:
|
|
nextcloud-aio-notify-push:
|
|
condition: service_started
|
|
required: false
|
|
nextcloud-aio-nextcloud:
|
|
condition: service_started
|
|
required: false
|
|
image: ghcr.io/nextcloud-releases/aio-apache:latest
|
|
user: "33"
|
|
init: true
|
|
healthcheck:
|
|
start_period: 0s
|
|
test: /healthcheck.sh
|
|
interval: 30s
|
|
timeout: 30s
|
|
start_interval: 5s
|
|
retries: 3
|
|
ports:
|
|
- 100.70.0.2:41443:41443
|
|
# - ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/tcp
|
|
# - ${APACHE_IP_BINDING}:${APACHE_PORT}:${APACHE_PORT}/udp
|
|
environment:
|
|
- NC_DOMAIN
|
|
- NEXTCLOUD_HOST=nextcloud-nextcloud
|
|
- APACHE_HOST=nextcloud-apache
|
|
- COLLABORA_HOST=nextcloud-collabora
|
|
- TALK_HOST=nextcloud-talk
|
|
- APACHE_PORT
|
|
- ONLYOFFICE_HOST=onlyoffice-documentserver
|
|
- TZ=${TIMEZONE}
|
|
- APACHE_MAX_SIZE
|
|
- APACHE_MAX_TIME=${NEXTCLOUD_MAX_TIME}
|
|
- NOTIFY_PUSH_HOST=nextcloud-notifypush
|
|
- WHITEBOARD_HOST=nextcloud-whiteboard
|
|
- HARP_HOST=nextcloud-harp
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
volumes:
|
|
- nextcloud_aio_nextcloud:/var/www/html:ro
|
|
- nextcloud_aio_apache:/mnt/data:rw
|
|
restart: unless-stopped
|
|
read_only: true
|
|
tmpfs:
|
|
- /var/log/supervisord
|
|
- /var/run/supervisord
|
|
- /usr/local/apache2/logs
|
|
- /tmp
|
|
- /home/www-data
|
|
cap_drop:
|
|
- NET_RAW
|
|
networks:
|
|
- nextcloud
|
|
container_name: nextcloud-apache
|
|
|
|
# nextcloud-aio-database:
|
|
# image: ghcr.io/nextcloud-releases/aio-postgresql:latest
|
|
# user: "999"
|
|
# init: true
|
|
# healthcheck:
|
|
# start_period: 0s
|
|
# test: /healthcheck.sh
|
|
# interval: 30s
|
|
# timeout: 30s
|
|
# start_interval: 5s
|
|
# retries: 3
|
|
# expose:
|
|
# - "5432"
|
|
# volumes:
|
|
# - nextcloud_aio_database:/var/lib/postgresql/data:rw
|
|
# - nextcloud_aio_database_dump:/mnt/data:rw
|
|
# environment:
|
|
# - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
|
|
# - POSTGRES_DB=nextcloud_database
|
|
# - POSTGRES_USER=nextcloud
|
|
# - TZ=${TIMEZONE}
|
|
# - PGTZ=${TIMEZONE}
|
|
# stop_grace_period: 1800s
|
|
# restart: unless-stopped
|
|
# shm_size: 268435456
|
|
# read_only: true
|
|
# tmpfs:
|
|
# - /var/run/postgresql
|
|
# cap_drop:
|
|
# - NET_RAW
|
|
|
|
nextcloud-aio-nextcloud:
|
|
depends_on:
|
|
# nextcloud-aio-database:
|
|
# condition: service_started
|
|
# required: false
|
|
nextcloud-aio-redis:
|
|
condition: service_started
|
|
required: false
|
|
nextcloud-aio-fulltextsearch:
|
|
condition: service_started
|
|
required: false
|
|
nextcloud-aio-imaginary:
|
|
condition: service_started
|
|
required: false
|
|
image: ghcr.io/nextcloud-releases/aio-nextcloud:latest
|
|
init: true
|
|
healthcheck:
|
|
start_period: 0s
|
|
test: /healthcheck.sh
|
|
interval: 30s
|
|
timeout: 30s
|
|
start_interval: 5s
|
|
retries: 3
|
|
expose:
|
|
- "9000"
|
|
- "9001"
|
|
volumes:
|
|
- nextcloud_aio_nextcloud:/var/www/html:rw
|
|
- ${NEXTCLOUD_DATADIR}:/mnt/ncdata:rw
|
|
# - ${NEXTCLOUD_MOUNT}:${NEXTCLOUD_MOUNT}:rw
|
|
- /usr/local/share/ca-certificates:/usr/local/share/ca-certificates:ro #modified
|
|
environment:
|
|
- NEXTCLOUD_HOST=nextcloud-nextcloud
|
|
- POSTGRES_HOST=postgres # modified
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
|
|
- POSTGRES_DB=nextcloud # modified
|
|
- POSTGRES_USER=nextcloud
|
|
- REDIS_HOST=nextcloud-redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
|
|
- APACHE_HOST=nextcloud-apache
|
|
- APACHE_PORT
|
|
- NC_DOMAIN
|
|
- ADMIN_USER=admin
|
|
- ADMIN_PASSWORD=${NEXTCLOUD_PASSWORD}
|
|
- NEXTCLOUD_DATA_DIR=/mnt/ncdata
|
|
- OVERWRITEHOST=${NC_DOMAIN}
|
|
- OVERWRITEPROTOCOL=https
|
|
- TURN_SECRET
|
|
- SIGNALING_SECRET
|
|
- ONLYOFFICE_SECRET
|
|
- NEXTCLOUD_MOUNT
|
|
- CLAMAV_ENABLED
|
|
- CLAMAV_HOST=nextcloud-aio-clamav
|
|
- ONLYOFFICE_ENABLED
|
|
- COLLABORA_ENABLED
|
|
- COLLABORA_HOST=nextcloud-aio-collabora
|
|
- TALK_ENABLED
|
|
- ONLYOFFICE_HOST=onlyoffice-documentserver
|
|
- UPDATE_NEXTCLOUD_APPS
|
|
- TZ=${TIMEZONE}
|
|
- TALK_PORT
|
|
- IMAGINARY_ENABLED
|
|
- IMAGINARY_HOST=nextcloud-imaginary
|
|
- PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT}
|
|
- PHP_MEMORY_LIMIT=${NEXTCLOUD_MEMORY_LIMIT}
|
|
- FULLTEXTSEARCH_ENABLED
|
|
- FULLTEXTSEARCH_HOST=nextcloud-fulltextsearch
|
|
- FULLTEXTSEARCH_PROTOCOL=http
|
|
- FULLTEXTSEARCH_PORT=9200
|
|
- FULLTEXTSEARCH_USER=elastic
|
|
- FULLTEXTSEARCH_INDEX=nextcloud-aio
|
|
- PHP_MAX_TIME=${NEXTCLOUD_MAX_TIME}
|
|
- TRUSTED_CACERTS_DIR=${NEXTCLOUD_TRUSTED_CACERTS_DIR}
|
|
- STARTUP_APPS=${NEXTCLOUD_STARTUP_APPS}
|
|
- ADDITIONAL_APKS=${NEXTCLOUD_ADDITIONAL_APKS}
|
|
- ADDITIONAL_PHP_EXTENSIONS=${NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS}
|
|
- INSTALL_LATEST_MAJOR
|
|
- TALK_RECORDING_ENABLED
|
|
- RECORDING_SECRET
|
|
- TALK_RECORDING_HOST=nextcloud-aio-talk-recording
|
|
- FULLTEXTSEARCH_PASSWORD
|
|
- REMOVE_DISABLED_APPS
|
|
- IMAGINARY_SECRET
|
|
- WHITEBOARD_SECRET
|
|
- WHITEBOARD_ENABLED
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
stop_grace_period: 600s
|
|
restart: unless-stopped
|
|
cap_drop:
|
|
- NET_RAW
|
|
networks:
|
|
- nextcloud
|
|
- postgres
|
|
container_name: nextcloud-nextcloud
|
|
|
|
nextcloud-aio-notify-push:
|
|
image: ghcr.io/nextcloud-releases/aio-notify-push:latest
|
|
user: "33"
|
|
init: true
|
|
healthcheck:
|
|
start_period: 0s
|
|
test: /healthcheck.sh
|
|
interval: 30s
|
|
timeout: 30s
|
|
start_interval: 5s
|
|
retries: 3
|
|
expose:
|
|
- "7867"
|
|
volumes:
|
|
- nextcloud_aio_nextcloud:/var/www/html:ro
|
|
environment:
|
|
- NEXTCLOUD_HOST=nextcloud-nextcloud
|
|
- POSTGRES_HOST=postgres
|
|
- REDIS_HOST=nextcloud-redis
|
|
- TZ=${TIMEZONE}
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
restart: unless-stopped
|
|
read_only: true
|
|
cap_drop:
|
|
- NET_RAW
|
|
networks:
|
|
- nextcloud
|
|
- postgres
|
|
container_name: nextcloud-notifypush
|
|
|
|
nextcloud-aio-redis:
|
|
image: ghcr.io/nextcloud-releases/aio-redis:latest
|
|
user: "999"
|
|
init: true
|
|
healthcheck:
|
|
start_period: 0s
|
|
test: /healthcheck.sh
|
|
interval: 30s
|
|
timeout: 30s
|
|
start_interval: 5s
|
|
retries: 3
|
|
expose:
|
|
- "6379"
|
|
environment:
|
|
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
|
|
- TZ=${TIMEZONE}
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
volumes:
|
|
- nextcloud_aio_redis:/data:rw
|
|
restart: unless-stopped
|
|
read_only: true
|
|
cap_drop:
|
|
- NET_RAW
|
|
networks:
|
|
- nextcloud
|
|
container_name: nextcloud-redis
|
|
|
|
# nextcloud-aio-onlyoffice:
|
|
# image: ghcr.io/nextcloud-releases/aio-onlyoffice:latest
|
|
# init: true
|
|
# healthcheck:
|
|
# start_period: 60s
|
|
# test: /healthcheck.sh
|
|
# interval: 30s
|
|
# timeout: 30s
|
|
# start_interval: 5s
|
|
# retries: 9
|
|
# expose:
|
|
# - "80"
|
|
# environment:
|
|
# - TZ=${TIMEZONE}
|
|
# - JWT_ENABLED=true
|
|
# - JWT_HEADER=AuthorizationJwt
|
|
# - JWT_SECRET=${ONLYOFFICE_SECRET}
|
|
# volumes:
|
|
# - nextcloud_aio_onlyoffice:/var/lib/onlyoffice:rw
|
|
# restart: unless-stopped
|
|
# # profiles:
|
|
# # - onlyoffice
|
|
# cap_drop:
|
|
# - NET_RAW
|
|
# networks:
|
|
# - nextcloud
|
|
# container_name: nextcloud-onlyoffice
|
|
|
|
nextcloud-aio-imaginary:
|
|
image: ghcr.io/nextcloud-releases/aio-imaginary:latest
|
|
user: "65534"
|
|
init: true
|
|
healthcheck:
|
|
start_period: 0s
|
|
test: /healthcheck.sh
|
|
interval: 30s
|
|
timeout: 30s
|
|
start_interval: 5s
|
|
retries: 3
|
|
expose:
|
|
- "9000"
|
|
environment:
|
|
- TZ=${TIMEZONE}
|
|
- IMAGINARY_SECRET
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
restart: unless-stopped
|
|
cap_add:
|
|
- SYS_NICE
|
|
cap_drop:
|
|
- NET_RAW
|
|
# profiles:
|
|
# - imaginary
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp
|
|
networks:
|
|
- nextcloud
|
|
container_name: nextcloud-imaginary
|
|
|
|
nextcloud-aio-fulltextsearch:
|
|
image: ghcr.io/nextcloud-releases/aio-fulltextsearch:latest
|
|
init: false
|
|
healthcheck:
|
|
start_period: 60s
|
|
test: /healthcheck.sh
|
|
interval: 10s
|
|
timeout: 5s
|
|
start_interval: 5s
|
|
retries: 5
|
|
expose:
|
|
- "9200"
|
|
environment:
|
|
- TZ=${TIMEZONE}
|
|
- ES_JAVA_OPTS=${FULLTEXTSEARCH_JAVA_OPTIONS}
|
|
- bootstrap.memory_lock=false
|
|
- cluster.name=nextcloud-aio
|
|
- discovery.type=single-node
|
|
- logger.level=WARN
|
|
- http.port=9200
|
|
- xpack.license.self_generated.type=basic
|
|
- xpack.security.enabled=false
|
|
- FULLTEXTSEARCH_PASSWORD
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
volumes:
|
|
- nextcloud_aio_elasticsearch:/usr/share/elasticsearch/data:rw
|
|
restart: unless-stopped
|
|
# profiles:
|
|
# - fulltextsearch
|
|
cap_drop:
|
|
- NET_RAW
|
|
networks:
|
|
- nextcloud
|
|
container_name: nextcloud-fulltextsearch
|
|
|
|
nextcloud-aio-whiteboard:
|
|
image: ghcr.io/nextcloud-releases/aio-whiteboard:latest
|
|
user: "65534"
|
|
init: true
|
|
healthcheck:
|
|
start_period: 0s
|
|
test: /healthcheck.sh
|
|
interval: 30s
|
|
timeout: 30s
|
|
start_interval: 5s
|
|
retries: 3
|
|
expose:
|
|
- "3002"
|
|
tmpfs:
|
|
- /tmp
|
|
environment:
|
|
- TZ=${TIMEZONE}
|
|
- NEXTCLOUD_URL=https://${NC_DOMAIN}
|
|
- JWT_SECRET_KEY=${WHITEBOARD_SECRET}
|
|
- STORAGE_STRATEGY=redis
|
|
- REDIS_HOST=nextcloud-redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_HOST_PASSWORD=${REDIS_PASSWORD}
|
|
- BACKUP_DIR=/tmp
|
|
- AIO_LOG_LEVEL # added 2026-05-15
|
|
restart: unless-stopped
|
|
read_only: true
|
|
cap_drop:
|
|
- NET_RAW
|
|
networks:
|
|
- nextcloud
|
|
container_name: nextcloud-whiteboard
|
|
|
|
volumes:
|
|
nextcloud_aio_apache:
|
|
name: nextcloud_aio_apache
|
|
# nextcloud_aio_database:
|
|
# name: nextcloud_aio_database
|
|
# nextcloud_aio_database_dump:
|
|
# name: nextcloud_aio_database_dump
|
|
nextcloud_aio_elasticsearch:
|
|
name: nextcloud_aio_elasticsearch
|
|
nextcloud_aio_nextcloud:
|
|
name: nextcloud_aio_nextcloud
|
|
# nextcloud_aio_onlyoffice:
|
|
# name: nextcloud_aio_onlyoffice
|
|
nextcloud_aio_redis:
|
|
name: nextcloud_aio_redis
|
|
nextcloud_aio_nextcloud_data:
|
|
name: nextcloud_aio_nextcloud_data
|
|
|
|
networks:
|
|
nextcloud:
|
|
name: "nextcloud"
|
|
postgres:
|
|
name: "postgres"
|
|
external: true
|