From befc8a014276fb87f1c0855d9e34753809a62ba2 Mon Sep 17 00:00:00 2001 From: CrazyTim71 <118295691+CrazyTim71@users.noreply.github.com> Date: Mon, 19 May 2025 13:39:08 +0200 Subject: [PATCH] feat(service): add Yamtrack service (#5845) --- public/svgs/yamtrack.svg | 28 ++++++++ .../compose/yamtrack-with-postgresql.yaml | 70 +++++++++++++++++++ templates/compose/yamtrack.yaml | 45 ++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 public/svgs/yamtrack.svg create mode 100644 templates/compose/yamtrack-with-postgresql.yaml create mode 100644 templates/compose/yamtrack.yaml diff --git a/public/svgs/yamtrack.svg b/public/svgs/yamtrack.svg new file mode 100644 index 000000000..8fd79ded2 --- /dev/null +++ b/public/svgs/yamtrack.svg @@ -0,0 +1,28 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/templates/compose/yamtrack-with-postgresql.yaml b/templates/compose/yamtrack-with-postgresql.yaml new file mode 100644 index 000000000..4dae2ae3d --- /dev/null +++ b/templates/compose/yamtrack-with-postgresql.yaml @@ -0,0 +1,70 @@ +# documentation: https://github.com/FuzzyGrim/Yamtrack/wiki +# slogan: Yamtrack is a self hosted media tracker for movies, tv shows, anime, manga, video games and books. +# tags: self-hosted, automation, tracker, media, movies, shows, anime, manga, games, books, comics +# logo: svgs/yamtrack.svg +# port: 8000 + +services: + yamtrack: + image: ghcr.io/fuzzygrim/yamtrack + depends_on: + - db + - redis + environment: + - SERVICE_FQDN_YAMTRACK_8000 + - TZ=${TZ:-Europe/Berlin} + - SECRET=$SERVICE_PASSWORD_SECRET + - REGISTRATION=${REGISTRATION_ENABLED:-true} + - URLS=$SERVICE_FQDN_YAMTRACK + - "REDIS_URL=redis://redis:6379" + + - DB_HOST=db + - DB_NAME=${POSTGRESQL_DATABASE:-yamtrack} + - DB_USER=${SERVICE_USER_POSTGRESQL} + - DB_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL} + - DB_PORT=5432 + healthcheck: + test: + [ + "CMD", + "wget", + "--no-verbose", + "--tries=1", + "--spider", + "http://127.0.0.1:8000/health/", + ] + interval: 5s + timeout: 20s + retries: 10 + + db: + image: postgres:16-alpine + container_name: yamtrack-db + environment: + - POSTGRES_USER=${SERVICE_USER_POSTGRESQL} + - POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL} + - POSTGRES_DB=${POSTGRESQL_DATABASE:-yamtrack} + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 20s + retries: 10 + + redis: + image: "redis:7-alpine" + volumes: + - "redis_data:/data" + healthcheck: + test: + - CMD + - redis-cli + - ping + interval: 5s + timeout: 20s + retries: 10 + +volumes: + redis_data: null + postgres_data: null diff --git a/templates/compose/yamtrack.yaml b/templates/compose/yamtrack.yaml new file mode 100644 index 000000000..f20a0575f --- /dev/null +++ b/templates/compose/yamtrack.yaml @@ -0,0 +1,45 @@ +# documentation: https://github.com/FuzzyGrim/Yamtrack/wiki +# slogan: Yamtrack is a self hosted media tracker for movies, tv shows, anime, manga, video games and books. +# tags: self-hosted, automation, tracker, media, movies, shows, anime, manga, games, books, comics +# logo: svgs/yamtrack.svg +# port: 8000 + +services: + yamtrack: + image: ghcr.io/fuzzygrim/yamtrack + depends_on: + redis: + condition: service_healthy + environment: + - SERVICE_FQDN_YAMTRACK_8000 + - TZ=${TZ:-Europe/Berlin} + - SECRET=$SERVICE_PASSWORD_SECRET + - REGISTRATION=${REGISTRATION_ENABLED:-true} + - URLS=$SERVICE_FQDN_YAMTRACK + - "REDIS_URL=redis://redis:6379" + volumes: + - "yamtrack_data:/yamtrack/db" + healthcheck: + test: + - CMD-SHELL + - "wget --no-verbose --tries=1 --spider http://127.0.0.1:8000/health/ || exit 1" + interval: 5s + timeout: 20s + retries: 10 + + redis: + image: "redis:7-alpine" + volumes: + - "redis_data:/data" + healthcheck: + test: + - CMD + - redis-cli + - ping + interval: 5s + timeout: 20s + retries: 10 + +volumes: + redis_data: null + yamtrack_data: null