Appwrite docker compose

Created Diff never expires
242 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
748 lines
49 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
571 lines
# WARNING!
<?php
# This is a development version of THE Appwrite docker-compose.yml file.
# Avoid using this file in your production environment.
# We're exposing here sensitive ports and mounting code volumes for rapid development and debugging of the server stack.


version: '3'
$httpPort = $this->getParam('httpPort', '');
$httpsPort = $this->getParam('httpsPort', '');
$version = $this->getParam('version', '');
$organization = $this->getParam('organization', '');
$image = $this->getParam('image', '');
?>version: '3'


services:
services:
traefik:
traefik:
image: traefik:2.5
image: traefik:2.5
container_name: appwrite-traefik
container_name: appwrite-traefik
command:
command:
- --log.level=DEBUG
- --api.insecure=true
- --providers.file.directory=/storage/config
- --providers.file.directory=/storage/config
- --providers.file.watch=true
- --providers.file.watch=true
- --providers.docker=true
- --providers.docker=true
- --providers.docker.exposedByDefault=false
- --providers.docker.exposedByDefault=false
- --providers.docker.constraints=Label(`traefik.constraint-label-stack`,`appwrite`)
- --providers.docker.constraints=Label(`traefik.constraint-label-stack`,`appwrite`)
- --entrypoints.appwrite_web.address=:80
- --entrypoints.appwrite_web.address=:80
- --entrypoints.appwrite_websecure.address=:443
- --entrypoints.appwrite_websecure.address=:443
- --accesslog=true
restart: unless-stopped
ports:
ports:
- 80:80
- <?php echo $httpPort; ?>:80
- 8080:80
- <?php echo $httpsPort; ?>:443
- 443:443
- 9500:8080
volumes:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/run/docker.sock:/var/run/docker.sock
- appwrite-config:/storage/config:ro
- appwrite-config:/storage/config:ro
- appwrite-certificates:/storage/certificates:ro
- appwrite-certificates:/storage/certificates:ro
depends_on:
depends_on:
- appwrite
- appwrite
networks:
networks:
- gateway
- gateway
- appwrite
- appwrite


