services:
  app:
    image: castopod/castopod:latest
    container_name: "castopod-app"
    env_file: .env
    volumes:
      - castopod-media:/var/www/castopod/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: ${CP_REDIS_PASSWORD}
      CP_EMAIL_SMTP_HOST: ${CP_EMAIL_SMTP_HOST}
      CP_EMAIL_FROM: ${CP_EMAIL_FROM}
      CP_EMAIL_SMTP_USERNAME: ${CP_EMAIL_SMTP_USERNAME}
      CP_EMAIL_SMTP_PASSWORD: ${CP_EMAIL_SMTP_PASSWORD}
      CP_EMAIL_SMTP_PORT: 587
    networks:
      - castopod-app
      - castopod-db
    ports:
      - 127.0.0.1:3008:8000
    restart: unless-stopped

  mariadb:
    image: mariadb:10.5
    container_name: "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

  redis:
    image: redis:7.0-alpine
    container_name: "castopod-redis"
    command: --requirepass ${CP_REDIS_PASSWORD}
    volumes:
      - castopod-cache:/data
    networks:
      - castopod-app

volumes:
  castopod-media:
  castopod-db:
  castopod-cache:

networks:
  castopod-app:
  castopod-db: