Created
March 29, 2021 20:21
-
-
Save edorgeville/c741e8136c6bb2c58435413252cb518b to your computer and use it in GitHub Desktop.
balena + appwrite
This file contains hidden or 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
| # WARNING! | |
| # This is a development version of THE Appwrite docker-compose.yml file. | |
| # Avoid using this file in your production environment. | |
| # We're exposing here sensetive ports and mounting code volumes for rapid development and debugging of the server stack. | |
| # For a production ready compose file please use: https://appwrite.io/docker-compose.yml | |
| version: '2' | |
| services: | |
| traefik: | |
| image: traefik:2.3 | |
| container_name: appwrite-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.web.address=:80 | |
| - --entrypoints.websecure.address=:443 | |
| - --accesslog=true | |
| - --providers.docker.endpoint=unix:///var/run/balena-engine.sock | |
| ports: | |
| - 80:80 | |
| - 443:443 | |
| - 9500: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 | |
| labels: | |
| - io.balena.features.balena-socket=1 | |
| appwrite: | |
| container_name: appwrite | |
| build: | |
| context: . | |
| # args: | |
| # - TESTING=true | |
| # - VERSION=dev | |
| ports: | |
| - 9501:80 | |
| networks: | |
| - appwrite | |
| labels: | |
| - io.balena.features.balena-socket=1 | |
| - traefik.enable=true | |
| - traefik.constraint-label-stack=appwrite | |
| - 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 | |
| # - ./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 | |
| depends_on: | |
| - mariadb | |
| - redis | |
| # - clamav | |
| - influxdb | |
| environment: | |
| - _APP_ENV | |
| - _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_STORAGE_ANTIVIRUS | |
| - _APP_STORAGE_ANTIVIRUS_HOST | |
| - _APP_STORAGE_ANTIVIRUS_PORT | |
| - _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_FUNCTIONS_TIMEOUT | |
| - _APP_FUNCTIONS_CONTAINERS | |
| - _APP_FUNCTIONS_CPUS | |
| - _APP_FUNCTIONS_MEMORY | |
| - _APP_FUNCTIONS_MEMORY_SWAP | |
| - _APP_FUNCTIONS_ENVS | |
| appwrite-worker-usage: | |
| entrypoint: worker-usage | |
| container_name: appwrite-worker-usage | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - telegraf | |
| environment: | |
| - _APP_ENV | |
| - _APP_REDIS_HOST | |
| - _APP_REDIS_PORT | |
| - _APP_REDIS_USER | |
| - _APP_REDIS_PASS | |
| - _APP_STATSD_HOST | |
| - _APP_STATSD_PORT | |
| appwrite-worker-audits: | |
| entrypoint: worker-audits | |
| container_name: appwrite-worker-audits | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - mariadb | |
| environment: | |
| - _APP_ENV | |
| - _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 | |
| appwrite-worker-webhooks: | |
| entrypoint: worker-webhooks | |
| container_name: appwrite-worker-webhooks | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - mariadb | |
| - request-catcher | |
| environment: | |
| - _APP_ENV | |
| - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
| - _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 | |
| appwrite-worker-tasks: | |
| entrypoint: worker-tasks | |
| container_name: appwrite-worker-tasks | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - mariadb | |
| environment: | |
| - _APP_ENV | |
| - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
| - _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 | |
| appwrite-worker-deletes: | |
| entrypoint: worker-deletes | |
| container_name: appwrite-worker-deletes | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| volumes: | |
| - appwrite-uploads:/storage/uploads:rw | |
| - appwrite-cache:/storage/cache:rw | |
| - appwrite-functions:/storage/functions:rw | |
| - appwrite-certificates:/storage/certificates:rw | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - mariadb | |
| environment: | |
| - _APP_ENV | |
| - _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 | |
| appwrite-worker-certificates: | |
| entrypoint: worker-certificates | |
| container_name: appwrite-worker-certificates | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| volumes: | |
| - appwrite-config:/storage/config:rw | |
| - appwrite-certificates:/storage/certificates:rw | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - mariadb | |
| environment: | |
| - _APP_ENV | |
| - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS | |
| - _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 | |
| appwrite-worker-functions: | |
| entrypoint: worker-functions | |
| container_name: appwrite-worker-functions | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| volumes: | |
| # - /var/run/docker.sock:/var/run/docker.sock | |
| - appwrite-functions:/storage/functions:rw | |
| # - /tmp:/tmp:rw | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| # - ./docker:/usr/src/code/docker | |
| depends_on: | |
| - redis | |
| - mariadb | |
| labels: | |
| - io.balena.features.balena-socket=1 | |
| environment: | |
| - _APP_ENV | |
| - _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_FUNCTIONS_CONTAINERS | |
| - _APP_FUNCTIONS_CPUS | |
| - _APP_FUNCTIONS_MEMORY | |
| - _APP_FUNCTIONS_MEMORY_SWAP | |
| - _APP_USAGE_STATS | |
| - DOCKERHUB_PULL_USERNAME | |
| - DOCKERHUB_PULL_PASSWORD | |
| appwrite-worker-mails: | |
| entrypoint: worker-mails | |
| container_name: appwrite-worker-mails | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| - maildev | |
| # - smtp | |
| environment: | |
| - _APP_ENV | |
| - _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 | |
| appwrite-maintenance: | |
| entrypoint: maintenance | |
| container_name: appwrite-maintenance | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| environment: | |
| - _APP_ENV | |
| - _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-schedule: | |
| entrypoint: schedule | |
| container_name: appwrite-schedule | |
| build: | |
| context: . | |
| networks: | |
| - appwrite | |
| # volumes: | |
| # - ./app:/usr/src/code/app | |
| # - ./src:/usr/src/code/src | |
| depends_on: | |
| - redis | |
| environment: | |
| - _APP_ENV | |
| - _APP_REDIS_HOST | |
| - _APP_REDIS_PORT | |
| - _APP_REDIS_USER | |
| - _APP_REDIS_PASS | |
| mariadb: | |
| image: appwrite/mariadb:1.2.0 # fix issues when upgrading using: mysql_upgrade -u root -p | |
| container_name: appwrite-mariadb | |
| networks: | |
| - appwrite | |
| volumes: | |
| - appwrite-mariadb:/var/lib/mysql:rw | |
| ports: | |
| - "3306:3306" | |
| environment: | |
| - MYSQL_ROOT_PASSWORD=password | |
| - MYSQL_DATABASE=${_APP_DB_SCHEMA} | |
| - MYSQL_USER=${_APP_DB_USER} | |
| - MYSQL_PASSWORD=${_APP_DB_PASS} | |
| command: 'mysqld --innodb-flush-method=fsync' # add ' --query_cache_size=0' for DB tests | |
| # 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: | |
| image: redis:6.0-alpine | |
| container_name: appwrite-redis | |
| networks: | |
| - appwrite | |
| volumes: | |
| - appwrite-redis:/data:rw | |
| # clamav: | |
| # image: appwrite/clamav:1.2.0 | |
| # container_name: appwrite-clamav | |
| # networks: | |
| # - appwrite | |
| # volumes: | |
| # - appwrite-uploads:/storage/uploads | |
| influxdb: | |
| image: appwrite/influxdb:1.0.0 | |
| container_name: appwrite-influxdb | |
| networks: | |
| - appwrite | |
| volumes: | |
| - appwrite-influxdb:/var/lib/influxdb:rw | |
| telegraf: | |
| image: appwrite/telegraf:1.1.0 | |
| container_name: appwrite-telegraf | |
| networks: | |
| - appwrite | |
| # 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 | |
| restart: always | |
| ports: | |
| - 9505: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.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' | |
| # Dev Tools End ------------------------------------------------------------------------------------------ | |
| networks: | |
| gateway: | |
| appwrite: | |
| volumes: | |
| appwrite-mariadb: | |
| appwrite-redis: | |
| appwrite-cache: | |
| appwrite-uploads: | |
| appwrite-certificates: | |
| appwrite-functions: | |
| appwrite-influxdb: | |
| appwrite-config: | |
| # appwrite-chronograf: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment