commit a47c4ee0bb086d53359fea07726ae6c15c4ec335 Author: kevinowino869 Date: Fri Feb 28 11:25:40 2025 +0100 Add docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6e4a9ca --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,133 @@ +x-shared: + zammad-service: &zammad-service + environment: &zammad-environment + MEMCACHE_SERVERS: ${MEMCACHE_SERVERS:-zammad-memcached:11211} + POSTGRESQL_DB: ${POSTGRES_DB:-zammad_db} + POSTGRESQL_HOST: ${POSTGRES_HOST:-zammad-postgresql} + POSTGRESQL_USER: ${POSTGRES_USER:-zammad} + POSTGRESQL_PASS: ${POSTGRES_PASS:-zammad} + POSTGRESQL_PORT: ${POSTGRES_PORT:-5432} + POSTGRESQL_OPTIONS: ${POSTGRESQL_OPTIONS:-?pool=50} + POSTGRESQL_DB_CREATE: + REDIS_URL: ${REDIS_URL:-redis://zammad-redis:6379} + S3_URL: + # Backup settings + BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}" + BACKUP_TIME: "${BACKUP_TIME:-03:00}" + HOLD_DAYS: "${HOLD_DAYS:-10}" + TZ: "${TZ:-Africa/Nairobi}" + # Allow passing in these variables via .env: + AUTOWIZARD_JSON: + AUTOWIZARD_RELATIVE_PATH: + ELASTICSEARCH_ENABLED: + ELASTICSEARCH_HOST: + ELASTICSEARCH_PORT: + ELASTICSEARCH_SCHEMA: + ELASTICSEARCH_NAMESPACE: + ELASTICSEARCH_REINDEX: + ELASTICSEARCH_SSL_VERIFY: + NGINX_PORT: + NGINX_CLIENT_MAX_BODY_SIZE: + NGINX_SERVER_NAME: + NGINX_SERVER_SCHEME: + RAILS_TRUSTED_PROXIES: + ZAMMAD_WEB_CONCURRENCY: + ZAMMAD_SESSION_JOBS: + ZAMMAD_PROCESS_SCHEDULED: + ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS: + # Variables used by ngingx-proxy container for reverse proxy creations + # for docs refer to https://github.com/nginx-proxy/nginx-proxy + VIRTUAL_HOST: + VIRTUAL_PORT: + # Variables used by acme-companion for retrieval of LetsEncrypt certificate + # for docs refer to https://github.com/nginx-proxy/acme-companion + LETSENCRYPT_HOST: + LETSENCRYPT_EMAIL: + + image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.4.1-45} + restart: ${RESTART:-always} + volumes: + - zammad-storage:/opt/zammad/storage + depends_on: + - zammad-memcached + - zammad-postgresql + - zammad-redis + +services: + + zammad-backup: + <<: *zammad-service + command: ["zammad-backup"] + volumes: + - zammad-backup:/var/tmp/zammad + - zammad-storage:/opt/zammad/storage:ro + user: 0:0 + + zammad-elasticsearch: + image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.17.1} + restart: ${RESTART:-always} + volumes: + - elasticsearch-data:/bitnami/elasticsearch/data + + zammad-init: + <<: *zammad-service + command: ["zammad-init"] + depends_on: + - zammad-postgresql + restart: on-failure + user: 0:0 + + zammad-memcached: + command: memcached -m 1256M + image: memcached:${MEMCACHE_VERSION:-1.6.36-alpine} + restart: ${RESTART:-always} + + zammad-nginx: + <<: *zammad-service + command: ["zammad-nginx"] + expose: + - "${NGINX_PORT:-10000}" + ports: + - "${NGINX_EXPOSE_PORT:-10000}:${NGINX_PORT:-10000}" + depends_on: + - zammad-railsserver + + zammad-postgresql: + environment: + POSTGRES_DB: ${POSTGRES_DB:-zammad_production} + POSTGRES_USER: ${POSTGRES_USER:-zammad} + POSTGRES_PASSWORD: ${POSTGRES_PASS:-zammad} + image: postgres:${POSTGRES_VERSION:-17.2-alpine} + restart: ${RESTART:-always} + volumes: + - postgresql-data:/var/lib/postgresql/data + + zammad-railsserver: + <<: *zammad-service + command: ["zammad-railsserver"] + + zammad-redis: + image: redis:${REDIS_VERSION:-7.4.2-alpine} + restart: ${RESTART:-always} + volumes: + - redis-data:/data + + zammad-scheduler: + <<: *zammad-service + command: ["zammad-scheduler"] + + zammad-websocket: + <<: *zammad-service + command: ["zammad-websocket"] + +volumes: + elasticsearch-data: + driver: local + postgresql-data: + driver: local + redis-data: + driver: local + zammad-backup: + driver: local + zammad-storage: + driver: local \ No newline at end of file