version: "3"
services:
  https:
    image: caddy:2.5.1-alpine@sha256:0033b34d2df3fe0bf94088c36e7d722ceca1b38cbdd49c08b2c10b9f9aa58912
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./etc/caddy:/etc/caddy
      - ./srv:/srv
      - caddy_data:/data
      - caddy_config:/config
      - minicharge_tmp:/tmp/minicharge
  minicharge:
    image: miniflux/miniflux:2.0.37@sha256:0a768ab76a1e8e0f03b1a29d9a8424eb60af71af937da35677e87d5a4ef65bf6
    restart: unless-stopped
    environment:
      LISTEN_ADDR: /tmp/miniflux.sock
      DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@/postgres?host=/tmp/postgresql
      RUN_MIGRATIONS: "1"
    volumes:
      - minicharge_tmp:/tmp
      - postgres_tmp:/tmp/postgresql
    depends_on:
      db:
        condition: service_healthy
  db:
    image: postgres:14.3-alpine@sha256:c75bb07ca2cc3175a6187cc57dc228ae4b57d132e4b3f893ce50001fa6ca98af
    restart: unless-stopped
    healthcheck:
      test: pg_isready -U postgres
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - postgres_tmp:/var/run/postgresql
      - postgres_data_v14:/var/lib/postgresql/data
  dns.keiu.net:
    image: coredns/coredns:1.9.3@sha256:8e352a029d304ca7431c6507b56800636c321cb52289686a581ab70aaa8a2e2a
    restart: unless-stopped
    expose: ["443"]
    ports: ["853:853"]
    volumes:
      - ./etc/coredns:/etc/coredns
      - caddy_data:/var/lib/caddy/data
    command: "-conf /etc/coredns/Corefile"
volumes:
  caddy_data:
  caddy_config:
  minicharge_tmp:
  postgres_tmp:
  postgres_data_v14: