# documentation: https://github.com/ignisda/ryot
# slogan: Roll your own tracker! Ryot is a self-hosted platform for tracking various aspects of life such as media consumption, fitness activities, and more.
# category: productivity
# tags: rss, reader, self-hosted, automation, tracker, media, fitness
# logo: svgs/ryot.svg
# port: 8000

services:
  ryot:
    image: ignisda/ryot:v10.3.0
    environment:
      - SERVICE_URL_RYOT_8000
      - DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql:5432/${POSTGRES_DB}
      - SERVER_ADMIN_ACCESS_TOKEN=${SERVICE_PASSWORD_64_RYOT}
      - TZ=${TZ:-Europe/Amsterdam}
    depends_on:
      postgresql:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
      interval: 5s
      timeout: 20s
      retries: 10

  postgresql:
    image: postgres:16-alpine
    volumes:
      - ryot_postgresql_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=${SERVICE_USER_POSTGRES}
      - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
      - POSTGRES_DB=${POSTGRES_DB:-ryot-db}
      - TZ=${TZ:-Europe/Amsterdam}
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
      interval: 5s
      timeout: 20s
      retries: 10
