mirror of
https://github.com/nextcloud/all-in-one.git
synced 2024-11-11 01:13:41 +08:00
619 lines
16 KiB
JSON
619 lines
16 KiB
JSON
{
|
|
"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"
|
|
},
|
|
{
|
|
"ip_binding": "%APACHE_IP_BINDING%",
|
|
"port_number": "%APACHE_PORT%",
|
|
"protocol": "udp"
|
|
}
|
|
],
|
|
"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"
|
|
],
|
|
"read_only": true,
|
|
"tmpfs": [
|
|
"/var/log/supervisord",
|
|
"/var/run/supervisord",
|
|
"/usr/local/apache2/logs",
|
|
"/tmp",
|
|
"/home/www-data"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"read_only": true,
|
|
"tmpfs": [
|
|
"/var/run/postgresql"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"tmpfs": [
|
|
"/tmp:exec"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"read_only": true,
|
|
"tmpfs": [
|
|
"/var/log/supervisord",
|
|
"/var/run/supervisord",
|
|
"/conf",
|
|
"/var/lib/turn",
|
|
"/tmp"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"read_only": true,
|
|
"tmpfs": [
|
|
"/tmp",
|
|
"/conf"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"/nextcloud_aio_volumes"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
],
|
|
"internal_port": "%APACHE_PORT%",
|
|
"environment": [
|
|
"INSTANCE_ID=%INSTANCE_ID%",
|
|
"APACHE_PORT=%APACHE_PORT%"
|
|
],
|
|
"secrets": [
|
|
"INSTANCE_ID"
|
|
],
|
|
"stop_grace_period": 1,
|
|
"read_only": true,
|
|
"tmpfs": [
|
|
"/etc/lighttpd",
|
|
"/var/www/domaincheck"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
],
|
|
"read_only": true,
|
|
"tmpfs": [
|
|
"/var/lock",
|
|
"/var/log/clamav",
|
|
"/tmp"
|
|
]
|
|
},
|
|
{
|
|
"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,
|
|
"tmpfs": [
|
|
"/tmp"
|
|
]
|
|
},
|
|
{
|
|
"container_name": "nextcloud-aio-fulltextsearch",
|
|
"display_name": "Fulltextsearch",
|
|
"image": "nextcloud/aio-fulltextsearch",
|
|
"expose": [
|
|
"9200"
|
|
],
|
|
"internal_port": "9200",
|
|
"environment": [
|
|
"TZ=%TIMEZONE%",
|
|
"ES_JAVA_OPTS=-Xms512M -Xmx512M",
|
|
"bootstrap.memory_lock=true",
|
|
"cluster.name=nextcloud-aio",
|
|
"discovery.type=single-node",
|
|
"logger.org.elasticsearch.discovery=WARN",
|
|
"http.port=9200",
|
|
"xpack.license.self_generated.type=basic",
|
|
"xpack.security.enabled=false"
|
|
],
|
|
"volumes": [
|
|
{
|
|
"source": "nextcloud_aio_elasticsearch",
|
|
"destination": "/usr/share/elasticsearch/data",
|
|
"writeable": true
|
|
}
|
|
],
|
|
"restart": "unless-stopped",
|
|
"profiles": [
|
|
"fulltextsearch"
|
|
],
|
|
"networks": [
|
|
"nextcloud-aio"
|
|
]
|
|
}
|
|
]
|
|
}
|