forked from CCCHH/ansible-infra
		
	
		
			
				
	
	
		
			158 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Django/Jinja
		
	
	
	
	
	
| ---
 | |
| version: '3.8'
 | |
| 
 | |
| {#
 | |
| https://github.com/zammad/zammad-docker-compose
 | |
| Docker Compose does not allow defining variables in the compose file (only in .env files), so we use Jinja variables instead
 | |
| see https://github.com/zammad/zammad-docker-compose/blob/master/.env
 | |
| #}
 | |
| {%- set ELASTICSEARCH_VERSION = "8" | quote -%}
 | |
| {%- set IMAGE_REPO = "ghcr.io/zammad/zammad" | quote -%}
 | |
| {%- set MEMCACHE_SERVERS = "zammad-memcached:11211" | quote -%}
 | |
| {%- set MEMCACHE_VERSION = "1.6-alpine" | quote -%}
 | |
| {%- set POSTGRES_DB = "zammad_production" | quote -%}
 | |
| {%- set POSTGRES_HOST = "zammad-postgresql" | quote -%}
 | |
| {%- set POSTGRES_USER = "zammad" | quote -%}
 | |
| {%- set POSTGRES_PASS = lookup("community.general.passwordstore", "noc/vm-secrets/chaosknoten/zammad/DB_PASSWORD", create=false, missing="error") | quote -%}
 | |
| {%- set POSTGRES_PORT = "5432" | quote -%}
 | |
| {%- set POSTGRES_VERSION = "15-alpine" | quote -%}
 | |
| {%- set REDIS_URL = "redis://zammad-redis:6379" | quote -%}
 | |
| {%- set REDIS_VERSION = "7-alpine" | quote -%}
 | |
| {%- set RESTART = "always" | quote -%}
 | |
| {%- set VERSION = "6" | quote -%}
 | |
| x-shared:
 | |
|   zammad-service: &zammad-service
 | |
|     environment: &zammad-environment
 | |
|       MEMCACHE_SERVERS: {{ MEMCACHE_SERVERS }}
 | |
|       POSTGRESQL_DB: {{ POSTGRES_DB }}
 | |
|       POSTGRESQL_HOST: {{ POSTGRES_HOST }}
 | |
|       POSTGRESQL_USER: {{ POSTGRES_USER }}
 | |
|       POSTGRESQL_PASS: {{ POSTGRES_PASS }}
 | |
|       POSTGRESQL_PORT: {{ POSTGRES_PORT }}
 | |
|       REDIS_URL: {{ REDIS_URL }}
 | |
|       # 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_SERVER_NAME:
 | |
|       NGINX_SERVER_SCHEME: https
 | |
|       POSTGRESQL_DB_CREATE:
 | |
|       POSTGRESQL_OPTIONS:
 | |
|       RAILS_TRUSTED_PROXIES:
 | |
|       ZAMMAD_WEB_CONCURRENCY:
 | |
|       ZAMMAD_SESSION_JOBS:
 | |
|       ZAMMAD_PROCESS_SCHEDULED:
 | |
|       ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
 | |
|     image: {{ IMAGE_REPO }}:{{ VERSION }}
 | |
|     restart: {{ RESTART }}
 | |
|     volumes:
 | |
|       - zammad-storage:/opt/zammad/storage
 | |
|       - zammad-var:/opt/zammad/var
 | |
|     depends_on:
 | |
|       - zammad-memcached
 | |
|       - zammad-postgresql
 | |
|       - zammad-redis
 | |
| 
 | |
| services:
 | |
| 
 | |
|   zammad-backup:
 | |
|     command: ["zammad-backup"]
 | |
|     depends_on:
 | |
|       - zammad-railsserver
 | |
|       - zammad-postgresql
 | |
|     entrypoint: /usr/local/bin/backup.sh
 | |
|     environment:
 | |
|       <<: *zammad-environment
 | |
|       BACKUP_TIME: "03:00"
 | |
|       HOLD_DAYS: "10"
 | |
|       TZ: Europe/Berlin
 | |
|     image: postgres:{{ POSTGRES_VERSION }}
 | |
|     restart: {{ RESTART }}
 | |
|     volumes:
 | |
|       - zammad-backup:/var/tmp/zammad
 | |
|       - zammad-storage:/opt/zammad/storage:ro
 | |
|       - zammad-var:/opt/zammad/var:ro
 | |
|       - ./scripts/backup.sh:/usr/local/bin/backup.sh:ro
 | |
| 
 | |
|   zammad-elasticsearch:
 | |
|     image: bitnami/elasticsearch:{{ ELASTICSEARCH_VERSION }}
 | |
|     restart: {{ RESTART }}
 | |
|     volumes:
 | |
|       - elasticsearch-data:/bitnami/elasticsearch/data
 | |
| 
 | |
|   zammad-init:
 | |
|     <<: *zammad-service
 | |
|     command: ["zammad-init"]
 | |
|     depends_on:
 | |
|       - zammad-postgresql
 | |
|     restart: on-failure
 | |
|     user: 0:0
 | |
|     volumes:
 | |
|       - zammad-storage:/opt/zammad/storage
 | |
|       - zammad-var:/opt/zammad/var
 | |
| 
 | |
|   zammad-memcached:
 | |
|     command: memcached -m 256M
 | |
|     image: memcached:{{ MEMCACHE_VERSION }}
 | |
|     restart: {{ RESTART }}
 | |
| 
 | |
|   zammad-nginx:
 | |
|     <<: *zammad-service
 | |
|     command: ["zammad-nginx"]
 | |
|     expose:
 | |
|       - "8080"
 | |
|     ports:
 | |
|       - "8080:8080"
 | |
|     depends_on:
 | |
|       - zammad-railsserver
 | |
|     volumes:
 | |
|       - zammad-var:/opt/zammad/var:ro # required for the zammad-ready check file
 | |
| 
 | |
|   zammad-postgresql:
 | |
|     environment:
 | |
|       POSTGRES_DB: {{ POSTGRES_DB }}
 | |
|       POSTGRES_USER: {{ POSTGRES_USER }}
 | |
|       POSTGRES_PASSWORD: {{ POSTGRES_PASS }}
 | |
|     image: postgres:{{ POSTGRES_VERSION }}
 | |
|     restart: {{ RESTART }}
 | |
|     volumes:
 | |
|       - postgresql-data:/var/lib/postgresql/data
 | |
| 
 | |
|   zammad-railsserver:
 | |
|     <<: *zammad-service
 | |
|     command: ["zammad-railsserver"]
 | |
| 
 | |
|   zammad-redis:
 | |
|     image: redis:{{ REDIS_VERSION }}
 | |
|     restart: {{ RESTART }}
 | |
|     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
 | |
|   zammad-var:
 | |
|     driver: local
 |