koopa-admin-log/configs/castopod/compose.yml
Hernâni Marques 3f0e6b31e6
docs: add castopod/prime compose mirrors and refresh host snapshots
Mirror live compose for castopod and prime (qBittorrent password
redacted). Update firewalld list-all with 9200/tcp. Mark
Caddyfile.taler-host as legacy; short READMEs for new trees.
2026-07-10 15:11:39 +02:00

79 lines
2 KiB
YAML

# koopa-castopod — Castopod behind host Caddy on :9020
# Docs: https://docs.castopod.org/main/en/getting-started/docker/
services:
castopod:
image: docker.io/castopod/castopod:1
container_name: koopa-castopod
volumes:
- castopod-media:/app/public/media
environment:
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
CP_BASEURL: ${CP_BASEURL}
CP_ANALYTICS_SALT: ${CP_ANALYTICS_SALT}
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis
CP_REDIS_PASSWORD: ${MYSQL_PASSWORD}
networks:
- castopod-app
- castopod-db
ports:
- "9020:8080"
labels:
org.hacktivism.service: castopod
org.hacktivism.host_port: "9020"
org.hacktivism.site: castopod.hacktivism.ch
org.hacktivism.managed_by: koopa-admin
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
depends_on:
mariadb:
condition: service_healthy
redis:
condition: service_started
mariadb:
image: docker.io/library/mariadb:11
container_name: koopa-castopod-mariadb
networks:
- castopod-db
volumes:
- castopod-db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: castopod
MYSQL_USER: castopod
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
restart: unless-stopped
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 20s
interval: 10s
timeout: 5s
retries: 5
redis:
image: docker.io/library/redis:7-alpine
container_name: koopa-castopod-redis
command: --requirepass ${MYSQL_PASSWORD}
volumes:
- castopod-cache:/data
networks:
- castopod-app
restart: unless-stopped
volumes:
castopod-media:
castopod-db:
castopod-cache:
networks:
castopod-app:
castopod-db:
internal: true