|
3 | 3 | # Vibetype |
4 | 4 | # https://github.com/maevsi/vibetype/ |
5 | 5 | --- |
| 6 | + |
| 7 | +#version: "3.7" |
| 8 | + |
6 | 9 | secrets: |
7 | 10 | grafana_admin_email: |
8 | 11 | # The observation dashboard's admin email. |
@@ -100,6 +103,69 @@ secrets: |
100 | 103 | vibetype_turnstile-key: |
101 | 104 | # The captcha provider's application key. |
102 | 105 | file: ./secrets/vibetype/turnstile-key.secret |
| 106 | + |
| 107 | +x-shared: |
| 108 | + zammad-service: &zammad-service |
| 109 | + # shared environment, image, volumes |
| 110 | + environment: &zammad-environment |
| 111 | + MEMCACHE_SERVERS: ${MEMCACHE_SERVERS:-zammad-memcached:11211} |
| 112 | + POSTGRESQL_DB: zammad |
| 113 | + POSTGRESQL_HOST: postgres |
| 114 | + POSTGRESQL_USER: zammad |
| 115 | + POSTGRESQL_PASS: zammad |
| 116 | + POSTGRESQL_PORT: 5432 |
| 117 | + POSTGRESQL_OPTIONS: ${POSTGRESQL_OPTIONS:-?pool=50} |
| 118 | + POSTGRESQL_DB_CREATE: "false" |
| 119 | + REDIS_URL: ${REDIS_URL:-redis://zammad-redis:6379} |
| 120 | + S3_URL: |
| 121 | + # Backup settings |
| 122 | + BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}" |
| 123 | + BACKUP_TIME: "${BACKUP_TIME:-03:00}" |
| 124 | + HOLD_DAYS: "${HOLD_DAYS:-10}" |
| 125 | + TZ: "${TZ:-Europe/Berlin}" |
| 126 | + # Allow passing in these variables via .env: |
| 127 | + AUTOWIZARD_JSON: |
| 128 | + AUTOWIZARD_RELATIVE_PATH: |
| 129 | + ELASTICSEARCH_ENABLED: |
| 130 | + ELASTICSEARCH_SCHEMA: |
| 131 | + ELASTICSEARCH_HOST: |
| 132 | + ELASTICSEARCH_PORT: |
| 133 | + ELASTICSEARCH_USER: ${ELASTICSEARCH_USER:-elastic} |
| 134 | + ELASTICSEARCH_PASS: ${ELASTICSEARCH_PASS:-zammad} |
| 135 | + ELASTICSEARCH_NAMESPACE: |
| 136 | + ELASTICSEARCH_REINDEX: |
| 137 | + NGINX_PORT: 8080 |
| 138 | + NGINX_CLIENT_MAX_BODY_SIZE: |
| 139 | + NGINX_SERVER_NAME: zammad.${STACK_DOMAIN} |
| 140 | + NGINX_SERVER_SCHEME: https |
| 141 | + RAILS_TRUSTED_PROXIES: |
| 142 | + ZAMMAD_HTTP_TYPE: |
| 143 | + ZAMMAD_FQDN: |
| 144 | + ZAMMAD_WEB_CONCURRENCY: |
| 145 | + ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS: |
| 146 | + ZAMMAD_PROCESS_SCHEDULED_JOBS_WORKERS: |
| 147 | + ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS: |
| 148 | + ZAMMAD_RAILSSERVER_HOST: zammad-railsserver |
| 149 | + ZAMMAD_WEBSOCKET_HOST: zammad-websocket |
| 150 | + # ZAMMAD_SESSION_JOBS_CONCURRENT is deprecated, please use ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS instead. |
| 151 | + ZAMMAD_SESSION_JOBS_CONCURRENT: |
| 152 | + # Variables used by ngingx-proxy container for reverse proxy creations |
| 153 | + # for docs refer to https://github.com/nginx-proxy/nginx-proxy |
| 154 | + VIRTUAL_HOST: |
| 155 | + VIRTUAL_PORT: |
| 156 | + # Variables used by acme-companion for retrieval of LetsEncrypt certificate |
| 157 | + # for docs refer to https://github.com/nginx-proxy/acme-companion |
| 158 | + LETSENCRYPT_HOST: |
| 159 | + LETSENCRYPT_EMAIL: |
| 160 | + |
| 161 | + image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.5.0-89} |
| 162 | + volumes: |
| 163 | + - zammad-storage:/opt/zammad/storage |
| 164 | + depends_on: |
| 165 | + - zammad-memcached |
| 166 | + - postgresql |
| 167 | + - zammad-redis |
| 168 | + |
103 | 169 | services: |
104 | 170 | adminer: |
105 | 171 | # You can access the database's frontend at [adminer.localhost](https://adminer.localhost/). |
@@ -375,161 +441,6 @@ services: |
375 | 441 | volumes: |
376 | 442 | - ../../../reccoom/:/srv/app/ |
377 | 443 |
|
378 | | - zammad-elasticsearch: |
379 | | - image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.18.0} |
380 | | - restart: always |
381 | | - volumes: |
382 | | - - zammad_elasticsearch_data:/usr/share/elasticsearch/data |
383 | | - environment: |
384 | | - - discovery.type=single-node |
385 | | - |
386 | | - zammad-init: |
387 | | - image: zammad/zammad-docker-compose:latest |
388 | | - restart: on-failure |
389 | | - depends_on: |
390 | | - - postgres |
391 | | - - zammad-elasticsearch |
392 | | - volumes: |
393 | | - - zammad_storage:/opt/zammad/storage |
394 | | - environment: |
395 | | - - POSTGRESQL_DB_CREATE=false |
396 | | - - POSTGRESQL_HOST=postgres |
397 | | - - POSTGRESQL_USER_FILE=/run/secrets/POSTGRESQL_USER |
398 | | - - POSTGRESQL_PASS_FILE=/run/secrets/POSTGRESQL_PASS |
399 | | - - POSTGRESQL_DB=zammad |
400 | | - - ELASTICSEARCH_HOST=zammad-elasticsearch |
401 | | - - ELASTICSEARCH_PORT=9200 |
402 | | - - ZAMMAD_RAILSSERVER_HOST=zammad-railsserver |
403 | | - - ZAMMAD_WEBSOCKET_HOST=zammad-websocket |
404 | | - - NGINX_SERVER_NAME=zammad.${STACK_DOMAIN} |
405 | | - - REDIS_URL=redis://zammad-redis:6379 |
406 | | - secrets: |
407 | | - - source: postgres_role_service_zammad_username |
408 | | - target: POSTGRESQL_USER |
409 | | - - source: postgres_role_service_zammad_password |
410 | | - target: POSTGRESQL_PASS |
411 | | - command: ["zammad-init"] |
412 | | - |
413 | | - zammad-railsserver: |
414 | | - image: zammad/zammad-docker-compose:latest |
415 | | - restart: always |
416 | | - depends_on: |
417 | | - - zammad-init |
418 | | - environment: |
419 | | - - POSTGRESQL_HOST=postgres |
420 | | - - POSTGRESQL_USER_FILE=/run/secrets/POSTGRESQL_USER |
421 | | - - POSTGRESQL_PASS_FILE=/run/secrets/POSTGRESQL_PASS |
422 | | - - POSTGRESQL_DB=zammad |
423 | | - - ELASTICSEARCH_HOST=zammad-elasticsearch |
424 | | - - ELASTICSEARCH_PORT=9200 |
425 | | - - ZAMMAD_RAILSSERVER_HOST=zammad-railsserver |
426 | | - - ZAMMAD_WEBSOCKET_HOST=zammad-websocket |
427 | | - - REDIS_URL=redis://zammad-redis:6379 |
428 | | - secrets: |
429 | | - - source: postgres_role_service_zammad_username |
430 | | - target: POSTGRESQL_USER |
431 | | - - source: postgres_role_service_zammad_password |
432 | | - target: POSTGRESQL_PASS |
433 | | - volumes: |
434 | | - - zammad_storage:/opt/zammad/storage |
435 | | - deploy: |
436 | | - labels: |
437 | | - - traefik.enable=true |
438 | | - - traefik.http.routers.zammad-railsserver.entryPoints=web |
439 | | - - traefik.http.routers.zammad-railsserver.middlewares=redirectscheme |
440 | | - - traefik.http.routers.zammad-railsserver.rule=Host(`zammad.${STACK_DOMAIN}`) && PathPrefix(`/api`) |
441 | | - - traefik.http.routers.zammad-railsserver_secure.entryPoints=web-secure |
442 | | - - traefik.http.routers.zammad-railsserver_secure.rule=Host(`zammad.${STACK_DOMAIN}`) && PathPrefix(`/api`) |
443 | | - - traefik.http.routers.zammad-railsserver_secure.tls.options=mintls13@file |
444 | | - - traefik.http.services.zammad-railsserver.loadbalancer.server.port=3000 |
445 | | - command: ["zammad-railsserver"] |
446 | | - |
447 | | - zammad-scheduler: |
448 | | - image: zammad/zammad-docker-compose:latest |
449 | | - restart: always |
450 | | - depends_on: |
451 | | - - zammad-init |
452 | | - environment: |
453 | | - - POSTGRESQL_HOST=postgres |
454 | | - - POSTGRESQL_USER_FILE=/run/secrets/POSTGRESQL_USER |
455 | | - - POSTGRESQL_PASS_FILE=/run/secrets/POSTGRESQL_PASS |
456 | | - - POSTGRESQL_DB=zammad |
457 | | - - ELASTICSEARCH_HOST=zammad-elasticsearch |
458 | | - - ELASTICSEARCH_PORT=9200 |
459 | | - - ZAMMAD_RAILSSERVER_HOST=zammad-railsserver |
460 | | - - ZAMMAD_WEBSOCKET_HOST=zammad-websocket |
461 | | - - REDIS_URL=redis://zammad-redis:6379 |
462 | | - |
463 | | - secrets: |
464 | | - - source: postgres_role_service_zammad_username |
465 | | - target: POSTGRESQL_USER |
466 | | - - source: postgres_role_service_zammad_password |
467 | | - target: POSTGRESQL_PASS |
468 | | - command: ["zammad-scheduler"] |
469 | | - |
470 | | - zammad-redis: |
471 | | - image: redis:7-alpine |
472 | | - restart: always |
473 | | - |
474 | | - zammad-websocket: |
475 | | - image: zammad/zammad-docker-compose:latest |
476 | | - restart: always |
477 | | - depends_on: |
478 | | - - zammad-init |
479 | | - environment: |
480 | | - - POSTGRESQL_HOST=postgres |
481 | | - - POSTGRESQL_USER_FILE=/run/secrets/POSTGRESQL_USER |
482 | | - - POSTGRESQL_PASS_FILE=/run/secrets/POSTGRESQL_PASS |
483 | | - - POSTGRESQL_DB=zammad |
484 | | - - ELASTICSEARCH_HOST=zammad-elasticsearch |
485 | | - - ELASTICSEARCH_PORT=9200 |
486 | | - - ZAMMAD_RAILSSERVER_HOST=zammad-railsserver |
487 | | - - ZAMMAD_WEBSOCKET_HOST=zammad-websocket |
488 | | - - REDIS_URL=redis://zammad-redis:6379 |
489 | | - secrets: |
490 | | - - source: postgres_role_service_zammad_username |
491 | | - target: POSTGRESQL_USER |
492 | | - - source: postgres_role_service_zammad_password |
493 | | - target: POSTGRESQL_PASS |
494 | | - command: ["zammad-websocket"] |
495 | | - deploy: |
496 | | - labels: |
497 | | - - traefik.enable=true |
498 | | - - traefik.http.routers.zammad-websocket.entryPoints=web |
499 | | - - traefik.http.routers.zammad-websocket.middlewares=redirectscheme |
500 | | - - traefik.http.routers.zammad-websocket.rule=Host(`zammad.${STACK_DOMAIN}`) && PathPrefix(`/ws`) |
501 | | - - traefik.http.routers.zammad-websocket_secure.entryPoints=web-secure |
502 | | - - traefik.http.routers.zammad-websocket_secure.rule=Host(`zammad.${STACK_DOMAIN}`) && PathPrefix(`/ws`) |
503 | | - - traefik.http.routers.zammad-websocket_secure.tls.options=mintls13@file |
504 | | - - traefik.http.services.zammad-websocket.loadbalancer.server.port=6042 |
505 | | - |
506 | | - zammad-nginx: |
507 | | - image: zammad/zammad-docker-compose:latest |
508 | | - restart: always |
509 | | - depends_on: |
510 | | - - zammad-init |
511 | | - - zammad-railsserver |
512 | | - - zammad-websocket |
513 | | - environment: |
514 | | - - NGINX_SERVER_NAME=zammad.${STACK_DOMAIN} |
515 | | - - REDIS_URL=redis://zammad-redis:6379 |
516 | | - volumes: |
517 | | - - zammad_storage:/opt/zammad/storage |
518 | | - |
519 | | - deploy: |
520 | | - labels: |
521 | | - - traefik.enable=true |
522 | | - - traefik.http.routers.zammad.rule=Host(`zammad.${STACK_DOMAIN}`) |
523 | | - - traefik.http.routers.zammad.entryPoints=web |
524 | | - - traefik.http.routers.zammad.middlewares=redirectscheme |
525 | | - - traefik.http.routers.zammad_secure.rule=Host(`zammad.${STACK_DOMAIN}`) |
526 | | - - traefik.http.routers.zammad_secure.entryPoints=web-secure |
527 | | - - traefik.http.routers.zammad_secure.tls=true |
528 | | - - traefik.http.routers.zammad_secure.tls.options=mintls13@file |
529 | | - - traefik.http.services.zammad.loadbalancer.server.port=80 |
530 | | - command: ["zammad-nginx"] |
531 | | - command: ["sh", "-c", "sleep 60 && zammad-nginx"] |
532 | | - |
533 | 444 | redpanda: |
534 | 445 | # You can access the event streaming platform's ui as described under `redpanda-console`. |
535 | 446 | command: |
@@ -709,8 +620,80 @@ services: |
709 | 620 | - ${PNPM_STORE_DIR}:/srv/.pnpm-store/ #DARGSTACK-REMOVE |
710 | 621 | - ./certificates/:/srv/certificates/ #DARGSTACK-REMOVE |
711 | 622 | - ../../../vibetype/:/srv/app/ #DARGSTACK-REMOVE |
712 | | - - ./configurations/postgraphile/jwtRS256.key.pub:/run/environment-variables/NUXT_PUBLIC_VIO_AUTH_JWT_PUBLIC_KEY:ro |
713 | | -version: "3.7" |
| 623 | + - ./configurations/postgraphile/jwtRS256.key.pub:/run/environment-variables/NUXT_PUB1LIC_VIO_AUTH_JWT_PUBLIC_KEY:ro |
| 624 | + |
| 625 | + zammad-backup: |
| 626 | + # Zammad backup. |
| 627 | + <<: *zammad-service |
| 628 | + command: ["zammad-backup"] |
| 629 | + volumes: |
| 630 | + - zammad-backup:/var/tmp/zammad |
| 631 | + - zammad-storage:/opt/zammad/storage:ro |
| 632 | + user: 0:0 |
| 633 | + |
| 634 | + zammad-elasticsearch: |
| 635 | + # Zammad Elastisearch. |
| 636 | + image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.18.0} |
| 637 | + volumes: |
| 638 | + - zammad-elasticsearch-data:/bitnami/elasticsearch/data |
| 639 | + environment: |
| 640 | + # Enable authorization without HTTPS. For external access with |
| 641 | + # SSL termination, use solutions like nginx-proxy-manager. |
| 642 | + ELASTICSEARCH_ENABLE_SECURITY: 'true' |
| 643 | + ELASTICSEARCH_SKIP_TRANSPORT_TLS: 'true' |
| 644 | + ELASTICSEARCH_ENABLE_REST_TLS: 'false' |
| 645 | + # ELASTICSEARCH_USER is hardcoded to 'elastic' in the container. |
| 646 | + ELASTICSEARCH_PASSWORD: ${ELASTICSEARCH_PASS:-zammad} |
| 647 | + |
| 648 | + zammad-init: |
| 649 | + # Zammad initialization. |
| 650 | + <<: *zammad-service |
| 651 | + command: ["zammad-init"] |
| 652 | + depends_on: |
| 653 | + - postgresql |
| 654 | + user: 0:0 |
| 655 | + |
| 656 | + zammad-memcached: |
| 657 | + # Zammad memcached. |
| 658 | + command: memcached -m 256M |
| 659 | + image: memcached:${MEMCACHE_VERSION:-1.6.38-alpine} |
| 660 | + |
| 661 | + zammad-nginx: |
| 662 | + # You can access the Zammad frontend at [zammad.localhost](https://zammad.localhost/). |
| 663 | + <<: *zammad-service |
| 664 | + deploy: |
| 665 | + labels: |
| 666 | + - traefik.enable=true |
| 667 | + - traefik.http.routers.zammad.entryPoints=web |
| 668 | + - traefik.http.routers.zammad.middlewares=redirectscheme #DARGSTACK-REMOVE |
| 669 | + - traefik.http.routers.zammad.rule=Host(`zammad.${STACK_DOMAIN}`) |
| 670 | + - traefik.http.routers.zammad_secure.entryPoints=web-secure |
| 671 | + - traefik.http.routers.zammad_secure.rule=Host(`zammad.${STACK_DOMAIN}`) |
| 672 | + - traefik.http.routers.zammad_secure.tls.options=mintls13@file #DARGSTACK-REMOVE |
| 673 | + - traefik.http.services.zammad.loadbalancer.server.port=8080 |
| 674 | + command: ["zammad-nginx"] |
| 675 | + |
| 676 | + zammad-railsserver: |
| 677 | + # Zammad railsserver. |
| 678 | + <<: *zammad-service |
| 679 | + command: ["zammad-railsserver"] |
| 680 | + |
| 681 | + zammad-redis: |
| 682 | + # Zammad redis. |
| 683 | + image: redis:${REDIS_VERSION:-7.4.3-alpine} |
| 684 | + volumes: |
| 685 | + - zammad-redis-data:/data |
| 686 | + |
| 687 | + zammad-scheduler: |
| 688 | + # Zammad scheduler. |
| 689 | + <<: *zammad-service |
| 690 | + command: ["zammad-scheduler"] |
| 691 | + |
| 692 | + zammad-websocket: |
| 693 | + # Zammad websocket. |
| 694 | + <<: *zammad-service |
| 695 | + command: ["zammad-websocket"] |
| 696 | + |
714 | 697 | volumes: |
715 | 698 | debezium_kafka_configuration: |
716 | 699 | # The change data capture's configuration. |
@@ -739,5 +722,15 @@ volumes: |
739 | 722 | redpanda_data: |
740 | 723 | # The message queue's data. |
741 | 724 | {} |
742 | | - zammad_elasticsearch_data: {} |
743 | | - zammad_storage: {} |
| 725 | + zammad-elasticsearch-data: |
| 726 | + # Zammad's elastisearch data |
| 727 | + {} |
| 728 | + zammad-redis-data: |
| 729 | + # Zammad's redis data |
| 730 | + {} |
| 731 | + zammad-backup: |
| 732 | + # Zammad's backup data |
| 733 | + {} |
| 734 | + zammad-storage: |
| 735 | + # Zammad's storage data |
| 736 | + {} |
0 commit comments