-
-
Save kodumbeats/5f2a52297bbc0edb04385bdd43083d7d to your computer and use it in GitHub Desktop.
Appwrite on Docker Swarm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: '3.8' | |
services: | |
traefik: | |
image: traefik:2.3 | |
container_name: appwrite-traefik | |
command: | |
- --providers.file.directory=/storage/config | |
- --providers.file.watch=true | |
- --providers.docker=true | |
- --providers.docker.exposedByDefault=false | |
- --providers.docker.constraints=Label(`traefik.constraint-label-stack`,`appwrite`) | |
- --entrypoints.web.address=:80 | |
- --entrypoints.websecure.address=:443 | |
ports: | |
- 80:80 | |
- 443:443 | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
- /nfs/config:/storage/config:ro | |
- /nfs/certificates:/storage/certificates:ro | |
networks: | |
- gateway | |
- appwrite | |
deploy: | |
replicas: 1 | |
placement: | |
constraints: | |
- "node.role==manager" | |
appwrite: | |
image: appwrite/appwrite:0.8.0 | |
container_name: appwrite | |
networks: | |
- appwrite | |
labels: | |
- traefik.enable=true | |
- traefik.constraint-label-stack=appwrite | |
- traefik.http.routers.appwrite.rule=PathPrefix(`/`) | |
- traefik.http.routers.appwrite-secure.rule=PathPrefix(`/`) | |
- traefik.http.routers.appwrite-secure.tls=true | |
volumes: | |
- /nfs/uploads:/storage/uploads:rw | |
- /nfs/cache:/storage/cache:rw | |
- /nfs/config:/storage/config:rw | |
- /nfs/certificates:/storage/certificates:rw | |
- /nfs/functions:/storage/functions:rw | |
environment: | |
- _APP_ENV | |
- _APP_LOCALE | |
- _APP_CONSOLE_WHITELIST_ROOT | |
- _APP_CONSOLE_WHITELIST_EMAILS | |
- _APP_CONSOLE_WHITELIST_IPS | |
- _APP_SYSTEM_EMAIL_NAME | |
- _APP_SYSTEM_EMAIL_ADDRESS | |
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
- _APP_SYSTEM_RESPONSE_FORMAT | |
- _APP_OPTIONS_ABUSE | |
- _APP_OPTIONS_FORCE_HTTPS | |
- _APP_OPENSSL_KEY_V1 | |
- _APP_DOMAIN | |
- _APP_DOMAIN_TARGET | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
- _APP_SMTP_HOST | |
- _APP_SMTP_PORT | |
- _APP_SMTP_SECURE | |
- _APP_SMTP_USERNAME | |
- _APP_SMTP_PASSWORD | |
- _APP_USAGE_STATS | |
- _APP_INFLUXDB_HOST | |
- _APP_INFLUXDB_PORT | |
- _APP_STORAGE_LIMIT | |
- _APP_STORAGE_ANTIVIRUS | |
- _APP_STORAGE_ANTIVIRUS_HOST | |
- _APP_STORAGE_ANTIVIRUS_PORT | |
- _APP_FUNCTIONS_TIMEOUT | |
- _APP_FUNCTIONS_CONTAINERS | |
- _APP_FUNCTIONS_CPUS | |
- _APP_FUNCTIONS_MEMORY | |
- _APP_FUNCTIONS_MEMORY_SWAP | |
- _APP_FUNCTIONS_RUNTIMES | |
deploy: | |
replicas: 1 | |
placement: | |
constraints: | |
- "node.role==manager" | |
appwrite-worker-usage: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-usage | |
container_name: appwrite-worker-usage | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_STATSD_HOST | |
- _APP_STATSD_PORT | |
appwrite-worker-audits: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-audits | |
container_name: appwrite-worker-audits | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
appwrite-worker-webhooks: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-webhooks | |
container_name: appwrite-worker-webhooks | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
appwrite-worker-tasks: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-tasks | |
container_name: appwrite-worker-tasks | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_OPENSSL_KEY_V1 | |
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
appwrite-worker-deletes: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-deletes | |
container_name: appwrite-worker-deletes | |
networks: | |
- appwrite | |
volumes: | |
- /nfs/uploads:/storage/uploads:rw | |
- /nfs/cache:/storage/cache:rw | |
- /nfs/certificates:/storage/certificates:rw | |
environment: | |
- _APP_ENV | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
appwrite-worker-certificates: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-certificates | |
container_name: appwrite-worker-certificates | |
networks: | |
- appwrite | |
volumes: | |
- /nfs/config:/storage/config:rw | |
- /nfs/certificates:/storage/certificates:rw | |
environment: | |
- _APP_ENV | |
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_DOMAIN_TARGET | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
appwrite-worker-functions: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-functions | |
container_name: appwrite-worker-functions | |
networks: | |
- appwrite | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
- /nfs/functions:/storage/functions:rw | |
- /tmp:/tmp:rw | |
deploy: | |
replicas: 2 | |
environment: | |
- _APP_ENV | |
- _APP_OPENSSL_KEY_V1 | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
- _APP_FUNCTIONS_TIMEOUT | |
- _APP_FUNCTIONS_CONTAINERS | |
- _APP_FUNCTIONS_CPUS | |
- _APP_FUNCTIONS_MEMORY | |
- _APP_FUNCTIONS_MEMORY_SWAP | |
- _APP_FUNCTIONS_RUNTIMES | |
- _APP_USAGE_STATS | |
appwrite-worker-mails: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: worker-mails | |
container_name: appwrite-worker-mails | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_SYSTEM_EMAIL_NAME | |
- _APP_SYSTEM_EMAIL_ADDRESS | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_SMTP_HOST | |
- _APP_SMTP_PORT | |
- _APP_SMTP_SECURE | |
- _APP_SMTP_USERNAME | |
- _APP_SMTP_PASSWORD | |
appwrite-maintenance: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: maintenance | |
container_name: appwrite-maintenance | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
- _APP_MAINTENANCE_INTERVAL | |
- _APP_MAINTENANCE_RETENTION_EXECUTION | |
- _APP_MAINTENANCE_RETENTION_ABUSE | |
- _APP_MAINTENANCE_RETENTION_AUDIT | |
appwrite-schedule: | |
image: appwrite/appwrite:0.8.0 | |
entrypoint: schedule | |
container_name: appwrite-schedule | |
networks: | |
- appwrite | |
environment: | |
- _APP_ENV | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
mariadb: | |
image: appwrite/mariadb:1.2.0 # fix issues when upgrading using: mysql_upgrade -u root -p | |
container_name: appwrite-mariadb | |
networks: | |
- appwrite | |
volumes: | |
- /nfs/mariadb:/var/lib/mysql:rw | |
environment: | |
- MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS} | |
- MYSQL_DATABASE=${_APP_DB_SCHEMA} | |
- MYSQL_USER=${_APP_DB_USER} | |
- MYSQL_PASSWORD=${_APP_DB_PASS} | |
command: 'mysqld --innodb-flush-method=fsync' | |
redis: | |
image: redis:6.0-alpine3.12 | |
container_name: appwrite-redis | |
networks: | |
- appwrite | |
volumes: | |
- /nfs/redis:/data:rw | |
# clamav: | |
# image: appwrite/clamav:1.2.0 | |
# container_name: appwrite-clamav | |
# restart: unless-stopped | |
# networks: | |
# - appwrite | |
# volumes: | |
# - appwrite-uploads:/storage/uploads | |
influxdb: | |
image: appwrite/influxdb:1.0.0 | |
container_name: appwrite-influxdb | |
networks: | |
- appwrite | |
volumes: | |
- /nfs/influxdb:/var/lib/influxdb:rw | |
telegraf: | |
image: appwrite/telegraf:1.0.0 | |
container_name: appwrite-telegraf | |
networks: | |
- appwrite | |
networks: | |
gateway: | |
appwrite: | |
driver: overlay | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment