{ "aio_services_v1": [ { "container_name": "nextcloud-aio-apache", "depends_on": [ "nextcloud-aio-onlyoffice", "nextcloud-aio-collabora", "nextcloud-aio-talk", "nextcloud-aio-nextcloud", "nextcloud-aio-notify-push" ], "display_name": "Apache", "image": "nextcloud/aio-apache", "ports": [ { "ip_binding": "%APACHE_IP_BINDING%", "port_number": "%APACHE_PORT%", "protocol": "tcp" } ], "internal_port": "%APACHE_PORT%", "environment": [ "NC_DOMAIN=%NC_DOMAIN%", "NEXTCLOUD_HOST=nextcloud-aio-nextcloud", "COLLABORA_HOST=nextcloud-aio-collabora", "TALK_HOST=nextcloud-aio-talk", "APACHE_PORT=%APACHE_PORT%", "ONLYOFFICE_HOST=nextcloud-aio-onlyoffice", "TZ=%TIMEZONE%", "APACHE_MAX_SIZE=%APACHE_MAX_SIZE%", "APACHE_MAX_TIME=%NEXTCLOUD_MAX_TIME%", "NOTIFY_PUSH_HOST=nextcloud-aio-notify-push" ], "volumes": [ { "source": "nextcloud_aio_nextcloud", "destination": "/var/www/html", "writeable": false }, { "source": "nextcloud_aio_apache", "destination": "/mnt/data", "writeable": true } ], "restart": "unless-stopped", "backup_volumes": [ "nextcloud_aio_nextcloud", "nextcloud_aio_apache" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-database", "display_name": "Database", "image": "nextcloud/aio-postgresql", "expose": [ "5432" ], "internal_port": "5432", "secrets": [ "DATABASE_PASSWORD" ], "volumes": [ { "source": "nextcloud_aio_database", "destination": "/var/lib/postgresql/data", "writeable": true }, { "source": "nextcloud_aio_database_dump", "destination": "/mnt/data", "writeable": true } ], "environment": [ "POSTGRES_PASSWORD=%DATABASE_PASSWORD%", "POSTGRES_DB=nextcloud_database", "POSTGRES_USER=nextcloud", "TZ=%TIMEZONE%", "PGTZ=%TIMEZONE%" ], "stop_grace_period": 1800, "restart": "unless-stopped", "shm_size": 268435456, "backup_volumes": [ "nextcloud_aio_database", "nextcloud_aio_database_dump" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-nextcloud", "depends_on": [ "nextcloud-aio-database", "nextcloud-aio-redis", "nextcloud-aio-clamav", "nextcloud-aio-fulltextsearch", "nextcloud-aio-talk-recording", "nextcloud-aio-imaginary" ], "display_name": "Nextcloud", "image": "nextcloud/aio-nextcloud", "expose": [ "9000" ], "internal_port": "9000", "secrets": [ "DATABASE_PASSWORD", "REDIS_PASSWORD", "NEXTCLOUD_PASSWORD", "TURN_SECRET", "SIGNALING_SECRET" ], "volumes": [ { "source": "nextcloud_aio_nextcloud", "destination": "/var/www/html", "writeable": true }, { "source": "%NEXTCLOUD_DATADIR%", "destination": "/mnt/ncdata", "writeable": true }, { "source": "%NEXTCLOUD_MOUNT%", "destination": "%NEXTCLOUD_MOUNT%", "writeable": true }, { "source": "%NEXTCLOUD_TRUSTED_CACERTS_DIR%", "destination": "/usr/local/share/ca-certificates", "writeable": false } ], "environment": [ "POSTGRES_HOST=nextcloud-aio-database", "POSTGRES_PASSWORD=%DATABASE_PASSWORD%", "POSTGRES_DB=nextcloud_database", "POSTGRES_USER=nextcloud", "REDIS_HOST=nextcloud-aio-redis", "REDIS_HOST_PASSWORD=%REDIS_PASSWORD%", "AIO_TOKEN=%AIO_TOKEN%", "NC_DOMAIN=%NC_DOMAIN%", "ADMIN_USER=admin", "ADMIN_PASSWORD=%NEXTCLOUD_PASSWORD%", "NEXTCLOUD_DATA_DIR=/mnt/ncdata", "OVERWRITEHOST=%NC_DOMAIN%", "OVERWRITEPROTOCOL=https", "TURN_SECRET=%TURN_SECRET%", "SIGNALING_SECRET=%SIGNALING_SECRET%", "ONLYOFFICE_SECRET=%ONLYOFFICE_SECRET%", "AIO_URL=%AIO_URL%", "NEXTCLOUD_MOUNT=%NEXTCLOUD_MOUNT%", "CLAMAV_ENABLED=%CLAMAV_ENABLED%", "CLAMAV_HOST=nextcloud-aio-clamav", "ONLYOFFICE_ENABLED=%ONLYOFFICE_ENABLED%", "COLLABORA_ENABLED=%COLLABORA_ENABLED%", "COLLABORA_HOST=nextcloud-aio-collabora", "TALK_ENABLED=%TALK_ENABLED%", "ONLYOFFICE_HOST=nextcloud-aio-onlyoffice", "UPDATE_NEXTCLOUD_APPS=%UPDATE_NEXTCLOUD_APPS%", "TZ=%TIMEZONE%", "TALK_PORT=%TALK_PORT%", "IMAGINARY_ENABLED=%IMAGINARY_ENABLED%", "IMAGINARY_HOST=nextcloud-aio-imaginary", "PHP_UPLOAD_LIMIT=%NEXTCLOUD_UPLOAD_LIMIT%", "PHP_MEMORY_LIMIT=%NEXTCLOUD_MEMORY_LIMIT%", "FULLTEXTSEARCH_ENABLED=%FULLTEXTSEARCH_ENABLED%", "FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch", "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=%INSTALL_LATEST_MAJOR%", "TALK_RECORDING_ENABLED=%TALK_RECORDING_ENABLED%", "RECORDING_SECRET=%RECORDING_SECRET%", "TALK_RECORDING_HOST=nextcloud-aio-talk-recording" ], "restart": "unless-stopped", "devices": [ "/dev/dri" ], "backup_volumes": [ "nextcloud_aio_nextcloud" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-notify-push", "display_name": "Notify Push", "image": "nextcloud/aio-notify-push", "expose": [ "7867" ], "internal_port": "7867", "secrets": [ "REDIS_PASSWORD", "DATABASE_PASSWORD" ], "volumes": [ { "source": "nextcloud_aio_nextcloud", "destination": "/nextcloud", "writeable": false } ], "environment": [ "NC_DOMAIN=%NC_DOMAIN%", "NEXTCLOUD_HOST=nextcloud-aio-nextcloud", "REDIS_HOST=nextcloud-aio-redis", "REDIS_HOST_PASSWORD=%REDIS_PASSWORD%", "POSTGRES_HOST=nextcloud-aio-database", "POSTGRES_PASSWORD=%DATABASE_PASSWORD%", "POSTGRES_DB=nextcloud_database", "POSTGRES_USER=nextcloud" ], "restart": "unless-stopped", "networks": [ "nextcloud-aio" ], "read_only": true }, { "container_name": "nextcloud-aio-redis", "display_name": "Redis", "image": "nextcloud/aio-redis", "expose": [ "6379" ], "internal_port": "6379", "environment": [ "REDIS_HOST_PASSWORD=%REDIS_PASSWORD%", "TZ=%TIMEZONE%" ], "volumes": [ { "source": "nextcloud_aio_redis", "destination": "/data", "writeable": true } ], "secrets": [ "REDIS_PASSWORD", "ONLYOFFICE_SECRET", "RECORDING_SECRET" ], "restart": "unless-stopped", "networks": [ "nextcloud-aio" ], "read_only": true }, { "container_name": "nextcloud-aio-collabora", "display_name": "Collabora", "image": "nextcloud/aio-collabora", "expose": [ "9980" ], "internal_port": "9980", "environment": [ "aliasgroup1=https://%NC_DOMAIN%:443", "extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:mount_jail_tree=false --o:logging.level=warning --o:home_mode.enable=true %COLLABORA_SECCOMP_POLICY% --o:remote_font_config.url=https://%NC_DOMAIN%/apps/richdocuments/settings/fonts.json", "dictionaries=%COLLABORA_DICTIONARIES%", "TZ=%TIMEZONE%", "server_name=%NC_DOMAIN%", "DONT_GEN_SSL_CERT=1" ], "restart": "unless-stopped", "nextcloud_exec_commands": [ "echo 'Activating collabora config...'", "php /var/www/html/occ richdocuments:activate-config" ], "profiles": [ "collabora" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-talk", "display_name": "Talk", "image": "nextcloud/aio-talk", "ports": [ { "ip_binding": "", "port_number": "%TALK_PORT%", "protocol": "tcp" }, { "ip_binding": "", "port_number": "%TALK_PORT%", "protocol": "udp" } ], "expose": [ "8081" ], "internal_port": "%TALK_PORT%", "environment": [ "NC_DOMAIN=%NC_DOMAIN%", "TURN_SECRET=%TURN_SECRET%", "SIGNALING_SECRET=%SIGNALING_SECRET%", "TZ=%TIMEZONE%", "TALK_PORT=%TALK_PORT%", "INTERNAL_SECRET=%TALK_INTERNAL_SECRET%" ], "secrets": [ "TURN_SECRET", "SIGNALING_SECRET", "TALK_INTERNAL_SECRET" ], "restart": "unless-stopped", "profiles": [ "talk", "talk-recording" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-talk-recording", "display_name": "Talk Recording", "image": "nextcloud/aio-talk-recording", "expose": [ "1234" ], "internal_port": "1234", "environment": [ "NC_DOMAIN=%NC_DOMAIN%", "TZ=%TIMEZONE%", "RECORDING_SECRET=%RECORDING_SECRET%", "INTERNAL_SECRET=%TALK_INTERNAL_SECRET%" ], "shm_size": 2147483648, "secrets": [ "RECORDING_SECRET", "TALK_INTERNAL_SECRET" ], "restart": "unless-stopped", "profiles": [ "talk-recording" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-borgbackup", "image": "nextcloud/aio-borgbackup", "environment": [ "BORG_PASSWORD=%BORGBACKUP_PASSWORD%", "BORG_MODE=%BORGBACKUP_MODE%", "SELECTED_RESTORE_TIME=%SELECTED_RESTORE_TIME%", "BACKUP_RESTORE_PASSWORD=%BACKUP_RESTORE_PASSWORD%", "ADDITIONAL_DIRECTORIES_BACKUP=%ADDITIONAL_DIRECTORIES_BACKUP%", "BORGBACKUP_HOST_LOCATION=%BORGBACKUP_HOST_LOCATION%", "BORG_HOST_ID=nextcloud-aio-borgbackup", "BORG_RETENTION_POLICY=%BORG_RETENTION_POLICY%" ], "volumes": [ { "source": "nextcloud_aio_backup_cache", "destination": "/root", "writeable": true }, { "source": "%NEXTCLOUD_DATADIR%", "destination": "/nextcloud_aio_volumes/nextcloud_aio_nextcloud_data", "writeable": true }, { "source": "nextcloud_aio_mastercontainer", "destination": "/nextcloud_aio_volumes/nextcloud_aio_mastercontainer", "writeable": true }, { "source": "%BORGBACKUP_HOST_LOCATION%", "destination": "/mnt/borgbackup", "writeable": true }, { "source": "nextcloud_aio_elasticsearch", "destination": "/nextcloud_aio_volumes/nextcloud_aio_elasticsearch", "writeable": true }, { "source": "nextcloud_aio_redis", "destination": "/mnt/redis", "writeable": true } ], "secrets": [ "BORGBACKUP_PASSWORD" ], "devices": [ "/dev/fuse" ], "cap_add": [ "SYS_ADMIN" ], "apparmor_unconfined": true, "read_only": true, "tmpfs": [ "/tmp" ] }, { "container_name": "nextcloud-aio-watchtower", "image": "nextcloud/aio-watchtower", "environment": [ "CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer" ], "volumes": [ { "source": "%WATCHTOWER_DOCKER_SOCKET_PATH%", "destination": "/var/run/docker.sock", "writeable": false } ], "read_only": true }, { "container_name": "nextcloud-aio-domaincheck", "image": "nextcloud/aio-domaincheck", "ports": [ { "ip_binding": "%APACHE_IP_BINDING%", "port_number": "%APACHE_PORT%", "protocol": "tcp" } ], "environment": [ "INSTANCE_ID=%INSTANCE_ID%", "APACHE_PORT=%APACHE_PORT%" ], "secrets": [ "INSTANCE_ID" ], "stop_grace_period": 1 }, { "container_name": "nextcloud-aio-clamav", "display_name": "ClamAV", "image": "nextcloud/aio-clamav", "expose": [ "3310" ], "internal_port": "3310", "environment": [ "TZ=%TIMEZONE%", "CLAMD_STARTUP_TIMEOUT=90" ], "volumes": [ { "source": "nextcloud_aio_clamav", "destination": "/var/lib/clamav", "writeable": true } ], "restart": "unless-stopped", "profiles": [ "clamav" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-onlyoffice", "display_name": "OnlyOffice", "image": "nextcloud/aio-onlyoffice", "expose": [ "80" ], "internal_port": "80", "environment": [ "TZ=%TIMEZONE%", "JWT_ENABLED=true", "JWT_HEADER=AuthorizationJwt", "JWT_SECRET=%ONLYOFFICE_SECRET%" ], "volumes": [ { "source": "nextcloud_aio_onlyoffice", "destination": "/var/lib/onlyoffice", "writeable": true } ], "secrets": [ "ONLYOFFICE_SECRET" ], "restart": "unless-stopped", "profiles": [ "onlyoffice" ], "networks": [ "nextcloud-aio" ] }, { "container_name": "nextcloud-aio-imaginary", "display_name": "Imaginary", "image": "nextcloud/aio-imaginary", "expose": [ "9000" ], "internal_port": "9000", "environment": [ "TZ=%TIMEZONE%" ], "restart": "unless-stopped", "cap_add": [ "SYS_NICE" ], "profiles": [ "imaginary" ], "networks": [ "nextcloud-aio" ], "read_only": true }, { "container_name": "nextcloud-aio-fulltextsearch", "display_name": "Fulltextsearch", "image": "nextcloud/aio-fulltextsearch", "expose": [ "9200" ], "internal_port": "9200", "environment": [ "TZ=%TIMEZONE%", "discovery.type=single-node", "ES_JAVA_OPTS=-Xms1024M -Xmx1024M", "POSTGRES_HOST=nextcloud-aio-database" ], "volumes": [ { "source": "nextcloud_aio_elasticsearch", "destination": "/usr/share/elasticsearch/data", "writeable": true } ], "restart": "unless-stopped", "profiles": [ "fulltextsearch" ], "networks": [ "nextcloud-aio" ] } ] }