
Deploy Appwrite on Your Own Server
Secure Backend Server for Web, Mobile & Flutter Developers.
Want to deploy Appwrite on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.
What is Appwrite?
Appwrite is a self-hosted solution that provides developers with a set of easy-to-use and integrate REST APIs to manage their core backend needs. Description of all available environment variables: https://appwrite.io/docs/environment-variables
Self-Host Appwrite
Follow these steps to deploy on your own server.
Install Docker
Skip this step if Docker is already installed on your server.
curl -fsSL https://get.docker.com | sh
Configure
Customize the settings below. Defaults work for most cases.
General
Deploy
Copy the configuration and run it on your server.
services:
appwrite:
image: appwrite/appwrite:1.4.13
environment:
_APP_ASSISTANT_OPENAI_API_KEY: ""
_APP_CONSOLE_WHITELIST_EMAILS: ""
_APP_CONSOLE_WHITELIST_IPS: ""
_APP_CONSOLE_WHITELIST_ROOT: enabled
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: localhost
_APP_DOMAIN_FUNCTIONS: localhost
_APP_DOMAIN_TARGET: localhost
_APP_ENV: production
_APP_EXECUTOR_HOST: http://appwrite-executor/v1
_APP_EXECUTOR_SECRET: 15c04e8ff101c078
_APP_FUNCTIONS_BUILD_TIMEOUT: "900"
_APP_FUNCTIONS_CPUS: ""
_APP_FUNCTIONS_MEMORY: ""
_APP_FUNCTIONS_RUNTIMES: node-18.0
_APP_FUNCTIONS_SIZE_LIMIT: "30000000"
_APP_FUNCTIONS_TIMEOUT: "900"
_APP_GRAPHQL_MAX_BATCH_SIZE: "10"
_APP_GRAPHQL_MAX_COMPLEXITY: "250"
_APP_GRAPHQL_MAX_DEPTH: "3"
_APP_INFLUXDB_HOST: appwrite-influxdb
_APP_INFLUXDB_PORT: "8086"
_APP_LOCALE: en
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_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: ""
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY: "8640000"
_APP_MIGRATIONS_FIREBASE_CLIENT_ID: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_OPTIONS_ABUSE: enabled
_APP_OPTIONS_FORCE_HTTPS: disabled
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SMS_FROM: ""
_APP_SMS_PROVIDER: ""
_APP_SMTP_HOST: ""
_APP_SMTP_PASSWORD: ""
_APP_SMTP_PORT: ""
_APP_SMTP_SECURE: ""
_APP_SMTP_USERNAME: ""
_APP_STATSD_HOST: appwrite-telegraf
_APP_STATSD_PORT: "8125"
_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_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: team@appwrite.io
_APP_SYSTEM_EMAIL_NAME: Appwrite
_APP_SYSTEM_RESPONSE_FORMAT: ""
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS: certs@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: ""
_APP_VCS_GITHUB_WEBHOOK_SECRET: ""
_APP_WORKER_PER_CORE: "6"
volumes:
- appwrite-uploads:/storage/uploads
- appwrite-cache:/storage/cache
- appwrite-config:/storage/config
- appwrite-certificates:/storage/certificates
- appwrite-functions:/storage/functions
depends_on:
- appwrite-redis
- appwrite-mariadb
- appwrite-influxdb
appwrite-assistant:
image: appwrite/assistant:0.2.2
environment:
_APP_ASSISTANT_OPENAI_API_KEY: ""
appwrite-executor:
image: openruntimes/executor:0.4.5
environment:
OPR_EXECUTOR_DOCKER_HUB_PASSWORD: ""
OPR_EXECUTOR_DOCKER_HUB_USERNAME: ""
OPR_EXECUTOR_ENV: production
OPR_EXECUTOR_INACTIVE_TRESHOLD: "60"
OPR_EXECUTOR_LOGGING_CONFIG: ""
OPR_EXECUTOR_LOGGING_PROVIDER: ""
OPR_EXECUTOR_MAINTENANCE_INTERVAL: "3600"
OPR_EXECUTOR_NETWORK: captain-overlay-network
OPR_EXECUTOR_RUNTIMES: node-18.0
OPR_EXECUTOR_SECRET: 15c04e8ff101c078
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_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: ""
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- appwrite-functions:/storage/functions
- appwrite-builds:/storage/builds
- /tmp:/tmp
appwrite-influxdb:
image: appwrite/influxdb:1.5.0
volumes:
- appwrite-influxdb:/var/lib/influxdb
appwrite-maintenance:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: localhost
_APP_DOMAIN_FUNCTIONS: localhost
_APP_DOMAIN_TARGET: localhost
_APP_ENV: production
_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: ""
_APP_MAINTENANCE_RETENTION_USAGE_HOURLY: "8640000"
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
appwrite-mariadb:
environment:
MARIADB_DATABASE: appwrite
MARIADB_PASSWORD: 9df4c8d832b992cd
MARIADB_ROOT_PASSWORD: de76297dab87c152
MARIADB_USER: user
volumes:
- appwrite-mariadb:/var/lib/mysql
appwrite-realtime:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_OPTIONS_ABUSE: enabled
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PORT: "6379"
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
- appwrite-mariadb
appwrite-redis:
volumes:
- appwrite-redis:/data
appwrite-schedule:
environment:
_APP_DB_HOST: ${APP_DB_HOST}
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: production
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
appwrite-telegraf:
image: appwrite/telegraf:1.4.0
environment:
_APP_INFLUXDB_HOST: appwrite-influxdb
_APP_INFLUXDB_PORT: "8086"
appwrite-usage:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: production
_APP_INFLUXDB_HOST: appwrite-influxdb
_APP_INFLUXDB_PORT: "8086"
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-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"
depends_on:
- appwrite-influxdb
- appwrite-mariadb
appwrite-worker-audits:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
depends_on:
- appwrite-redis
- appwrite-mariadb
appwrite-worker-builds:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: localhost
_APP_ENV: production
_APP_EXECUTOR_HOST: http://appwrite-executor/v1
_APP_EXECUTOR_SECRET: 15c04e8ff101c078
_APP_FUNCTIONS_BUILD_TIMEOUT: "900"
_APP_FUNCTIONS_CPUS: ""
_APP_FUNCTIONS_MEMORY: ${APP_FUNCTIONS_MEMORY}
_APP_FUNCTIONS_SIZE_LIMIT: "30000000"
_APP_FUNCTIONS_TIMEOUT: "900"
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_OPTIONS_FORCE_HTTPS: disabled
_APP_REDIS_HOST: appwrite-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_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: ""
volumes:
- appwrite-functions:/storage/functions
- appwrite-builds:/storage/builds
depends_on:
- appwrite-redis
- appwrite-mariadb
appwrite-worker-certificates:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: localhost
_APP_DOMAIN_FUNCTIONS: localhost
_APP_DOMAIN_TARGET: localhost
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS: certs@appwrite.io
_APP_WORKER_PER_CORE: "6"
volumes:
- appwrite-config:/storage/config
- appwrite-certificates:/storage/certificates
depends_on:
- appwrite-redis
- appwrite-mariadb
appwrite-worker-databases:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
- appwrite-mariadb
appwrite-worker-deletes:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_ENV: production
_APP_EXECUTOR_HOST: http://appwrite-executor/v1
_APP_EXECUTOR_SECRET: 15c04e8ff101c078
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-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_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"
volumes:
- appwrite-uploads:/storage/uploads
- appwrite-cache:/storage/cache
- appwrite-functions:/storage/functions
- appwrite-builds:/storage/builds
- appwrite-certificates:/storage/certificates
depends_on:
- appwrite-redis
- appwrite-mariadb
appwrite-worker-functions:
environment:
_APP_DB_HOST: appwrite-mariadb
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOCKER_HUB_PASSWORD: ""
_APP_DOCKER_HUB_USERNAME: ""
_APP_ENV: production
_APP_EXECUTOR_HOST: http://appwrite-executor/v1
_APP_EXECUTOR_SECRET: 15c04e8ff101c078
_APP_FUNCTIONS_BUILD_TIMEOUT: "900"
_APP_FUNCTIONS_CPUS: ""
_APP_FUNCTIONS_MEMORY: ""
_APP_FUNCTIONS_TIMEOUT: "900"
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_USAGE_STATS: enabled
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
- appwrite-mariadb
- appwrite-executor
appwrite-worker-mails:
environment:
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SMTP_HOST: ""
_APP_SMTP_PASSWORD: ""
_APP_SMTP_PORT: ""
_APP_SMTP_SECURE: ""
_APP_SMTP_USERNAME: ""
_APP_SYSTEM_EMAIL_ADDRESS: team@appwrite.io
_APP_SYSTEM_EMAIL_NAME: Appwrite
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
appwrite-worker-messaging:
environment:
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SMS_FROM: ""
_APP_SMS_PROVIDER: ""
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
appwrite-worker-migrations:
environment:
_APP_DB_HOST: ${APP_DB_HOST}
_APP_DB_PASS: 9df4c8d832b992cd
_APP_DB_PORT: "3306"
_APP_DB_SCHEMA: appwrite
_APP_DB_USER: user
_APP_DOMAIN: localhost
_APP_DOMAIN_TARGET: localhost
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_ID: ""
_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: ${APP_REDIS_HOST}
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS: certs@appwrite.io
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-mariadb
appwrite-worker-webhooks:
environment:
_APP_ENV: production
_APP_LOGGING_CONFIG: ""
_APP_LOGGING_PROVIDER: ""
_APP_OPENSSL_KEY_V1: 6ad9989ab7b021948932eeb223ab35f7a0b2af223eefa5cf0f232cdce4a469fa6aff4d9daae5b99475d44a4acdf85072516ea84b3dfd36bf1ca0661779182c26abf0be1922ba0d7e5bdb10e52b368749c1dd4e6b6c2531336a8e24fb845154e75705e6568d3cdb283062e3edff812c2677ac8e02a44824c4eb3cbcd2c0c262e9
_APP_REDIS_HOST: appwrite-redis
_APP_REDIS_PASS: ""
_APP_REDIS_PORT: "6379"
_APP_REDIS_USER: ""
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS: certs@appwrite.io
_APP_WORKER_PER_CORE: "6"
depends_on:
- appwrite-redis
- appwrite-mariadb
volumes:
appwrite-uploads: {}
appwrite-cache: {}
appwrite-config: {}
appwrite-certificates: {}
appwrite-functions: {}
appwrite-builds: {}
appwrite-influxdb: {}
appwrite-mariadb: {}
appwrite-redis: {}
Then run:
docker compose up -d
Access
Once started, access your app at http://localhost:80
Why Self-Host Appwrite?
Full Data Ownership
Your data stays on your servers. No third-party access.
No Monthly Fees
Pay only for your server. No per-seat or usage charges.
Complete Control
Customize, backup, and scale on your own terms.
Privacy & Compliance
Meet GDPR, HIPAA, or internal security requirements.
Technical Details
Docker Image
appwrite/appwrite:${APP_VERSION}Official Docs
appwrite.ioWant to go faster?
Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.
Install on any Linux server:
sh -c "$(curl -sSL https://get.senate.sh)"