{ "main": { "SERVICE_NAME": "openproject", "DOMAIN": "#OPENPROJECT_DOMAIN" }, "containers": [ { "IMAGE": "alpine:latest", "UPDATE": "true", "NAME": "openproject-init", "NETWORK": "host", "MEMORY": "64M", "VOLUMES": [ { "SOURCE": "USER_DATA", "DEST": "/etc/user/data", "TYPE": "rw" }, { "SOURCE": "SYSTEM_LOG", "DEST": "/etc/system/log", "TYPE": "rw" } ], "EXTRA": "--rm", "DEPEND": "null", "START_ON_BOOT": "false", "ENTRYPOINT": "sh -c", "CMD": "mkdir -p /etc/user/data/openproject/assets && chown -R 1000:1000 /etc/user/data/openproject/assets && mkdir -p /etc/user/data/openproject/db", "PRE_START": "null", "POST_START": "null" }, { "IMAGE": "postgres:13-alpine", "UPDATE": "true", "NAME": "openprojectpostgres-db", "MEMORY": "256M", "NETWORK": "openproject-net", "SELECTOR": "openprojectpostgres-db", "VOLUMES": [ { "SOURCE": "/etc/user/data/openproject/db", "DEST": "/var/lib/postgresql/data", "TYPE": "rw" } ], "PORTS": [ { "SOURCE": "null", "DEST": "5432", "TYPE": "tcp" } ], "ENV_FILES": [ "/etc/user/secret/openproject/openproject.json" ], "EXTRA": "--restart unless-stopped", "DEPEND": "null", "START_ON_BOOT": "false", "CMD": "null", "PRE_START": "null", "POST_START": "null" }, { "IMAGE": "openproject/openproject:15-slim", "UPDATE": "true", "NAME": "openprojectapp-web", "NETWORK": "openproject-net", "SELECTOR": "openprojectapp-web", "VOLUMES": [ { "SOURCE": "/etc/user/data/openproject/assets", "DEST": "/var/openproject/assets", "TYPE": "rw" } ], "PORTS": [ { "SOURCE": "8090", "DEST": "8080", "TYPE": "tcp" } ], "ENVS": [ { "OPENPROJECT_HTTPS": "false" }, { "OPENPROJECT_HOST__NAME": "#OPENPROJECT_DOMAIN" }, { "OPENPROJECT_HSTS": "false" }, { "RAILS_CACHE_STORE": "memcache" }, { "OPENPROJECT_CACHE__MEMCACHE__SERVER": "memcache-app:11211" }, { "OPENPROJECT_RAILS__RELATIVE__URL__ROOT": "/" }, { "RAILS_MIN_THREADS": "4" }, { "RAILS_MAX_THREADS": "16" }, { "IMAP_ENABLED": "true" } ], "ENV_FILES": [ "/etc/user/secret/openproject/openproject.json" ], "EXTRA": "--restart unless-stopped", "DEPEND": [], "START_ON_BOOT": "false", "CMD": "./docker/prod/web", "PRE_START": "null", "POST_START": [ "firewall-openproject", "domain-openproject", "firewall-openproject-dns", "firewall-openproject-smtp" ] }, { "IMAGE": "memcached:alpine", "UPDATE": "true", "NAME": "memcache-app", "NETWORK": "openproject-net", "EXTRA": "--restart unless-stopped", "DEPEND": [], "START_ON_BOOT": "false", "CMD": "null", "PRE_START": "null", "POST_START": [] }, { "IMAGE": "openproject/openproject:15-slim", "UPDATE": "true", "NAME": "openprojectapp-seeder", "NETWORK": "openproject-net", "VOLUMES": [ { "SOURCE": "/etc/user/data/openproject/assets", "DEST": "/var/openproject/assets", "TYPE": "rw" } ], "PORTS": [], "ENVS": [ { "OPENPROJECT_HTTPS": "false" }, { "OPENPROJECT_HOST__NAME": "#OPENPROJECT_DOMAIN" }, { "OPENPROJECT_HSTS": "false" }, { "RAILS_CACHE_STORE": "memcache" }, { "OPENPROJECT_CACHE__MEMCACHE__SERVER": "memcache-app:11211" }, { "OPENPROJECT_RAILS__RELATIVE__URL__ROOT": "/" }, { "RAILS_MIN_THREADS": "4" }, { "RAILS_MAX_THREADS": "16" }, { "IMAP_ENABLED": "true" } ], "ENV_FILES": [ "/etc/user/secret/openproject/openproject.json" ], "EXTRA": "--restart on-failure", "DEPEND": [], "START_ON_BOOT": "false", "CMD": "./docker/prod/seeder", "PRE_START": "null", "POST_START": [] }, { "IMAGE": "openproject/openproject:15-slim", "UPDATE": "true", "NAME": "openprojectapp-worker", "NETWORK": "openproject-net", "VOLUMES": [ { "SOURCE": "/etc/user/data/openproject/assets", "DEST": "/var/openproject/assets", "TYPE": "rw" } ], "PORTS": [], "ENVS": [ { "OPENPROJECT_HTTPS": "false" }, { "OPENPROJECT_HOST__NAME": "#OPENPROJECT_DOMAIN" }, { "OPENPROJECT_HSTS": "false" }, { "RAILS_CACHE_STORE": "memcache" }, { "OPENPROJECT_CACHE__MEMCACHE__SERVER": "memcache-app:11211" }, { "OPENPROJECT_RAILS__RELATIVE__URL__ROOT": "/" }, { "RAILS_MIN_THREADS": "4" }, { "RAILS_MAX_THREADS": "16" }, { "IMAP_ENABLED": "true" } ], "ENV_FILES": [ "/etc/user/secret/openproject/openproject.json" ], "EXTRA": "--restart unless-stopped", "DEPEND": [], "START_ON_BOOT": "false", "CMD": "./docker/prod/worker", "PRE_START": "null", "POST_START": [] }, { "IMAGE": "openproject/openproject:15-slim", "UPDATE": "true", "NAME": "openprojectapp-worker", "NETWORK": "openproject-net", "VOLUMES": [ { "SOURCE": "/etc/user/data/openproject/assets", "DEST": "/var/openproject/assets", "TYPE": "rw" } ], "PORTS": [], "ENVS": [ { "OPENPROJECT_HTTPS": "false" }, { "OPENPROJECT_HOST__NAME": "#OPENPROJECT_DOMAIN" }, { "OPENPROJECT_HSTS": "false" }, { "RAILS_CACHE_STORE": "memcache" }, { "OPENPROJECT_CACHE__MEMCACHE__SERVER": "memcache-app:11211" }, { "OPENPROJECT_RAILS__RELATIVE__URL__ROOT": "/" }, { "RAILS_MIN_THREADS": "4" }, { "RAILS_MAX_THREADS": "16" }, { "IMAP_ENABLED": "true" } ], "ENV_FILES": [ "/etc/user/secret/openproject/openproject.json" ], "EXTRA": "--restart unless-stopped", "DEPEND": [], "START_ON_BOOT": "false", "CMD": "./docker/prod/cron", "PRE_START": "null", "POST_START": [] } ] }