Files
homelab/tasks/drop.yml
2025-08-02 23:06:46 -04:00

55 lines
1.4 KiB
YAML

---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/drop"
- "{{ data_dir }}/drop/db"
- "{{ data_dir }}/drop/app"
- name: Create Drop Network
docker_network:
name: drop
- name: Create Drop DB Container
docker_container:
name: drop_postgres
image: postgres:14-alpine
recreate: true
networks:
- name: drop
healthcheck:
test: pg_isready -d drop -U drop
retries: 5
start_period: 10s
interval: 30s
timeout: 60s
volumes:
- "{{ data_dir }}/drop/db:/var/lib/postgresql/data"
env:
POSTGRES_PASSWORD: "drop"
POSTGRES_USER: "drop"
POSTGRES_DB: "drop"
- name: Create Drop Container
docker_container:
name: drop
image: ghcr.io/drop-oss/drop:v0.3.0
recreate: true
networks:
- name: homelab
- name: drop
volumes:
- "{{ media_path }}/Games/Desktop:/library"
- "{{ data_dir }}/drop/app:/data"
env:
DATABASE_URL: "postgres://drop:drop@drop_postgres:5432/drop"
GIANT_BOMB_API_KEY: "{{ DROP_GIANT_BOMB_API_KEY }}"
labels:
traefik.enable: "true"
traefik.http.routers.drop.rule: Host(`games.fntz.net`)
traefik.http.routers.drop.entrypoints: webSecure
traefik.http.routers.drop.tls.certresolver: letsencrypt
traefik.http.services.drop.loadbalancer.server.port: "3000"