# koopa-decidim — Decidim behind host Caddy on :9027 # Docs: https://docs.decidim.org/en/develop/install/ # Image: official pre-generated app (core modules only). No secrets in this file. x-logging: &default-logging driver: "json-file" options: max-size: "50m" max-file: "4" x-app-env: &app-env RAILS_ENV: production RAILS_SERVE_STATIC_FILES: "true" RAILS_LOG_TO_STDOUT: "true" DATABASE_URL: postgres://decidim:${POSTGRES_PASSWORD}@postgres:5432/decidim REDIS_URL: redis://redis:6379/0 SECRET_KEY_BASE: ${SECRET_KEY_BASE} DECIDIM_APPLICATION_NAME: ${DECIDIM_APPLICATION_NAME:-hacktivism} DECIDIM_MAILER_SENDER: ${DECIDIM_MAILER_SENDER:-noreply@hacktivism.ch} DECIDIM_AVAILABLE_LOCALES: ${DECIDIM_AVAILABLE_LOCALES:-en,de,fr} DECIDIM_DEFAULT_LOCALE: ${DECIDIM_DEFAULT_LOCALE:-en} SMTP_ADDRESS: ${SMTP_ADDRESS:-127.0.0.1} SMTP_DOMAIN: ${SMTP_DOMAIN:-hacktivism.ch} SMTP_USERNAME: ${SMTP_USERNAME:-unused} SMTP_PASSWORD: ${SMTP_PASSWORD:-unused} SMTP_PORT: ${SMTP_PORT:-25} SMTP_AUTHENTICATION: ${SMTP_AUTHENTICATION:-plain} QUEUE_ADAPTER: ${QUEUE_ADAPTER:-sidekiq} services: decidim: image: docker.io/decidim/decidim:0.30.8 container_name: koopa-decidim hostname: decidim ports: - "9027:3000" env_file: - .env environment: <<: *app-env volumes: - ./entrypoint.sh:/usr/local/bin/koopa-decidim-entrypoint.sh:ro - ./theme/hacktivism.rb:/code/config/initializers/hacktivism.rb:ro - ./theme/hacktivism.css:/code/public/hacktivism.css:ro - ./bootstrap.rb:/code/lib/koopa_bootstrap.rb:ro - ./assets/img/logo.svg:/code/public/hacktivism-logo.svg:ro - ./assets/img/favicon.svg:/code/public/hacktivism-favicon.svg:ro - decidim-storage:/code/storage - decidim-uploads:/code/public/uploads - decidim-tmp:/code/tmp entrypoint: ["/bin/bash", "/usr/local/bin/koopa-decidim-entrypoint.sh"] command: ["bundle", "exec", "rails", "s", "-b", "0.0.0.0", "-p", "3000"] restart: unless-stopped logging: *default-logging depends_on: postgres: condition: service_healthy redis: condition: service_started labels: org.hacktivism.service: decidim org.hacktivism.host_port: "9027" org.hacktivism.site: decidim.hacktivism.ch org.hacktivism.managed_by: koopa-admin sidekiq: image: docker.io/decidim/decidim:0.30.8 container_name: koopa-decidim-sidekiq hostname: sidekiq env_file: - .env environment: <<: *app-env volumes: - ./entrypoint.sh:/usr/local/bin/koopa-decidim-entrypoint.sh:ro - ./theme/hacktivism.rb:/code/config/initializers/hacktivism.rb:ro - decidim-storage:/code/storage - decidim-uploads:/code/public/uploads - decidim-tmp:/code/tmp entrypoint: ["/bin/bash", "/usr/local/bin/koopa-decidim-entrypoint.sh"] command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"] restart: unless-stopped logging: *default-logging depends_on: postgres: condition: service_healthy redis: condition: service_started labels: org.hacktivism.service: decidim org.hacktivism.managed_by: koopa-admin postgres: image: docker.io/library/postgres:16-alpine container_name: koopa-decidim-db hostname: postgres environment: - POSTGRES_USER=decidim - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=decidim volumes: - decidim-db:/var/lib/postgresql/data restart: unless-stopped logging: *default-logging healthcheck: test: ["CMD-SHELL", "pg_isready -U decidim -d decidim"] interval: 5s timeout: 5s retries: 12 labels: org.hacktivism.service: decidim org.hacktivism.managed_by: koopa-admin redis: image: docker.io/library/redis:7-alpine container_name: koopa-decidim-redis hostname: redis volumes: - decidim-redis:/data restart: unless-stopped logging: *default-logging labels: org.hacktivism.service: decidim org.hacktivism.managed_by: koopa-admin volumes: decidim-db: decidim-redis: decidim-storage: decidim-uploads: decidim-tmp: