mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-03 18:36:22 +00:00
- VOL_PATH always defaults to /data; vscode/opencode VOL_PROJECTS nests it - TZ defaults to America/Vancouver (was UTC in etherpad, ntfy, redis) - compose section order fixed (volumes before environment, command after networks) - all default secrets are the literal ChangeThisPassword (grep-friendly, users must change them); removed a real key from ollama sample.env - sample.env synced with compose: missing vars added with defaults, dead vars removed - invoiceninja_dev/openarchiver_dev: app services had no environment block, wired all sample.env vars through so the stacks actually work - opencode: sample.env OLLAMA_HOST renamed to OLLAMA_HOST_URL to match compose - TZ values unquoted consistently Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
238 lines
8.7 KiB
YAML
238 lines
8.7 KiB
YAML
services:
|
|
zammad-postgresql:
|
|
image: postgres:${POSTGRES_VERSION:-17.5-alpine}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/postgresql:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRES_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASS:-ChangeThisPassword}
|
|
networks:
|
|
- internal
|
|
|
|
zammad-redis:
|
|
image: redis:${REDIS_VERSION:-7.4.5-alpine}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/redis:/data
|
|
networks:
|
|
- internal
|
|
|
|
zammad-memcached:
|
|
image: memcached:${MEMCACHE_VERSION:-1.6.39-alpine}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/memcached:/data
|
|
networks:
|
|
- internal
|
|
command: memcached -m 256M
|
|
|
|
zammad-elasticsearch:
|
|
image: elasticsearch:${ELASTICSEARCH_VERSION:-8.19.2}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/elasticsearch:/usr/share/elasticsearch/data
|
|
environment:
|
|
- discovery.type=single-node
|
|
- xpack.security.enabled=false
|
|
- ES_JAVA_OPTS=${ELASTICSEARCH_JAVA_OPTS:--Xms1g -Xmx1g}
|
|
networks:
|
|
- internal
|
|
|
|
zammad-init:
|
|
image: ${ZAMMAD_IMAGE:-ghcr.io/zammad/zammad:latest}
|
|
restart: on-failure
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/storage:/opt/zammad/storage
|
|
environment:
|
|
- TZ=${TZ:-America/Vancouver}
|
|
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
- POSTGRESQL_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRESQL_HOST=${POSTGRES_HOST:-zammad-postgresql}
|
|
- POSTGRESQL_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRESQL_PASS=${POSTGRES_PASS:-ChangeThisPassword}
|
|
- POSTGRESQL_PORT=${POSTGRES_PORT:-5432}
|
|
- POSTGRESQL_OPTIONS=${POSTGRESQL_OPTIONS:-?pool=50}
|
|
- POSTGRESQL_DB_CREATE=${POSTGRESQL_DB_CREATE:-true}
|
|
- REDIS_URL=${REDIS_URL:-redis://zammad-redis:6379}
|
|
- ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED:-true}
|
|
- ELASTICSEARCH_SCHEMA=http
|
|
- ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST:-zammad-elasticsearch}
|
|
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT:-9200}
|
|
- NGINX_PORT=${NGINX_PORT:-8080}
|
|
- NGINX_SERVER_NAME=${NGINX_SERVER_NAME:-_}
|
|
- NGINX_SERVER_SCHEME=$scheme
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- zammad-postgresql
|
|
- zammad-redis
|
|
- zammad-memcached
|
|
- zammad-elasticsearch
|
|
command: ["zammad-init"]
|
|
user: 0:0
|
|
|
|
zammad-railsserver:
|
|
image: ${ZAMMAD_IMAGE:-ghcr.io/zammad/zammad:latest}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/storage:/opt/zammad/storage
|
|
environment:
|
|
- TZ=${TZ:-America/Vancouver}
|
|
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
- POSTGRESQL_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRESQL_HOST=${POSTGRES_HOST:-zammad-postgresql}
|
|
- POSTGRESQL_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRESQL_PASS=${POSTGRES_PASS:-ChangeThisPassword}
|
|
- POSTGRESQL_PORT=${POSTGRES_PORT:-5432}
|
|
- POSTGRESQL_OPTIONS=${POSTGRESQL_OPTIONS:-?pool=50}
|
|
- REDIS_URL=${REDIS_URL:-redis://zammad-redis:6379}
|
|
- ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED:-true}
|
|
- ELASTICSEARCH_SCHEMA=http
|
|
- ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST:-zammad-elasticsearch}
|
|
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT:-9200}
|
|
- NGINX_PORT=${NGINX_PORT:-8080}
|
|
- NGINX_SERVER_NAME=${NGINX_SERVER_NAME:-_}
|
|
- RAILS_TRUSTED_PROXIES=${RAILS_TRUSTED_PROXIES:-"['127.0.0.1', '::1']"}
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- zammad-postgresql
|
|
- zammad-redis
|
|
- zammad-memcached
|
|
- zammad-elasticsearch
|
|
command: ["zammad-railsserver"]
|
|
|
|
zammad-scheduler:
|
|
image: ${ZAMMAD_IMAGE:-ghcr.io/zammad/zammad:latest}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/storage:/opt/zammad/storage
|
|
environment:
|
|
- TZ=${TZ:-America/Vancouver}
|
|
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
- POSTGRESQL_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRESQL_HOST=${POSTGRES_HOST:-zammad-postgresql}
|
|
- POSTGRESQL_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRESQL_PASS=${POSTGRES_PASS:-ChangeThisPassword}
|
|
- POSTGRESQL_PORT=${POSTGRES_PORT:-5432}
|
|
- POSTGRESQL_OPTIONS=${POSTGRESQL_OPTIONS:-?pool=50}
|
|
- REDIS_URL=${REDIS_URL:-redis://zammad-redis:6379}
|
|
- ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED:-true}
|
|
- ELASTICSEARCH_SCHEMA=http
|
|
- ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST:-zammad-elasticsearch}
|
|
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT:-9200}
|
|
- NGINX_PORT=${NGINX_PORT:-8080}
|
|
- NGINX_SERVER_NAME=${NGINX_SERVER_NAME:-_}
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- zammad-postgresql
|
|
- zammad-redis
|
|
- zammad-memcached
|
|
- zammad-elasticsearch
|
|
command: ["zammad-scheduler"]
|
|
|
|
zammad-websocket:
|
|
image: ${ZAMMAD_IMAGE:-ghcr.io/zammad/zammad:latest}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/storage:/opt/zammad/storage
|
|
environment:
|
|
- TZ=${TZ:-America/Vancouver}
|
|
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
- POSTGRESQL_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRESQL_HOST=${POSTGRES_HOST:-zammad-postgresql}
|
|
- POSTGRESQL_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRESQL_PASS=${POSTGRES_PASS:-ChangeThisPassword}
|
|
- POSTGRESQL_PORT=${POSTGRES_PORT:-5432}
|
|
- POSTGRESQL_OPTIONS=${POSTGRESQL_OPTIONS:-?pool=50}
|
|
- REDIS_URL=${REDIS_URL:-redis://zammad-redis:6379}
|
|
- ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED:-true}
|
|
- ELASTICSEARCH_SCHEMA=http
|
|
- ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST:-zammad-elasticsearch}
|
|
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT:-9200}
|
|
- NGINX_PORT=${NGINX_PORT:-8080}
|
|
- NGINX_SERVER_NAME=${NGINX_SERVER_NAME:-_}
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- zammad-postgresql
|
|
- zammad-redis
|
|
- zammad-memcached
|
|
- zammad-elasticsearch
|
|
command: ["zammad-websocket"]
|
|
|
|
zammad-backup:
|
|
image: ${ZAMMAD_IMAGE:-ghcr.io/zammad/zammad:latest}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/backup:/var/tmp/zammad
|
|
- ${VOL_PATH:-/data}/zammad/storage:/opt/zammad/storage:ro
|
|
environment:
|
|
- TZ=${TZ:-America/Vancouver}
|
|
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
- POSTGRESQL_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRESQL_HOST=${POSTGRES_HOST:-zammad-postgresql}
|
|
- POSTGRESQL_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRESQL_PASS=${POSTGRES_PASS:-ChangeThisPassword}
|
|
- POSTGRESQL_PORT=${POSTGRES_PORT:-5432}
|
|
- POSTGRESQL_OPTIONS=${POSTGRESQL_OPTIONS:-?pool=50}
|
|
- REDIS_URL=${REDIS_URL:-redis://zammad-redis:6379}
|
|
- ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED:-true}
|
|
- ELASTICSEARCH_SCHEMA=http
|
|
- ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST:-zammad-elasticsearch}
|
|
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT:-9200}
|
|
- BACKUP_DIR=/var/tmp/zammad
|
|
- BACKUP_TIME=${BACKUP_TIME:-03:00}
|
|
- HOLD_DAYS=${HOLD_DAYS:-10}
|
|
- NGINX_PORT=${NGINX_PORT:-8080}
|
|
- NGINX_SERVER_NAME=${NGINX_SERVER_NAME:-_}
|
|
networks:
|
|
- internal
|
|
depends_on:
|
|
- zammad-postgresql
|
|
- zammad-redis
|
|
- zammad-memcached
|
|
- zammad-elasticsearch
|
|
command: ["zammad-backup"]
|
|
user: 0:0
|
|
|
|
zammad-nginx:
|
|
image: ${ZAMMAD_IMAGE:-ghcr.io/zammad/zammad:latest}
|
|
restart: ${ZAMMAD_RESTART:-always}
|
|
volumes:
|
|
- ${VOL_PATH:-/data}/zammad/storage:/opt/zammad/storage
|
|
environment:
|
|
- TZ=${TZ:-America/Vancouver}
|
|
- MEMCACHE_SERVERS=${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
- POSTGRESQL_DB=${POSTGRES_DB:-zammad_production}
|
|
- POSTGRESQL_HOST=${POSTGRES_HOST:-zammad-postgresql}
|
|
- POSTGRESQL_USER=${POSTGRES_USER:-zammad}
|
|
- POSTGRESQL_PASS=${POSTGRES_PASS:-ChangeThisPassword}
|
|
- POSTGRESQL_PORT=${POSTGRES_PORT:-5432}
|
|
- POSTGRESQL_OPTIONS=${POSTGRESQL_OPTIONS:-?pool=50}
|
|
- REDIS_URL=${REDIS_URL:-redis://zammad-redis:6379}
|
|
- ELASTICSEARCH_ENABLED=${ELASTICSEARCH_ENABLED:-true}
|
|
- ELASTICSEARCH_SCHEMA=http
|
|
- ELASTICSEARCH_HOST=${ELASTICSEARCH_HOST:-zammad-elasticsearch}
|
|
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT:-9200}
|
|
- NGINX_PORT=${NGINX_PORT:-8080}
|
|
- NGINX_SERVER_NAME=${NGINX_SERVER_NAME:-_}
|
|
- NGINX_SERVER_SCHEME=$scheme
|
|
- RAILS_TRUSTED_PROXIES=${RAILS_TRUSTED_PROXIES:-"['127.0.0.1', '::1']"}
|
|
ports:
|
|
- "${ZAMMAD_PORT:-8080}:${NGINX_PORT:-8080}"
|
|
networks:
|
|
- proxy
|
|
- internal
|
|
depends_on:
|
|
- zammad-railsserver
|
|
command: ["zammad-nginx"]
|
|
|
|
networks:
|
|
proxy:
|
|
external: true
|
|
internal:
|