409 lines
9.1 KiB
YAML
409 lines
9.1 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
traefik:
|
|
image: traefik:2.2
|
|
container_name: appwrite-traefik
|
|
command:
|
|
- --log.level=DEBUG
|
|
- --api.insecure=true
|
|
- --providers.file.directory=/storage/config
|
|
- --providers.file.watch=true
|
|
- --providers.docker=true
|
|
- --entrypoints.web.address=:80
|
|
- --entrypoints.websecure.address=:443
|
|
- --accesslog=true
|
|
restart: unless-stopped
|
|
ports:
|
|
- 2080:80
|
|
- 2443:443
|
|
- 8080:8080
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- appwrite-config:/storage/config:ro
|
|
- appwrite-certificates:/storage/certificates:ro
|
|
depends_on:
|
|
- appwrite
|
|
networks:
|
|
- gateway
|
|
- appwrite
|
|
|
|
appwrite:
|
|
container_name: appwrite
|
|
build:
|
|
context: .
|
|
args:
|
|
- TESTING=true
|
|
- VERSION=dev
|
|
restart: unless-stopped
|
|
ports:
|
|
- 9501:80
|
|
networks:
|
|
- appwrite
|
|
labels:
|
|
- traefik.http.routers.appwrite.rule=PathPrefix(`/`)
|
|
- traefik.http.routers.appwrite-secure.rule=PathPrefix(`/`)
|
|
- traefik.http.routers.appwrite-secure.tls=true
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
- appwrite-cache:/storage/cache:rw
|
|
- appwrite-config:/storage/config:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
- ./phpunit.xml:/usr/src/code/phpunit.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
|
|
depends_on:
|
|
- mariadb
|
|
- redis
|
|
- clamav
|
|
- influxdb
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_OPTIONS_ABUSE
|
|
- _APP_OPTIONS_FORCE_HTTPS
|
|
- _APP_OPENSSL_KEY_V1
|
|
- _APP_DOMAIN
|
|
- _APP_DOMAIN_TARGET
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_INFLUXDB_HOST
|
|
- _APP_INFLUXDB_PORT
|
|
- _APP_STORAGE_LIMIT
|
|
- _APP_FUNCTIONS_TIMEOUT
|
|
- _APP_FUNCTIONS_CONTAINERS
|
|
|
|
appwrite-worker-usage:
|
|
entrypoint: worker-usage
|
|
container_name: appwrite-worker-usage
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- telegraf
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_STATSD_HOST
|
|
- _APP_STATSD_PORT
|
|
|
|
appwrite-worker-audits:
|
|
entrypoint: worker-audits
|
|
container_name: appwrite-worker-audits
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
|
|
appwrite-worker-webhooks:
|
|
entrypoint: worker-webhooks
|
|
container_name: appwrite-worker-webhooks
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
|
|
appwrite-worker-tasks:
|
|
entrypoint: worker-tasks
|
|
container_name: appwrite-worker-tasks
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
|
|
appwrite-worker-deletes:
|
|
entrypoint: worker-deletes
|
|
container_name: appwrite-worker-deletes
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
volumes:
|
|
- appwrite-uploads:/storage/uploads:rw
|
|
- appwrite-cache:/storage/cache:rw
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
|
|
appwrite-worker-certificates:
|
|
entrypoint: worker-certificates
|
|
container_name: appwrite-worker-certificates
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
volumes:
|
|
- appwrite-config:/storage/config:rw
|
|
- appwrite-certificates:/storage/certificates:rw
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
|
|
appwrite-worker-functions:
|
|
entrypoint: worker-functions
|
|
container_name: appwrite-worker-functions
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- mariadb
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /tmp:/tmp:rw
|
|
- appwrite-functions:/storage/functions:rw
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_DB_HOST
|
|
- _APP_DB_PORT
|
|
- _APP_DB_SCHEMA
|
|
- _APP_DB_USER
|
|
- _APP_DB_PASS
|
|
- _APP_FUNCTIONS_TIMEOUT
|
|
- _APP_FUNCTIONS_CONTAINERS
|
|
|
|
appwrite-worker-mails:
|
|
entrypoint: worker-mails
|
|
container_name: appwrite-worker-mails
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
- maildev
|
|
# - smtp
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
- _APP_SMTP_HOST
|
|
- _APP_SMTP_PORT
|
|
|
|
appwrite-schedule:
|
|
entrypoint: schedule
|
|
container_name: appwrite-schedule
|
|
build:
|
|
context: .
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
depends_on:
|
|
- redis
|
|
environment:
|
|
- _APP_ENV
|
|
- _APP_REDIS_HOST
|
|
- _APP_REDIS_PORT
|
|
|
|
mariadb:
|
|
image: appwrite/mariadb:1.0.3 # 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
|
|
ports:
|
|
- "3306:3306"
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=rootsecretpassword
|
|
- MYSQL_DATABASE=appwrite
|
|
- MYSQL_USER=user
|
|
- MYSQL_PASSWORD=password
|
|
command: 'mysqld --innodb-flush-method=fsync'
|
|
|
|
maildev:
|
|
image: djfarrelly/maildev
|
|
container_name: appwrite-maildev
|
|
restart: unless-stopped
|
|
ports:
|
|
- '1080:80'
|
|
networks:
|
|
- appwrite
|
|
|
|
# smtp:
|
|
# image: appwrite/smtp:1.0.1
|
|
# container_name: appwrite-smtp
|
|
# restart: unless-stopped
|
|
# networks:
|
|
# - appwrite
|
|
# environment:
|
|
# - MAILNAME=appwrite
|
|
# - RELAY_NETWORKS=:192.168.0.0/24:10.0.0.0/16
|
|
|
|
redis:
|
|
image: redis:5.0
|
|
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: influxdb:1.6
|
|
container_name: appwrite-influxdb
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
volumes:
|
|
- appwrite-influxdb:/var/lib/influxdb:rw
|
|
|
|
telegraf:
|
|
image: appwrite/telegraf:1.0.0
|
|
container_name: appwrite-telegraf
|
|
restart: unless-stopped
|
|
networks:
|
|
- appwrite
|
|
|
|
# redis-commander:
|
|
# image: rediscommander/redis-commander:latest
|
|
# restart: unless-stopped
|
|
# networks:
|
|
# - appwrite
|
|
# environment:
|
|
# - REDIS_HOSTS=redis
|
|
# ports:
|
|
# - "8081:8081"
|
|
|
|
# resque:
|
|
# image: registry.gitlab.com/appwrite/appwrite/resque-web:v1.0.2
|
|
# 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.5
|
|
# 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'
|
|
|
|
networks:
|
|
gateway:
|
|
appwrite:
|
|
|
|
volumes:
|
|
appwrite-mariadb:
|
|
appwrite-redis:
|
|
appwrite-cache:
|
|
appwrite-uploads:
|
|
appwrite-certificates:
|
|
appwrite-functions:
|
|
appwrite-influxdb:
|
|
appwrite-chronograf:
|
|
appwrite-config:
|