appwrite:
appwrite:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
container_name: appwrite
container_name: appwrite
build:
restart: unless-stopped
context: .
args:
- DEBUG=false
- TESTING=true
- VERSION=dev
ports:
- 9501:80
networks:
networks:
- appwrite
- appwrite
labels:
labels:
- "traefik.enable=true"
- traefik.enable=true
- "traefik.constraint-label-stack=appwrite"
- traefik.constraint-label-stack=appwrite
- "traefik.docker.network=appwrite"
- traefik.docker.network=appwrite
- "traefik.http.services.appwrite_api.loadbalancer.server.port=80"
- traefik.http.services.appwrite_api.loadbalancer.server.port=80
#http
#http
- traefik.http.routers.appwrite_api_http.entrypoints=appwrite_web
- traefik.http.routers.appwrite_api_http.entrypoints=appwrite_web
- traefik.http.routers.appwrite_api_http.rule=PathPrefix(`/`)
- traefik.http.routers.appwrite_api_http.rule=PathPrefix(`/`)
- traefik.http.routers.appwrite_api_http.service=appwrite_api
- traefik.http.routers.appwrite_api_http.service=appwrite_api
# https
# https
- traefik.http.routers.appwrite_api_https.entrypoints=appwrite_websecure
- traefik.http.routers.appwrite_api_https.entrypoints=appwrite_websecure
- traefik.http.routers.appwrite_api_https.rule=PathPrefix(`/`)
- traefik.http.routers.appwrite_api_https.rule=PathPrefix(`/`)
- traefik.http.routers.appwrite_api_https.service=appwrite_api
- traefik.http.routers.appwrite_api_https.service=appwrite_api
- traefik.http.routers.appwrite_api_https.tls=true
- traefik.http.routers.appwrite_api_https.tls=true
volumes:
volumes:
- appwrite-uploads:/storage/uploads:rw
- appwrite-uploads:/storage/uploads:rw
- appwrite-cache:/storage/cache:rw
- appwrite-cache:/storage/cache:rw
- appwrite-config:/storage/config:rw
- appwrite-config:/storage/config:rw
- appwrite-certificates:/storage/certificates:rw
- appwrite-certificates:/storage/certificates:rw
- appwrite-functions:/storage/functions:rw
- appwrite-functions:/storage/functions:rw
- ./phpunit.xml:/usr/src/code/phpunit.xml
- ./psalm.xml:/usr/src/code/psalm.xml
- ./tests:/usr/src/code/tests
- ./app:/usr/src/code/app
# - ./vendor:/usr/src/code/vendor
- ./docs:/usr/src/code/docs
- ./public:/usr/src/code/public
- ./src:/usr/src/code/src
# - ./debug:/tmp
- ./dev:/usr/local/dev
depends_on:
depends_on:
- mariadb
- mariadb
- redis
- redis
# - clamav
# - clamav
entrypoint:
- influxdb
- php
- -e
- app/http.php
- -dopcache.preload=opcache.preload=/usr/src/code/app/preload.php
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_WORKER_PER_CORE
- _APP_WORKER_PER_CORE
- _APP_LOCALE
- _APP_LOCALE
- _APP_CONSOLE_WHITELIST_ROOT
- _APP_CONSOLE_WHITELIST_ROOT
- _APP_CONSOLE_WHITELIST_EMAILS
- _APP_CONSOLE_WHITELIST_EMAILS
- _APP_CONSOLE_WHITELIST_IPS
- _APP_CONSOLE_WHITELIST_IPS
- _APP_SYSTEM_EMAIL_NAME
- _APP_SYSTEM_EMAIL_NAME
- _APP_SYSTEM_EMAIL_ADDRESS
- _APP_SYSTEM_EMAIL_ADDRESS
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
- _APP_SYSTEM_RESPONSE_FORMAT
- _APP_SYSTEM_RESPONSE_FORMAT
- _APP_OPTIONS_ABUSE
- _APP_OPTIONS_ABUSE
- _APP_OPTIONS_FORCE_HTTPS
- _APP_OPTIONS_FORCE_HTTPS
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_DOMAIN
- _APP_DOMAIN
- _APP_DOMAIN_TARGET
- _APP_DOMAIN_TARGET
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_SMTP_HOST
- _APP_SMTP_HOST
- _APP_SMTP_PORT
- _APP_SMTP_PORT
- _APP_SMTP_SECURE
- _APP_SMTP_SECURE
- _APP_SMTP_USERNAME
- _APP_SMTP_USERNAME
- _APP_SMTP_PASSWORD
- _APP_SMTP_PASSWORD
- _APP_USAGE_STATS
- _APP_USAGE_STATS
- _APP_INFLUXDB_HOST
- _APP_INFLUXDB_HOST
- _APP_INFLUXDB_PORT
- _APP_INFLUXDB_PORT
- _APP_STORAGE_LIMIT
- _APP_STORAGE_LIMIT
- _APP_STORAGE_ANTIVIRUS
- _APP_STORAGE_ANTIVIRUS
- _APP_STORAGE_ANTIVIRUS_HOST
- _APP_STORAGE_ANTIVIRUS_HOST
- _APP_STORAGE_ANTIVIRUS_PORT
- _APP_STORAGE_ANTIVIRUS_PORT
- _APP_STORAGE_DEVICE
- _APP_STORAGE_DEVICE
- _APP_STORAGE_S3_ACCESS_KEY
- _APP_STORAGE_S3_ACCESS_KEY
- _APP_STORAGE_S3_SECRET
- _APP_STORAGE_S3_SECRET
- _APP_STORAGE_S3_REGION
- _APP_STORAGE_S3_REGION
- _APP_STORAGE_S3_BUCKET
- _APP_STORAGE_S3_BUCKET
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
- _APP_STORAGE_DO_SPACES_SECRET
- _APP_STORAGE_DO_SPACES_SECRET
- _APP_STORAGE_DO_SPACES_REGION
- _APP_STORAGE_DO_SPACES_REGION
- _APP_STORAGE_DO_SPACES_BUCKET
- _APP_STORAGE_DO_SPACES_BUCKET
- _APP_FUNCTIONS_SIZE_LIMIT
- _APP_FUNCTIONS_SIZE_LIMIT
- _APP_FUNCTIONS_TIMEOUT
- _APP_FUNCTIONS_TIMEOUT
- _APP_FUNCTIONS_BUILD_TIMEOUT
- _APP_FUNCTIONS_BUILD_TIMEOUT
- _APP_FUNCTIONS_CONTAINERS
- _APP_FUNCTIONS_CONTAINERS
- _APP_FUNCTIONS_CPUS
- _APP_FUNCTIONS_CPUS
- _APP_FUNCTIONS_MEMORY
- _APP_FUNCTIONS_MEMORY
- _APP_FUNCTIONS_MEMORY_SWAP
- _APP_FUNCTIONS_MEMORY_SWAP
- _APP_FUNCTIONS_RUNTIMES
- _APP_FUNCTIONS_RUNTIMES
- _APP_EXECUTOR_SECRET
- _APP_EXECUTOR_SECRET
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG
- _APP_STATSD_HOST
- _APP_STATSD_HOST
- _APP_STATSD_PORT
- _APP_STATSD_PORT
- _APP_MAINTENANCE_INTERVAL
- _APP_MAINTENANCE_INTERVAL
- _APP_MAINTENANCE_RETENTION_EXECUTION
- _APP_MAINTENANCE_RETENTION_EXECUTION
- _APP_MAINTENANCE_RETENTION_ABUSE
- _APP_MAINTENANCE_RETENTION_ABUSE
- _APP_MAINTENANCE_RETENTION_AUDIT
- _APP_MAINTENANCE_RETENTION_AUDIT


appwrite-realtime:
appwrite-realtime:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: realtime
entrypoint: realtime
container_name: appwrite-realtime
container_name: appwrite-realtime
build:
context: .
restart: unless-stopped
restart: unless-stopped
ports:
- 9505:80
labels:
labels:
- "traefik.enable=true"
- "traefik.enable=true"
- "traefik.constraint-label-stack=appwrite"
- "traefik.constraint-label-stack=appwrite"
- "traefik.docker.network=appwrite"
- "traefik.docker.network=appwrite"
- "traefik.http.services.appwrite_realtime.loadbalancer.server.port=80"
- "traefik.http.services.appwrite_realtime.loadbalancer.server.port=80"
#ws
#ws
- traefik.http.routers.appwrite_realtime_ws.entrypoints=appwrite_web
- 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.rule=PathPrefix(`/v1/realtime`)
- traefik.http.routers.appwrite_realtime_ws.service=appwrite_realtime
- traefik.http.routers.appwrite_realtime_ws.service=appwrite_realtime
# wss
# wss
- traefik.http.routers.appwrite_realtime_wss.entrypoints=appwrite_websecure
- 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.rule=PathPrefix(`/v1/realtime`)
- traefik.http.routers.appwrite_realtime_wss.service=appwrite_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=true
- traefik.http.routers.appwrite_realtime_wss.tls.certresolver=dns
- traefik.http.routers.appwrite_realtime_wss.tls.certresolver=dns
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
# - ./vendor:/usr/src/code/vendor
depends_on:
depends_on:
- mariadb
- mariadb
- redis
- redis
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_WORKER_PER_CORE
- _APP_WORKER_PER_CORE
- _APP_OPTIONS_ABUSE
- _APP_OPTIONS_ABUSE
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_USAGE_STATS
- _APP_USAGE_STATS
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-worker-audits:
appwrite-worker-audits:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-audits
entrypoint: worker-audits
container_name: appwrite-worker-audits
container_name: appwrite-worker-audits
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-worker-webhooks:
appwrite-worker-webhooks:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-webhooks
entrypoint: worker-webhooks
container_name: appwrite-worker-webhooks
container_name: appwrite-worker-webhooks
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
- request-catcher
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-worker-deletes:
appwrite-worker-deletes:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-deletes
entrypoint: worker-deletes
container_name: appwrite-worker-deletes
container_name: appwrite-worker-deletes
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
volumes:
volumes:
- appwrite-uploads:/storage/uploads:rw
- appwrite-uploads:/storage/uploads:rw
- appwrite-cache:/storage/cache:rw
- appwrite-cache:/storage/cache:rw
- appwrite-functions:/storage/functions:rw
- appwrite-functions:/storage/functions:rw
- appwrite-builds:/storage/builds:rw
- appwrite-builds:/storage/builds:rw
- appwrite-certificates:/storage/certificates:rw
- appwrite-certificates:/storage/certificates:rw
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_STORAGE_DEVICE
- _APP_STORAGE_DEVICE
- _APP_STORAGE_S3_ACCESS_KEY
- _APP_STORAGE_S3_ACCESS_KEY
- _APP_STORAGE_S3_SECRET
- _APP_STORAGE_S3_SECRET
- _APP_STORAGE_S3_REGION
- _APP_STORAGE_S3_REGION
- _APP_STORAGE_S3_BUCKET
- _APP_STORAGE_S3_BUCKET
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
- _APP_STORAGE_DO_SPACES_SECRET
- _APP_STORAGE_DO_SPACES_SECRET
- _APP_STORAGE_DO_SPACES_REGION
- _APP_STORAGE_DO_SPACES_REGION
- _APP_STORAGE_DO_SPACES_BUCKET
- _APP_STORAGE_DO_SPACES_BUCKET
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG
- _APP_EXECUTOR_SECRET
- _APP_EXECUTOR_SECRET


appwrite-worker-database:
appwrite-worker-database:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-database
entrypoint: worker-database
container_name: appwrite-worker-database
container_name: appwrite-worker-database
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
# - ./vendor/utopia-php/database:/usr/src/code/vendor/utopia-php/database
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-worker-builds:
appwrite-worker-builds:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-builds
entrypoint: worker-builds
container_name: appwrite-worker-builds
container_name: appwrite-worker-builds
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_EXECUTOR_SECRET
- _APP_EXECUTOR_SECRET
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-worker-certificates:
appwrite-worker-certificates:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-certificates
entrypoint: worker-certificates
container_name: appwrite-worker-certificates
container_name: appwrite-worker-certificates
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
volumes:
volumes:
- appwrite-config:/storage/config:rw
- appwrite-config:/storage/config:rw
- appwrite-certificates:/storage/certificates:rw
- appwrite-certificates:/storage/certificates:rw
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_DOMAIN_TARGET
- _APP_DOMAIN_TARGET
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-worker-functions:
appwrite-worker-functions:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-functions
entrypoint: worker-functions
container_name: appwrite-worker-functions
container_name: appwrite-worker-functions
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
- appwrite-executor
- appwrite-executor
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_FUNCTIONS_TIMEOUT
- _APP_FUNCTIONS_TIMEOUT
- _APP_EXECUTOR_SECRET
- _APP_EXECUTOR_SECRET
- _APP_USAGE_STATS
- _APP_USAGE_STATS
- DOCKERHUB_PULL_USERNAME
- DOCKERHUB_PULL_USERNAME
- DOCKERHUB_PULL_PASSWORD
- DOCKERHUB_PULL_PASSWORD


appwrite-executor:
appwrite-executor:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: executor
container_name: appwrite-executor
container_name: appwrite-executor
entrypoint: executor
restart: unless-stopped
stop_signal: SIGINT
stop_signal: SIGINT
build:
context: .
args:
- DEBUG=false
- TESTING=true
- VERSION=dev
networks:
networks:
appwrite:
appwrite:
runtimes:
runtimes:
ports:
- 9519:80
volumes:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/run/docker.sock:/var/run/docker.sock
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
- appwrite-functions:/storage/functions:rw
- appwrite-functions:/storage/functions:rw
- appwrite-builds:/storage/builds:rw
- appwrite-builds:/storage/builds:rw
- /tmp:/tmp:rw
- /tmp:/tmp:rw
depends_on:
depends_on:
- redis
- redis
- mariadb
- mariadb
- appwrite
- appwrite
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_VERSION
- _APP_VERSION
- _APP_FUNCTIONS_TIMEOUT
- _APP_FUNCTIONS_TIMEOUT
- _APP_FUNCTIONS_BUILD_TIMEOUT
- _APP_FUNCTIONS_BUILD_TIMEOUT
- _APP_FUNCTIONS_CONTAINERS
- _APP_FUNCTIONS_CONTAINERS
- _APP_FUNCTIONS_RUNTIMES
- _APP_FUNCTIONS_RUNTIMES
- _APP_FUNCTIONS_CPUS
- _APP_FUNCTIONS_CPUS
- _APP_FUNCTIONS_MEMORY
- _APP_FUNCTIONS_MEMORY
- _APP_FUNCTIONS_MEMORY_SWAP
- _APP_FUNCTIONS_MEMORY_SWAP
- _APP_FUNCTIONS_INACTIVE_THRESHOLD
- _APP_FUNCTIONS_INACTIVE_THRESHOLD
- _APP_EXECUTOR_SECRET
- _APP_EXECUTOR_SECRET
- _APP_EXECUTOR_RUNTIME_NETWORK
- _APP_EXECUTOR_RUNTIME_NETWORK
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG
- _APP_STORAGE_DEVICE
- _APP_STORAGE_DEVICE
- _APP_STORAGE_S3_ACCESS_KEY
- _APP_STORAGE_S3_ACCESS_KEY
- _APP_STORAGE_S3_SECRET
- _APP_STORAGE_S3_SECRET
- _APP_STORAGE_S3_REGION
- _APP_STORAGE_S3_REGION
- _APP_STORAGE_S3_BUCKET
- _APP_STORAGE_S3_BUCKET
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
- _APP_STORAGE_DO_SPACES_ACCESS_KEY
- _APP_STORAGE_DO_SPACES_SECRET
- _APP_STORAGE_DO_SPACES_SECRET
- _APP_STORAGE_DO_SPACES_REGION
- _APP_STORAGE_DO_SPACES_REGION
- _APP_STORAGE_DO_SPACES_BUCKET
- _APP_STORAGE_DO_SPACES_BUCKET
- DOCKERHUB_PULL_USERNAME
- DOCKERHUB_PULL_USERNAME
- DOCKERHUB_PULL_PASSWORD
- DOCKERHUB_PULL_PASSWORD


appwrite-worker-mails:
appwrite-worker-mails:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: worker-mails
entrypoint: worker-mails
container_name: appwrite-worker-mails
container_name: appwrite-worker-mails
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
- maildev
# - smtp
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_SYSTEM_EMAIL_NAME
- _APP_SYSTEM_EMAIL_NAME
- _APP_SYSTEM_EMAIL_ADDRESS
- _APP_SYSTEM_EMAIL_ADDRESS
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_SMTP_HOST
- _APP_SMTP_HOST
- _APP_SMTP_PORT
- _APP_SMTP_PORT
- _APP_SMTP_SECURE
- _APP_SMTP_SECURE
- _APP_SMTP_USERNAME
- _APP_SMTP_USERNAME
- _APP_SMTP_PASSWORD
- _APP_SMTP_PASSWORD
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_PROVIDER
- _APP_LOGGING_CONFIG
- _APP_LOGGING_CONFIG


appwrite-maintenance:
appwrite-maintenance:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: maintenance
entrypoint: maintenance
container_name: appwrite-maintenance
container_name: appwrite-maintenance
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS
- _APP_MAINTENANCE_INTERVAL
- _APP_MAINTENANCE_INTERVAL
- _APP_MAINTENANCE_RETENTION_EXECUTION
- _APP_MAINTENANCE_RETENTION_EXECUTION
- _APP_MAINTENANCE_RETENTION_ABUSE
- _APP_MAINTENANCE_RETENTION_ABUSE
- _APP_MAINTENANCE_RETENTION_AUDIT
- _APP_MAINTENANCE_RETENTION_AUDIT


appwrite-usage:
appwrite-usage:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: usage
entrypoint: usage
container_name: appwrite-usage
container_name: appwrite-usage
build:
restart: unless-stopped
context: .
args:
- DEBUG=false
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
- ./dev:/usr/local/dev
depends_on:
depends_on:
- influxdb
- influxdb
- mariadb
- mariadb
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_OPENSSL_KEY_V1
- _APP_OPENSSL_KEY_V1
- _APP_DB_HOST
- _APP_DB_HOST
- _APP_DB_PORT
- _APP_DB_PORT
- _APP_DB_SCHEMA
- _APP_DB_SCHEMA
- _APP_DB_USER
- _APP_DB_USER
- _APP_DB_PASS
- _APP_DB_PASS
- _APP_INFLUXDB_HOST
- _APP_INFLUXDB_HOST
- _APP_INFLUXDB_PORT
- _APP_INFLUXDB_PORT
- _APP_USAGE_AGGREGATION_INTERVAL
- _APP_USAGE_AGGREGATION_INTERVAL
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS


appwrite-schedule:
appwrite-schedule:
image: <?php echo $organization; ?>/<?php echo $image; ?>:<?php echo $version."\n"; ?>
entrypoint: schedule
entrypoint: schedule
container_name: appwrite-schedule
container_name: appwrite-schedule
build:
restart: unless-stopped
context: .
networks:
networks:
- appwrite
- appwrite
volumes:
- ./app:/usr/src/code/app
- ./src:/usr/src/code/src
depends_on:
depends_on:
- redis
- redis
environment:
environment:
- _APP_ENV
- _APP_ENV
- _APP_REDIS_HOST
- _APP_REDIS_HOST
- _APP_REDIS_PORT
- _APP_REDIS_PORT
- _APP_REDIS_USER
- _APP_REDIS_USER
- _APP_REDIS_PASS
- _APP_REDIS_PASS


mariadb:
mariadb:
image: mariadb:10.7 # fix issues when upgrading using: mysql_upgrade -u root -p
image: mariadb:10.7 # fix issues when upgrading using: mysql_upgrade -u root -p
container_name: appwrite-mariadb
container_name: appwrite-mariadb
restart: unless-stopped
networks:
networks:
- appwrite
- appwrite
volumes:
volumes:
- appwrite-mariadb:/var/lib/mysql:rw
- appwrite-mariadb:/var/lib/mysql:rw
ports:
- "3306:3306"
environment:
environment:
- MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS}
- MYSQL_ROOT_PASSWORD=${_APP_DB_ROOT_PASS}
- MYSQL_DATABASE=${_APP_DB_SCHEMA}
- MYSQL_DATABASE=${_APP_DB_SCHEMA}
- MYSQL_USER=${_APP_DB_USER}
- MYSQL_USER=${_APP_DB_USER}
- MYSQL_PASSWORD=${_APP_DB_PASS}
- MYSQL_PASSWORD=${_APP_DB_PASS}
command: 'mysqld --innodb-flush-method=fsync' # add ' --query_cache_size=0' for DB tests
command: 'mysqld --innodb-flush-method=fsync'
# command: mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bu && mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bu


# smtp:
# image: appwrite/smtp:1.2.0
# container_name: appwrite-smtp
# restart: unless-stopped
# networks:
# - appwrite
# environment:
# - LOCAL_DOMAINS=@
# - RELAY_FROM_HOSTS=192.168.0.0/16 ; *.yourdomain.com
# - SMARTHOST_HOST=smtp
# - SMARTHOST_PORT=587
redis:
redis:
image: redis:6.2-alpine
image: redis:6.2-alpine
container_name: appwrite-redis
container_name: appwrite-redis
ports:
restart: unless-stopped
- "6379:6379"
networks:
networks:
- appwrite
- appwrite
volumes:
volumes:
- appwrite-redis:/data:rw
- appwrite-redis:/data:rw


# clamav:
# clamav:
# image: appwrite/clamav:1.2.0
# image: appwrite/clamav:1.2.0
# container_name: appwrite-clamav
# container_name: appwrite-clamav
# restart: unless-stopped
# networks:
# networks:
# - appwrite
# - appwrite
# volumes:
# volumes:
# - appwrite-uploads:/storage/uploads
# - appwrite-uploads:/storage/uploads


influxdb:
influxdb:
image: appwrite/influxdb:1.5.0
image: appwrite/influxdb:1.5.0
container_name: appwrite-influxdb
container_name: appwrite-influxdb
restart: unless-stopped
networks:
networks:
- appwrite
- appwrite
volumes:
volumes:
- appwrite-influxdb:/var/lib/influxdb:rw
- appwrite-influxdb:/var/lib/influxdb:rw


telegraf:
telegraf:
image: appwrite/telegraf:1.4.0
image: appwrite/telegraf:1.4.0
container_name: appwrite-telegraf
container_name: appwrite-telegraf
restart: unless-stopped
networks:
networks:
- appwrite
- appwrite
environment:
environment:
- _APP_INFLUXDB_HOST
- _APP_INFLUXDB_HOST
- _APP_INFLUXDB_PORT
- _APP_INFLUXDB_PORT


# Dev Tools Start ------------------------------------------------------------------------------------------
#
# The Appwrite Team uses the following tools to help debug, monitor and diagnose the Appwrite stack
#
# Here is a description of the different tools and why are we using them:
#
# MailCatcher - An SMTP server. Catches all system emails and displays them in a nice UI.
# RequestCatcher - An HTTP server. Catches all system https calls and displays them using a simple HTTP API. Used to debug & tests webhooks and HTTP tasks
# RedisCommander - A nice UI for exploring Redis data
# Resque - A nice UI for exploring Reddis pub/sub, view the different queues workloads, pending and failed tasks
# Chronograf - A nice UI for exploring InfluxDB data
# Webgrind - A nice UI for exploring and debugging code-level stuff

maildev: # used mainly for dev tests
image: appwrite/mailcatcher:1.0.0
container_name: appwrite-mailcatcher
ports:
- '9503:1080'
networks:
- appwrite

request-catcher: # used mainly for dev tests
image: appwrite/requestcatcher:1.0.0
container_name: appwrite-requestcatcher
ports:
- '9504:5000'
networks:
- appwrite

adminer:
image: adminer
container_name: appwrite-adminer
restart: always
ports:
- 9506:8080
networks:
- appwrite

# redis-commander:
# image: rediscommander/redis-commander:latest
# restart: unless-stopped
# networks:
# - appwrite
# environment:
# - REDIS_HOSTS=redis
# ports:
# - "8081:8081"

# resque:
# image: appwrite/resque-web:1.1.0
# restart: unless-stopped
# networks:
# - appwrite
# ports:
# - "5678:5678"
# environment:
# - RESQUE_WEB_HOST=redis
# - RESQUE_WEB_PORT=6379
# - RESQUE_WEB_HTTP_BASIC_AUTH_USER=user
# - RESQUE_WEB_HTTP_BASIC_AUTH_PASSWORD=password

# chronograf:
# image: chronograf:1.6
# container_name: appwrite-chronograf
# restart: unless-stopped
# networks:
# - appwrite
# volumes:
# - appwrite-chronograf:/var/lib/chronograf
# ports:
# - "8888:8888"
# environment:
# - INFLUXDB_URL=http://influxdb:8086
# - KAPACITOR_URL=http://kapacitor:9092
# - AUTH_DURATION=48h
# - TOKEN_SECRET=duperduper5674829!jwt
# - GH_CLIENT_ID=d86f7145a41eacfc52cc
# - GH_CLIENT_SECRET=9e0081062367a2134e7f2ea95ba1a32d08b6c8ab
# - GH_ORGS=appwrite

# webgrind:
# image: 'jokkedk/webgrind:latest'
# volumes:
# - './debug:/tmp'
# ports:
# - '3001:80'
# Dev Tools End ------------------------------------------------------------------------------------------

networks:
networks:
gateway:
gateway:
appwrite:
appwrite:
runtimes:
runtimes:


volumes:
volumes:
appwrite-mariadb:
appwrite-mariadb:
appwrite-redis:
appwrite-redis:
appwrite-cache:
appwrite-cache:
appwrite-uploads:
appwrite-uploads:
appwrite-certificates:
appwrite-certificates:
appwrite-functions:
appwrite-functions:
appwrite-builds:
appwrite-builds:
appwrite-influxdb:
appwrite-influxdb:
appwrite-config:
appwrite-config:
appwrite-executor:
appwrite-executor:
# appwrite-chronograf: