From 17b50c1445d84db713f2236ed00be38b70d4456e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 29 May 2025 08:37:41 -0400 Subject: [PATCH] Replacing Zammad with FreeScout. --- docker-compose.yml | 204 ++++++++++----------------------------------- 1 file changed, 45 insertions(+), 159 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ad4ed52e..ac8f56bb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,65 +21,6 @@ x-app-common: &jitsi_admin_app PHP_INI_MEMORY_LIMIT: "1G" PHP_EXTENSION_LDAP: 1 PHP_EXTENSION_INTL: 1 -x-shared: - zammad-service: &zammad-service - environment: &zammad-environment - MEMCACHE_SERVERS: ${ZAMMAD_MEMCACHE_SERVERS:-zammad-memcached:11211} - POSTGRESQL_DB: ${ZAMMAD_POSTGRES_DB:-zammad_production} - POSTGRESQL_HOST: ${ZAMMAD_POSTGRES_HOST:-zammad-postgresql} - POSTGRESQL_USER: ${ZAMMAD_POSTGRES_USER:-zammad} - POSTGRESQL_PASS: ${ZAMMAD_POSTGRES_PASS:-zammad} - POSTGRESQL_PORT: ${ZAMMAD_POSTGRES_PORT:-5432} - POSTGRESQL_OPTIONS: ${ZAMMAD_POSTGRESQL_OPTIONS:-?pool=50} - POSTGRESQL_DB_CREATE: - REDIS_URL: ${ZAMMAD_REDIS_URL:-redis://zammad-redis:6379} - S3_URL: http://${ZAMMAD_S3_ACCESS_KEY}:${ZAMMAD_S3_SECRET_KEY}@minio:9000/zammad-storage-bucket?region=us-east-fh-pln&force_path_style=true - # Backup settings - BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}" - BACKUP_TIME: "${BACKUP_TIME:-03:00}" - HOLD_DAYS: "${HOLD_DAYS:-7}" - TZ: "${TZ:-Europe/Berlin}" - # Allow passing in these variables via .env: - AUTOWIZARD_JSON: - AUTOWIZARD_RELATIVE_PATH: - ELASTICSEARCH_ENABLED: false - ELASTICSEARCH_SCHEMA: - ELASTICSEARCH_HOST: - ELASTICSEARCH_PORT: - ELASTICSEARCH_USER: ${ELASTICSEARCH_USER:-elastic} - ELASTICSEARCH_PASS: ${ELASTICSEARCH_PASS:-zammad} - ELASTICSEARCH_NAMESPACE: - ELASTICSEARCH_REINDEX: - NGINX_PORT: - NGINX_EXPOSE_PORT: 15257 - NGINX_CLIENT_MAX_BODY_SIZE: - NGINX_SERVER_NAME: - NGINX_SERVER_SCHEME: - RAILS_TRUSTED_PROXIES: 172.18.0.0/16 - ZAMMAD_HTTP_TYPE: - ZAMMAD_FQDN: - ZAMMAD_WEB_CONCURRENCY: - ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS: - ZAMMAD_PROCESS_SCHEDULED_JOBS_WORKERS: - ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS: - # ZAMMAD_SESSION_JOBS_CONCURRENT is deprecated, please use ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS instead. - ZAMMAD_SESSION_JOBS_CONCURRENT: - # 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.5.0-15} - restart: ${RESTART:-always} - volumes: - - zammad-storage:/opt/zammad/storage - depends_on: - - zammad-memcached - - zammad-postgresql - - zammad-redis x-maxun: &maxun-env environment: NODE_ENV: production @@ -1204,6 +1145,50 @@ services: source: /rinoa-storage target: /storage type: bind + freescout-app: + container_name: freescout + depends_on: + mariadb: + condition: service_started + required: true + environment: + ADMIN_EMAIL: it-services@${MY_TLD} + ADMIN_FIRST_NAME: Treasured + ADMIN_LAST_NAME: IT + ADMIN_PASS: ${FREESCOUT_ADMIN_PASS} + APP_TRUSTED_PROXIES: 172.18.0.0/16,192.168.1.0/24 + DB_TYPE: mysql + DB_HOST: mariadb + DB_PORT: 3306 + DB_NAME: freescout + DB_USER: freescout + DB_PASS: ${FREESCOUT_DB_PASS} + DB_SSL: FALSE + DISPLAY_ERRORS: TRUE + ENABLE_AUTO_UPDATE: TRUE + SETUP_TYPE: AUTO + SITE_URL: https://support.${MY_TLD} + SKIP_STORAGE_PERMISSIONS: FALSE + TIMEZONE: ${TZ} + image: tiredofit/freescout + labels: + homepage.group: Lifestyle + homepage.name: FreeScout + homepage.icon: sh-freescout.svg + homepage.href: http://support.${MY_TLD} + homepage.description: Lightweight help desk and shared inbox + swag: enable + swag_proto: http + swag_url: support.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://support.${MY_TLD} + swag.uptime-kuma.monitor.interval: 300 + ports: + - 59095:80 + restart: unless-stopped + volumes: + - ${DOCKER_VOLUME_CONFIG}/freescout/data:/www/html + - ${DOCKER_VOLUME_CONFIG}/freescout/logs/:/www/logs ghost: container_name: ghost_blog depends_on: @@ -5225,95 +5210,6 @@ services: source: /rinoa-storage target: /storage type: bind - zammad-backup: - <<: *zammad-service - container_name: zammad-backup - command: ["zammad-backup"] - volumes: - - zammad-backup:/var/tmp/zammad - - zammad-storage:/opt/zammad/storage:ro - user: 0:0 - zammad-elasticsearch: - container_name: zammad-elasticsearch - image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.17.4} - restart: ${RESTART:-always} - profiles: - - do-not-start - volumes: - - zammad-elasticsearch-data:/bitnami/elasticsearch/data - environment: - # Enable authorization without HTTPS. For external access with - # SSL termination, use solutions like nginx-proxy-manager. - ELASTICSEARCH_ENABLE_SECURITY: 'true' - ELASTICSEARCH_SKIP_TRANSPORT_TLS: 'true' - ELASTICSEARCH_ENABLE_REST_TLS: 'false' - # ELASTICSEARCH_USER is hardcoded to 'elastic' in the container. - ELASTICSEARCH_PASSWORD: ${ELASTICSEARCH_PASS:-zammad} - zammad-init: - <<: *zammad-service - container_name: zammad-init - command: ["zammad-init"] - depends_on: - - zammad-postgresql - restart: on-failure - user: 0:0 - zammad-memcached: - container_name: zammad-memcached - command: memcached -m 256M - image: memcached:${MEMCACHE_VERSION:-1.6.38-alpine} - restart: ${RESTART:-always} - zammad-nginx: - <<: *zammad-service - container_name: zammad-nginx - command: ["zammad-nginx"] - expose: - - 8080 - ports: - - 15257:8080 - labels: - swag: enable - swag_proto: http - swag_port: 8080 - swag_url: support.${MY_TLD} - swag.uptime-kuma.enabled: true - swag.uptime-kuma.monitor.url: https://support.${MY_TLD} - homepage.group: Personal/Professional Services - homepage.name: Zammad - homepage.href: https://support.${MY_TLD} - homepage.icon: zammad.svg - homepage.description: Open-source helpdesk/customer support system - depends_on: - - zammad-railsserver - zammad-postgresql: - container_name: zammad-postgresql - environment: - POSTGRES_DB: ${ZAMMAD_POSTGRES_DB:-zammad_production} - POSTGRES_USER: ${ZAMMAD_POSTGRES_USER:-zammad} - POSTGRES_PASSWORD: ${ZAMMAD_POSTGRES_PASS:-zammad} - image: postgres:${ZAMMAD_POSTGRES_VERSION:-17.4-alpine} - restart: ${RESTART:-always} - volumes: - - zammad-postgresql-data:/var/lib/postgresql/data - zammad-railsserver: - <<: *zammad-service - container_name: zammad-railsserver - command: ["zammad-railsserver"] - expose: - - 3000 - zammad-redis: - container_name: zammad-redis - image: redis:${REDIS_VERSION:-7.4.2-alpine} - restart: ${RESTART:-always} - volumes: - - zammad-redis-data:/data - zammad-scheduler: - <<: *zammad-service - container_name: zammad-scheduler - command: ["zammad-scheduler"] - zammad-websocket: - <<: *zammad-service - container_name: zammad-websocket - command: ["zammad-websocket"] volumes: authelia-pg-db: name: authelia-pg-db @@ -5446,14 +5342,4 @@ volumes: wallos-db: name: wallos-db wallos-logos: - name: wallos-logos - zammad-backup: - name: zammad-backup - zammad-storage: - name: zammad-storage - zammad-elasticsearch-data: - name: zammad-elasticsearch-data - zammad-postgresql-data: - name: zammad-postgresql-data - zammad-redis-data: - name: zammad-redis-data \ No newline at end of file + name: wallos-logos \ No newline at end of file