Created
March 30, 2022 00:27
-
-
Save matigumma/39b61488957b0c10e69c0c07e13b3d1b to your computer and use it in GitHub Desktop.
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.3' | |
services: | |
traefik: | |
image: traefik:v2.6 | |
container_name: traefik | |
restart: unless-stopped | |
ports: | |
- 80:80 | |
- 443:443 | |
- 1935:1935 | |
command: | |
- --api=true | |
- --api.dashboard=true | |
- --providers.file.directory=/storage/config | |
- --providers.file.watch=true | |
- --providers.docker.endpoint=unix:///var/run/docker.sock | |
- --providers.docker=true | |
- --providers.docker.exposedbydefault=false | |
- --entrypoints.appwrite_web.address=:80 | |
- --entrypoints.appwrite_websecure.address=:443 | |
- --entrypoints.rtmp.address=:1935 | |
- --global.sendAnonymousUsage | |
- --log.level=WARN | |
- --certificatesresolvers.mytlschallenge.acme.httpchallenge=true | |
- --certificatesresolvers.mytlschallenge.acme.httpchallenge.entrypoint=appwrite_web | |
- --certificatesresolvers.mytlschallenge.acme.tlschallenge=true | |
- --certificatesresolvers.mytlschallenge.acme.email=admin@xxxxxx | |
- --certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
- /etc/localtime:/etc/localtime:ro | |
- ./letsencrypt:/letsencrypt | |
- appwrite-config:/storage/config:ro | |
networks: | |
- web | |
- gateway | |
- appwrite | |
labels: | |
- "traefik.enable=true" | |
## global redirect to https | |
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)" | |
- "traefik.http.routers.http-catchall.entrypoints=appwrite_web" | |
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https" | |
## middleware redirect | |
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" | |
# my containers... | |
# appwrite | |
appwrite: | |
image: appwrite/appwrite:0.13.4 | |
container_name: appwrite | |
restart: unless-stopped | |
networks: | |
- web | |
- appwrite | |
labels: | |
- traefik.enable=true | |
- "traefik.http.routers.api-appwrite.rule=Host(`api.xxx.xx`)" | |
- "traefik.http.routers.api-appwrite.entrypoints=appwrite_web,appwrite_websecure" | |
- "traefik.http.routers.api-appwrite.tls.certresolver=mytlschallenge" | |
volumes: | |
- appwrite-uploads:/storage/uploads:rw | |
- appwrite-cache:/storage/cache:rw | |
- appwrite-config:/storage/config:rw | |
- appwrite-functions:/storage/functions:rw | |
depends_on: | |
- mariadb | |
- redis | |
# - clamav | |
- influxdb | |
environment: | |
- _APP_ENV | |
- _APP_WORKER_PER_CORE | |
- _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_STORAGE_DEVICE | |
- _APP_STORAGE_S3_ACCESS_KEY | |
- _APP_STORAGE_S3_SECRET | |
- _APP_STORAGE_S3_REGION | |
- _APP_STORAGE_S3_BUCKET | |
- _APP_STORAGE_DO_SPACES_ACCESS_KEY | |
- _APP_STORAGE_DO_SPACES_SECRET | |
- _APP_STORAGE_DO_SPACES_REGION | |
- _APP_STORAGE_DO_SPACES_BUCKET | |
- _APP_FUNCTIONS_SIZE_LIMIT | |
- _APP_FUNCTIONS_TIMEOUT | |
- _APP_FUNCTIONS_BUILD_TIMEOUT | |
- _APP_FUNCTIONS_CONTAINERS | |
- _APP_FUNCTIONS_CPUS | |
- _APP_FUNCTIONS_MEMORY | |
- _APP_FUNCTIONS_MEMORY_SWAP | |
- _APP_EXECUTOR_SECRET | |
- _APP_FUNCTIONS_RUNTIMES | |
- _APP_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
- _APP_STATSD_HOST | |
- _APP_STATSD_PORT | |
- _APP_MAINTENANCE_INTERVAL | |
- _APP_MAINTENANCE_RETENTION_EXECUTION | |
- _APP_MAINTENANCE_RETENTION_ABUSE | |
- _APP_MAINTENANCE_RETENTION_AUDIT | |
appwrite-realtime: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: realtime | |
container_name: appwrite-realtime | |
restart: unless-stopped | |
labels: | |
- "traefik.enable=true" | |
- "traefik.docker.network=appwrite" | |
- "traefik.http.services.appwrite_realtime.loadbalancer.server.port=80" | |
#ws | |
- traefik.http.routers.appwrite_realtime_ws.entrypoints=appwrite_web | |
- traefik.http.routers.appwrite_realtime_ws.rule=PathPrefix(`/v1/realtime`) | |
- traefik.http.routers.appwrite_realtime_ws.service=appwrite_realtime | |
# wss | |
- traefik.http.routers.appwrite_realtime_wss.entrypoints=appwrite_websecure | |
- traefik.http.routers.appwrite_realtime_wss.rule=PathPrefix(`/v1/realtime`) | |
- traefik.http.routers.appwrite_realtime_wss.service=appwrite_realtime | |
- traefik.http.routers.appwrite_realtime_wss.tls=true | |
- traefik.http.routers.appwrite_realtime_wss.tls.certresolver=mytlschallenge | |
networks: | |
- web | |
- appwrite | |
depends_on: | |
- mariadb | |
- redis | |
environment: | |
- _APP_ENV | |
- _APP_WORKER_PER_CORE | |
- _APP_OPTIONS_ABUSE | |
- _APP_OPENSSL_KEY_V1 | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
- _APP_USAGE_STATS | |
- _APP_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
appwrite-executor: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: executor | |
container_name: appwrite-executor | |
restart: unless-stopped | |
stop_signal: SIGINT | |
networks: | |
- appwrite | |
- runtimes | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
- appwrite-functions:/storage/functions:rw | |
- /tmp:/tmp:rw | |
depends_on: | |
- redis | |
- mariadb | |
- appwrite | |
environment: | |
- DOCKERHUB_PULL_USERNAME | |
- DOCKERHUB_PULL_PASSWORD | |
- _APP_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
- _APP_VERSION | |
- _APP_ENV | |
- _APP_STORAGE_DEVICE | |
- _APP_STORAGE_S3_ACCESS_KEY | |
- _APP_STORAGE_S3_SECRET | |
- _APP_STORAGE_S3_REGION | |
- _APP_STORAGE_S3_BUCKET | |
- _APP_STORAGE_DO_SPACES_ACCESS_KEY | |
- _APP_STORAGE_DO_SPACES_SECRET | |
- _APP_STORAGE_DO_SPACES_REGION | |
- _APP_STORAGE_DO_SPACES_BUCKET | |
- _APP_FUNCTIONS_CPUS | |
- _APP_FUNCTIONS_MEMORY | |
- _APP_FUNCTIONS_MEMORY_SWAP | |
- _APP_FUNCTIONS_TIMEOUT | |
- _APP_EXECUTOR_SECRET | |
- _APP_FUNCTIONS_RUNTIMES | |
- _APP_FUNCTIONS_INACTIVE_THRESHOLD | |
- _APP_EXECUTOR_RUNTIME_NETWORK | |
appwrite-worker-database: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-database | |
container_name: appwrite-worker-database | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
- mariadb | |
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_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
appwrite-worker-builds: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-builds | |
container_name: appwrite-worker-builds | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
- mariadb | |
environment: | |
- _APP_ENV | |
- _APP_OPENSSL_KEY_V1 | |
- _APP_EXECUTOR_SECRET | |
- _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_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
appwrite-worker-audits: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-audits | |
container_name: appwrite-worker-audits | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
- mariadb | |
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_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
appwrite-worker-webhooks: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-webhooks | |
container_name: appwrite-worker-webhooks | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
- mariadb | |
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_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
appwrite-worker-deletes: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-deletes | |
container_name: appwrite-worker-deletes | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
- mariadb | |
volumes: | |
- appwrite-uploads:/storage/uploads:rw | |
- appwrite-cache:/storage/cache:rw | |
# - appwrite-certificates:/storage/certificates:rw | |
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_STORAGE_DEVICE | |
- _APP_STORAGE_S3_ACCESS_KEY | |
- _APP_STORAGE_S3_SECRET | |
- _APP_STORAGE_S3_REGION | |
- _APP_STORAGE_S3_BUCKET | |
- _APP_STORAGE_DO_SPACES_ACCESS_KEY | |
- _APP_STORAGE_DO_SPACES_SECRET | |
- _APP_STORAGE_DO_SPACES_REGION | |
- _APP_STORAGE_DO_SPACES_BUCKET | |
- _APP_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
- _APP_EXECUTOR_SECRET | |
# appwrite-worker-certificates: | |
# image: appwrite/appwrite:0.13.4 | |
# entrypoint: worker-certificates | |
# container_name: appwrite-worker-certificates | |
# restart: unless-stopped | |
# networks: | |
# - appwrite | |
# depends_on: | |
# - redis | |
# - mariadb | |
# volumes: | |
# - appwrite-config:/storage/config:rw | |
# - appwrite-certificates:/storage/certificates:rw | |
# 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_DOMAIN_TARGET | |
# - _APP_DB_HOST | |
# - _APP_DB_PORT | |
# - _APP_DB_SCHEMA | |
# - _APP_DB_USER | |
# - _APP_DB_PASS | |
# - _APP_LOGGING_PROVIDER | |
# - _APP_LOGGING_CONFIG | |
appwrite-worker-functions: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-functions | |
container_name: appwrite-worker-functions | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
- mariadb | |
- appwrite-executor | |
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_EXECUTOR_SECRET | |
- _APP_USAGE_STATS | |
- DOCKERHUB_PULL_USERNAME | |
- DOCKERHUB_PULL_PASSWORD | |
appwrite-worker-mails: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: worker-mails | |
container_name: appwrite-worker-mails | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
environment: | |
- _APP_ENV | |
- _APP_OPENSSL_KEY_V1 | |
- _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 | |
- _APP_LOGGING_PROVIDER | |
- _APP_LOGGING_CONFIG | |
appwrite-maintenance: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: maintenance | |
container_name: appwrite-maintenance | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
environment: | |
- _APP_ENV | |
- _APP_OPENSSL_KEY_V1 | |
- _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-usage: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: usage | |
container_name: appwrite-usage | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- influxdb | |
- mariadb | |
environment: | |
- _APP_ENV | |
- _APP_OPENSSL_KEY_V1 | |
- _APP_DB_HOST | |
- _APP_DB_PORT | |
- _APP_DB_SCHEMA | |
- _APP_DB_USER | |
- _APP_DB_PASS | |
- _APP_INFLUXDB_HOST | |
- _APP_INFLUXDB_PORT | |
- _APP_USAGE_AGGREGATION_INTERVAL | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
appwrite-schedule: | |
image: appwrite/appwrite:0.13.4 | |
entrypoint: schedule | |
container_name: appwrite-schedule | |
restart: unless-stopped | |
networks: | |
- appwrite | |
depends_on: | |
- redis | |
environment: | |
- _APP_ENV | |
- _APP_REDIS_HOST | |
- _APP_REDIS_PORT | |
- _APP_REDIS_USER | |
- _APP_REDIS_PASS | |
mariadb: | |
image: mariadb:10.7 # fix issues when upgrading using: mysql_upgrade -u root -p | |
container_name: appwrite-mariadb | |
restart: unless-stopped | |
networks: | |
- appwrite | |
volumes: | |
- appwrite-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 | |
restart: unless-stopped | |
networks: | |
- appwrite | |
volumes: | |
- appwrite-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 | |
restart: unless-stopped | |
networks: | |
- appwrite | |
volumes: | |
- appwrite-influxdb:/var/lib/influxdb:rw | |
telegraf: | |
image: appwrite/telegraf:1.2.0 | |
container_name: appwrite-telegraf | |
restart: unless-stopped | |
networks: | |
- appwrite | |
environment: | |
- _APP_INFLUXDB_HOST | |
- _APP_INFLUXDB_PORT | |
networks: | |
web: | |
external: true | |
gateway: | |
appwrite: | |
runtimes: | |
volumes: | |
appwrite-mariadb: | |
appwrite-redis: | |
appwrite-cache: | |
appwrite-uploads: | |
appwrite-functions: | |
appwrite-influxdb: | |
appwrite-config: | |
appwrite-executor: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment