Files
appwrite/compose.dokploy.yml
2025-04-08 03:10:52 +02:00

1351 lines
39 KiB
YAML

# created with `docker compose -f compose.yml config --no-path-resolution`
name: appwrite
services:
appwrite:
build:
context: .
dockerfile: Dockerfile
args:
DEBUG: "false"
TESTING: "false"
VERSION: dev
container_name: appwrite
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- php
- -e
- app/http.php
environment:
_APP_ASSISTANT_OPENAI_API_KEY: ""
_APP_COMPRESSION_MIN_SIZE_BYTES: "1024"
_APP_COMPUTE_BUILD_TIMEOUT: "900"
_APP_COMPUTE_CPUS: "8"
_APP_COMPUTE_MEMORY: "8192"
_APP_COMPUTE_SIZE_LIMIT: "30000000"
_APP_COMPUTE_TIMEOUT: "900"
_APP_CONSOLE_COUNTRIES_DENYLIST: AQ
_APP_CONSOLE_HOSTNAMES: localhost,appwrite.io,*.appwrite.io
_APP_CONSOLE_SESSION_ALERTS: enabled
_APP_CONSOLE_WHITELIST_EMAILS: ""
_APP_CONSOLE_WHITELIST_IPS: ""
_APP_CONSOLE_WHITELIST_ROOT: disabled
_APP_DATABASE_SHARED_NAMESPACE: null
_APP_DATABASE_SHARED_TABLES: null
_APP_DATABASE_SHARED_TABLES_V1: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: traefik
_APP_DOMAIN_FUNCTIONS: functions.localhost
_APP_DOMAIN_SITES: sites.localhost
_APP_DOMAIN_TARGET: test.appwrite.io
_APP_EDITION: self-hosted
_APP_EMAIL_SECURITY: security@appwrite.io
_APP_ENV: development
_APP_EXECUTOR_HOST: http://exc1/v1
_APP_EXECUTOR_SECRET: your-secret-key
_APP_EXPERIMENT_LOGGING_CONFIG: null
_APP_EXPERIMENT_LOGGING_PROVIDER: null
_APP_FUNCTIONS_CREATION_ABUSE_LIMIT: "5000"
_APP_FUNCTIONS_RUNTIMES: php-8.0,node-18.0,python-3.9,ruby-3.1
_APP_GRAPHQL_MAX_BATCH_SIZE: "10"
_APP_GRAPHQL_MAX_COMPLEXITY: "250"
_APP_GRAPHQL_MAX_DEPTH: "4"
_APP_LOCALE: en
_APP_LOGGING_CONFIG: ""
_APP_MAINTENANCE_INTERVAL: "86400"
_APP_MAINTENANCE_RETENTION_ABUSE: "86400"
_APP_MAINTENANCE_RETENTION_AUDIT: "1209600"
_APP_MAINTENANCE_RETENTION_CACHE: "2592000"
_APP_MAINTENANCE_RETENTION_EXECUTION: "1209600"
_APP_MAINTENANCE_RETENTION_SCHEDULES: "86400"
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY: "8640000"
_APP_MESSAGE_EMAIL_TEST_DSN: ""
_APP_MESSAGE_PUSH_TEST_DSN: ""
_APP_MESSAGE_SMS_TEST_DSN: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_ID: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_OPTIONS_ABUSE: disabled
_APP_OPTIONS_COMPUTE_FORCE_HTTPS: disabled
_APP_OPTIONS_FORCE_HTTPS: disabled
_APP_OPTIONS_ROUTER_PROTECTION: disabled
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SITES_RUNTIMES: static-1,node-22,flutter-3.29
_APP_SMS_FROM: "+123456789"
_APP_SMS_PROVIDER: sms://username:password@mock
_APP_SMTP_HOST: maildev
_APP_SMTP_PASSWORD: ""
_APP_SMTP_PORT: "1025"
_APP_SMTP_SECURE: ""
_APP_SMTP_USERNAME: ""
_APP_STORAGE_ANTIVIRUS: disabled
_APP_STORAGE_ANTIVIRUS_HOST: clamav
_APP_STORAGE_ANTIVIRUS_PORT: "3310"
_APP_STORAGE_BACKBLAZE_ACCESS_KEY: ""
_APP_STORAGE_BACKBLAZE_BUCKET: ""
_APP_STORAGE_BACKBLAZE_REGION: us-west-004
_APP_STORAGE_BACKBLAZE_SECRET: ""
_APP_STORAGE_DEVICE: Local
_APP_STORAGE_DO_SPACES_ACCESS_KEY: ""
_APP_STORAGE_DO_SPACES_BUCKET: ""
_APP_STORAGE_DO_SPACES_REGION: us-east-1
_APP_STORAGE_DO_SPACES_SECRET: ""
_APP_STORAGE_LIMIT: "30000000"
_APP_STORAGE_LINODE_ACCESS_KEY: ""
_APP_STORAGE_LINODE_BUCKET: ""
_APP_STORAGE_LINODE_REGION: eu-central-1
_APP_STORAGE_LINODE_SECRET: ""
_APP_STORAGE_PREVIEW_LIMIT: "20000000"
_APP_STORAGE_S3_ACCESS_KEY: ""
_APP_STORAGE_S3_BUCKET: ""
_APP_STORAGE_S3_ENDPOINT: ""
_APP_STORAGE_S3_REGION: us-east-1
_APP_STORAGE_S3_SECRET: ""
_APP_STORAGE_WASABI_ACCESS_KEY: ""
_APP_STORAGE_WASABI_BUCKET: ""
_APP_STORAGE_WASABI_REGION: eu-central-1
_APP_STORAGE_WASABI_SECRET: ""
_APP_SYSTEM_EMAIL_ADDRESS: noreply@appwrite.io
_APP_SYSTEM_EMAIL_NAME: Appwrite
_APP_SYSTEM_RESPONSE_FORMAT: ""
_APP_SYSTEM_TEAM_EMAIL: team@appwrite.io
_APP_USAGE_STATS: enabled
_APP_VCS_GITHUB_APP_ID: ""
_APP_VCS_GITHUB_APP_NAME: ""
_APP_VCS_GITHUB_CLIENT_ID: ""
_APP_VCS_GITHUB_CLIENT_SECRET: ""
_APP_VCS_GITHUB_PRIVATE_KEY: disabled
_APP_VCS_GITHUB_WEBHOOK_SECRET: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
labels:
traefik.constraint-label-stack: appwrite
traefik.docker.network: appwrite
traefik.enable: "true"
traefik.http.routers.appwrite_api_http.entrypoints: appwrite_web
traefik.http.routers.appwrite_api_http.rule: PathPrefix(`/`)
traefik.http.routers.appwrite_api_http.service: appwrite_api
traefik.http.routers.appwrite_api_https.entrypoints: appwrite_websecure
traefik.http.routers.appwrite_api_https.rule: PathPrefix(`/`)
traefik.http.routers.appwrite_api_https.service: appwrite_api
traefik.http.routers.appwrite_api_https.tls: "true"
traefik.http.services.appwrite_api.loadbalancer.server.port: "80"
networks:
appwrite: null
volumes:
- type: volume
source: appwrite-uploads
target: /storage/uploads
volume: {}
- type: volume
source: appwrite-cache
target: /storage/cache
volume: {}
- type: volume
source: appwrite-config
target: /storage/config
volume: {}
- type: volume
source: appwrite-certificates
target: /storage/certificates
volume: {}
- type: volume
source: appwrite-functions
target: /storage/functions
volume: {}
- type: volume
source: appwrite-sites
target: /storage/sites
volume: {}
- type: volume
source: appwrite-builds
target: /storage/builds
volume: {}
- type: bind
source: phpunit.xml
target: /usr/src/code/phpunit.xml
bind:
create_host_path: true
- type: bind
source: tests
target: /usr/src/code/tests
bind:
create_host_path: true
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: docs
target: /usr/src/code/docs
bind:
create_host_path: true
- type: bind
source: public
target: /usr/src/code/public
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
- type: bind
source: dev
target: /usr/src/code/dev
bind:
create_host_path: true
appwrite-assistant:
container_name: appwrite-assistant
environment:
_APP_ASSISTANT_OPENAI_API_KEY: ""
image: appwrite/assistant:0.7.0
networks:
appwrite: null
appwrite-browser:
container_name: appwrite-browser
image: appwrite/browser:0.2.2
networks:
appwrite: null
appwrite-console:
container_name: appwrite-console
image: appwrite/console:5.3.0-sites-rc.36
labels:
traefik.constraint-label-stack: appwrite
traefik.docker.network: appwrite
traefik.enable: "true"
traefik.http.routers.appwrite_console_http.entrypoints: appwrite_web
traefik.http.routers.appwrite_console_http.rule: PathPrefix(`/console`)
traefik.http.routers.appwrite_console_http.service: appwrite_console
traefik.http.routers.appwrite_console_https.entrypoints: appwrite_websecure
traefik.http.routers.appwrite_console_https.rule: PathPrefix(`/console`)
traefik.http.routers.appwrite_console_https.service: appwrite_console
traefik.http.routers.appwrite_console_https.tls: "true"
traefik.http.services.appwrite_console.loadbalancer.server.port: "80"
networks:
appwrite: null
restart: unless-stopped
appwrite-realtime:
container_name: appwrite-realtime
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- realtime
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_OPTIONS_ABUSE: disabled
_APP_OPTIONS_ROUTER_PROTECTION: disabled
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
labels:
traefik.constraint-label-stack: appwrite
traefik.docker.network: appwrite
traefik.enable: "true"
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
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.services.appwrite_realtime.loadbalancer.server.port: "80"
networks:
appwrite: null
restart: unless-stopped
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-task-maintenance:
container_name: appwrite-task-maintenance
depends_on:
redis:
condition: service_started
required: true
entrypoint:
- maintenance
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: traefik
_APP_DOMAIN_FUNCTIONS: functions.localhost
_APP_DOMAIN_TARGET: test.appwrite.io
_APP_ENV: development
_APP_MAINTENANCE_DELAY: ""
_APP_MAINTENANCE_INTERVAL: "86400"
_APP_MAINTENANCE_RETENTION_ABUSE: "86400"
_APP_MAINTENANCE_RETENTION_AUDIT: "1209600"
_APP_MAINTENANCE_RETENTION_CACHE: "2592000"
_APP_MAINTENANCE_RETENTION_EXECUTION: "1209600"
_APP_MAINTENANCE_RETENTION_SCHEDULES: "86400"
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY: "8640000"
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-task-scheduler-executions:
container_name: appwrite-task-scheduler-executions
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- schedule-executions
environment:
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-task-scheduler-functions:
container_name: appwrite-task-scheduler-functions
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- schedule-functions
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-task-scheduler-messages:
container_name: appwrite-task-scheduler-messages
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- schedule-messages
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-audits:
container_name: appwrite-worker-audits
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-audits
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-builds:
container_name: appwrite-worker-builds
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-builds
environment:
_APP_COMPUTE_BUILD_TIMEOUT: "900"
_APP_COMPUTE_CPUS: "8"
_APP_COMPUTE_MEMORY: "8192"
_APP_COMPUTE_SIZE_LIMIT: "30000000"
_APP_COMPUTE_TIMEOUT: "900"
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: traefik
_APP_DOMAIN_SITES: sites.localhost
_APP_ENV: development
_APP_EXECUTOR_HOST: http://exc1/v1
_APP_EXECUTOR_SECRET: your-secret-key
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_OPTIONS_COMPUTE_FORCE_HTTPS: disabled
_APP_OPTIONS_FORCE_HTTPS: disabled
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_STORAGE_BACKBLAZE_ACCESS_KEY: ""
_APP_STORAGE_BACKBLAZE_BUCKET: ""
_APP_STORAGE_BACKBLAZE_REGION: us-west-004
_APP_STORAGE_BACKBLAZE_SECRET: ""
_APP_STORAGE_DEVICE: Local
_APP_STORAGE_DO_SPACES_ACCESS_KEY: ""
_APP_STORAGE_DO_SPACES_BUCKET: ""
_APP_STORAGE_DO_SPACES_REGION: us-east-1
_APP_STORAGE_DO_SPACES_SECRET: ""
_APP_STORAGE_LINODE_ACCESS_KEY: ""
_APP_STORAGE_LINODE_BUCKET: ""
_APP_STORAGE_LINODE_REGION: eu-central-1
_APP_STORAGE_LINODE_SECRET: ""
_APP_STORAGE_S3_ACCESS_KEY: ""
_APP_STORAGE_S3_BUCKET: ""
_APP_STORAGE_S3_ENDPOINT: ""
_APP_STORAGE_S3_REGION: us-east-1
_APP_STORAGE_S3_SECRET: ""
_APP_STORAGE_WASABI_ACCESS_KEY: ""
_APP_STORAGE_WASABI_BUCKET: ""
_APP_STORAGE_WASABI_REGION: eu-central-1
_APP_STORAGE_WASABI_SECRET: ""
_APP_VCS_GITHUB_APP_ID: ""
_APP_VCS_GITHUB_APP_NAME: ""
_APP_VCS_GITHUB_PRIVATE_KEY: disabled
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: volume
source: appwrite-functions
target: /storage/functions
volume: {}
- type: volume
source: appwrite-sites
target: /storage/sites
volume: {}
- type: volume
source: appwrite-builds
target: /storage/builds
volume: {}
- type: volume
source: appwrite-uploads
target: /storage/uploads
volume: {}
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-certificates:
container_name: appwrite-worker-certificates
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-certificates
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: traefik
_APP_DOMAIN_FUNCTIONS: functions.localhost
_APP_DOMAIN_TARGET: test.appwrite.io
_APP_EMAIL_CERTIFICATES: certificates@appwrite.io
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: volume
source: appwrite-config
target: /storage/config
volume: {}
- type: volume
source: appwrite-certificates
target: /storage/certificates
volume: {}
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-databases:
container_name: appwrite-worker-databases
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-databases
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_QUEUE_NAME: null
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
_APP_WORKERS_NUM: null
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-deletes:
container_name: appwrite-worker-deletes
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-deletes
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DATABASE_SHARED_TABLES_V1: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_EMAIL_CERTIFICATES: certificates@appwrite.io
_APP_ENV: development
_APP_EXECUTOR_HOST: http://exc1/v1
_APP_EXECUTOR_SECRET: your-secret-key
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_STORAGE_BACKBLAZE_ACCESS_KEY: ""
_APP_STORAGE_BACKBLAZE_BUCKET: ""
_APP_STORAGE_BACKBLAZE_REGION: us-west-004
_APP_STORAGE_BACKBLAZE_SECRET: ""
_APP_STORAGE_DEVICE: Local
_APP_STORAGE_DO_SPACES_ACCESS_KEY: ""
_APP_STORAGE_DO_SPACES_BUCKET: ""
_APP_STORAGE_DO_SPACES_REGION: us-east-1
_APP_STORAGE_DO_SPACES_SECRET: ""
_APP_STORAGE_LINODE_ACCESS_KEY: ""
_APP_STORAGE_LINODE_BUCKET: ""
_APP_STORAGE_LINODE_REGION: eu-central-1
_APP_STORAGE_LINODE_SECRET: ""
_APP_STORAGE_S3_ACCESS_KEY: ""
_APP_STORAGE_S3_BUCKET: ""
_APP_STORAGE_S3_ENDPOINT: ""
_APP_STORAGE_S3_REGION: us-east-1
_APP_STORAGE_S3_SECRET: ""
_APP_STORAGE_WASABI_ACCESS_KEY: ""
_APP_STORAGE_WASABI_BUCKET: ""
_APP_STORAGE_WASABI_REGION: eu-central-1
_APP_STORAGE_WASABI_SECRET: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: volume
source: appwrite-uploads
target: /storage/uploads
volume: {}
- type: volume
source: appwrite-cache
target: /storage/cache
volume: {}
- type: volume
source: appwrite-functions
target: /storage/functions
volume: {}
- type: volume
source: appwrite-sites
target: /storage/sites
volume: {}
- type: volume
source: appwrite-builds
target: /storage/builds
volume: {}
- type: volume
source: appwrite-certificates
target: /storage/certificates
volume: {}
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-functions:
container_name: appwrite-worker-functions
depends_on:
mariadb:
condition: service_started
required: true
openruntimes-executor:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-functions
environment:
_APP_COMPUTE_BUILD_TIMEOUT: "900"
_APP_COMPUTE_CPUS: "8"
_APP_COMPUTE_MEMORY: "8192"
_APP_COMPUTE_TIMEOUT: "900"
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOCKER_HUB_PASSWORD: ""
_APP_DOCKER_HUB_USERNAME: ""
_APP_DOMAIN: traefik
_APP_ENV: development
_APP_EXECUTOR_HOST: http://exc1/v1
_APP_EXECUTOR_SECRET: your-secret-key
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: null
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_OPTIONS_FORCE_HTTPS: disabled
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-mails:
container_name: appwrite-worker-mails
depends_on:
redis:
condition: service_started
required: true
entrypoint:
- worker-mails
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DOMAIN: traefik
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_OPTIONS_FORCE_HTTPS: disabled
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SMTP_HOST: maildev
_APP_SMTP_PASSWORD: ""
_APP_SMTP_PORT: "1025"
_APP_SMTP_SECURE: ""
_APP_SMTP_USERNAME: ""
_APP_SYSTEM_EMAIL_ADDRESS: noreply@appwrite.io
_APP_SYSTEM_EMAIL_NAME: Appwrite
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-messaging:
container_name: appwrite-worker-messaging
depends_on:
redis:
condition: service_started
required: true
entrypoint:
- worker-messaging
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SMS_FROM: "+123456789"
_APP_SMS_PROJECTS_DENY_LIST: ""
_APP_SMS_PROVIDER: sms://username:password@mock
_APP_STORAGE_BACKBLAZE_ACCESS_KEY: ""
_APP_STORAGE_BACKBLAZE_BUCKET: ""
_APP_STORAGE_BACKBLAZE_REGION: us-west-004
_APP_STORAGE_BACKBLAZE_SECRET: ""
_APP_STORAGE_DEVICE: Local
_APP_STORAGE_DO_SPACES_ACCESS_KEY: ""
_APP_STORAGE_DO_SPACES_BUCKET: ""
_APP_STORAGE_DO_SPACES_REGION: us-east-1
_APP_STORAGE_DO_SPACES_SECRET: ""
_APP_STORAGE_LINODE_ACCESS_KEY: ""
_APP_STORAGE_LINODE_BUCKET: ""
_APP_STORAGE_LINODE_REGION: eu-central-1
_APP_STORAGE_LINODE_SECRET: ""
_APP_STORAGE_S3_ACCESS_KEY: ""
_APP_STORAGE_S3_BUCKET: ""
_APP_STORAGE_S3_ENDPOINT: ""
_APP_STORAGE_S3_REGION: us-east-1
_APP_STORAGE_S3_SECRET: ""
_APP_STORAGE_WASABI_ACCESS_KEY: ""
_APP_STORAGE_WASABI_BUCKET: ""
_APP_STORAGE_WASABI_REGION: eu-central-1
_APP_STORAGE_WASABI_SECRET: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
restart: unless-stopped
volumes:
- type: volume
source: appwrite-uploads
target: /storage/uploads
volume: {}
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-migrations:
container_name: appwrite-worker-migrations
depends_on:
mariadb:
condition: service_started
required: true
entrypoint:
- worker-migrations
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: traefik
_APP_DOMAIN_TARGET: test.appwrite.io
_APP_EMAIL_SECURITY: security@appwrite.io
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_ID: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
restart: unless-stopped
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-stats-resources:
container_name: appwrite-worker-stats-resources
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-stats-resources
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_USAGE_AGGREGATION_INTERVAL: "30"
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-stats-usage:
container_name: appwrite-worker-stats-usage
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-stats-usage
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_USAGE_AGGREGATION_INTERVAL: "30"
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-stats-usage-dump:
container_name: appwrite-worker-stats-usage-dump
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-stats-usage-dump
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_STATS_USAGE_DUAL_WRITING_DBS: database_db_main
_APP_USAGE_AGGREGATION_INTERVAL: "30"
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
appwrite-worker-webhooks:
container_name: appwrite-worker-webhooks
depends_on:
mariadb:
condition: service_started
required: true
redis:
condition: service_started
required: true
entrypoint:
- worker-webhooks
environment:
_APP_DATABASE_SHARED_TABLES: null
_APP_DB_HOST: mariadb
_APP_DB_PASS: password
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_EMAIL_SECURITY: security@appwrite.io
_APP_ENV: development
_APP_LOGGING_CONFIG: ""
_APP_OPENSSL_KEY_V1: your-secret-key
_APP_REDIS_HOST: redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WEBHOOK_MAX_FAILED_ATTEMPTS: "10"
_APP_WORKER_PER_CORE: "6"
image: appwrite-dev
networks:
appwrite: null
volumes:
- type: bind
source: app
target: /usr/src/code/app
bind:
create_host_path: true
- type: bind
source: src
target: /usr/src/code/src
bind:
create_host_path: true
mariadb:
command:
- mysqld
- --innodb-flush-method=fsync
container_name: appwrite-mariadb
environment:
MARIADB_AUTO_UPGRADE: "1"
MYSQL_DATABASE: appwrite
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootsecretpassword
MYSQL_USER: user
image: mariadb:10.11
networks:
appwrite: null
volumes:
- type: volume
source: appwrite-mariadb
target: /var/lib/mysql
volume: {}
openruntimes-executor:
container_name: openruntimes-executor
environment:
OPR_EXECUTOR_DOCKER_HUB_PASSWORD: ""
OPR_EXECUTOR_DOCKER_HUB_USERNAME: ""
OPR_EXECUTOR_ENV: development
OPR_EXECUTOR_IMAGE_PULL: enabled
OPR_EXECUTOR_INACTIVE_TRESHOLD: "600"
OPR_EXECUTOR_LOGGING_CONFIG: ""
OPR_EXECUTOR_MAINTENANCE_INTERVAL: "600"
OPR_EXECUTOR_NETWORK: runtimes
OPR_EXECUTOR_RUNTIME_VERSIONS: v2,v5
OPR_EXECUTOR_RUNTIMES: php-8.0,node-18.0,python-3.9,ruby-3.1,static-1,node-22,flutter-3.29
OPR_EXECUTOR_SECRET: your-secret-key
OPR_EXECUTOR_STORAGE_BACKBLAZE_ACCESS_KEY: ""
OPR_EXECUTOR_STORAGE_BACKBLAZE_BUCKET: ""
OPR_EXECUTOR_STORAGE_BACKBLAZE_REGION: us-west-004
OPR_EXECUTOR_STORAGE_BACKBLAZE_SECRET: ""
OPR_EXECUTOR_STORAGE_DEVICE: Local
OPR_EXECUTOR_STORAGE_DO_SPACES_ACCESS_KEY: ""
OPR_EXECUTOR_STORAGE_DO_SPACES_BUCKET: ""
OPR_EXECUTOR_STORAGE_DO_SPACES_REGION: us-east-1
OPR_EXECUTOR_STORAGE_DO_SPACES_SECRET: ""
OPR_EXECUTOR_STORAGE_LINODE_ACCESS_KEY: ""
OPR_EXECUTOR_STORAGE_LINODE_BUCKET: ""
OPR_EXECUTOR_STORAGE_LINODE_REGION: eu-central-1
OPR_EXECUTOR_STORAGE_LINODE_SECRET: ""
OPR_EXECUTOR_STORAGE_S3_ACCESS_KEY: ""
OPR_EXECUTOR_STORAGE_S3_BUCKET: ""
OPR_EXECUTOR_STORAGE_S3_ENDPOINT: ""
OPR_EXECUTOR_STORAGE_S3_REGION: us-east-1
OPR_EXECUTOR_STORAGE_S3_SECRET: ""
OPR_EXECUTOR_STORAGE_WASABI_ACCESS_KEY: ""
OPR_EXECUTOR_STORAGE_WASABI_BUCKET: ""
OPR_EXECUTOR_STORAGE_WASABI_REGION: eu-central-1
OPR_EXECUTOR_STORAGE_WASABI_SECRET: ""
hostname: exc1
image: openruntimes/executor:0.7.13
networks:
appwrite: null
runtimes: null
restart: unless-stopped
stop_signal: SIGINT
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
bind:
create_host_path: true
- type: volume
source: appwrite-builds
target: /storage/builds
volume: {}
- type: volume
source: appwrite-functions
target: /storage/functions
volume: {}
- type: volume
source: appwrite-sites
target: /storage/sites
volume: {}
- type: bind
source: /tmp
target: /tmp
bind:
create_host_path: true
openruntimes-proxy:
container_name: openruntimes-proxy
environment:
OPR_PROXY_ALGORITHM: random
OPR_PROXY_ENV: development
OPR_PROXY_EXECUTOR_SECRET: your-secret-key
OPR_PROXY_EXECUTORS: exc1
OPR_PROXY_HEALTHCHECK: enabled
OPR_PROXY_HEALTHCHECK_INTERVAL: "10000"
OPR_PROXY_LOGGING_CONFIG: ""
OPR_PROXY_MAX_TIMEOUT: "600"
OPR_PROXY_SECRET: your-secret-key
OPR_PROXY_WORKER_PER_CORE: "6"
hostname: proxy
image: openruntimes/proxy:0.5.5
networks:
appwrite: null
runtimes: null
stop_signal: SIGINT
redis:
command:
- redis-server
- --maxmemory
- 512mb
- --maxmemory-policy
- allkeys-lru
- --maxmemory-samples
- "5"
container_name: appwrite-redis
image: redis:7.2.4-alpine
networks:
appwrite: null
volumes:
- type: volume
source: appwrite-redis
target: /data
volume: {}
traefik:
command:
- --log.level=DEBUG
- --api.insecure=true
- --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.appwrite_web.address=:80
- --entrypoints.appwrite_websecure.address=:443
- --accesslog=true
container_name: appwrite-traefik
depends_on:
appwrite:
condition: service_started
required: true
image: traefik:2.11
networks:
appwrite: null
gateway: null
runtimes: null
ports:
- mode: ingress
target: 80
published: "80"
protocol: tcp
- mode: ingress
target: 80
published: "8080"
protocol: tcp
- mode: ingress
target: 443
published: "443"
protocol: tcp
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
bind:
create_host_path: true
- type: volume
source: appwrite-config
target: /storage/config
read_only: true
volume: {}
- type: volume
source: appwrite-certificates
target: /storage/certificates
read_only: true
volume: {}
networks:
appwrite:
name: appwrite
gateway:
name: gateway
runtimes:
name: runtimes
volumes:
appwrite-builds:
name: appwrite_appwrite-builds
appwrite-cache:
name: appwrite_appwrite-cache
appwrite-certificates:
name: appwrite_appwrite-certificates
appwrite-config:
name: appwrite_appwrite-config
appwrite-functions:
name: appwrite_appwrite-functions
appwrite-mariadb:
name: appwrite_appwrite-mariadb
appwrite-redis:
name: appwrite_appwrite-redis
appwrite-sites:
name: appwrite_appwrite-sites
appwrite-uploads:
name: appwrite_appwrite-uploads