Jellystat...guide or instructions?

iturnedintoanewt@lemm.ee to Selfhosted@lemmy.world – 32 points –

Hi! I'm currently looking onto perhaps running Jellystat. But the instructions seem to be a bit...lacking? Is there a step by step guide on how to get it up and running?

Thanks!

25

You are viewing a single comment

In the same place as you run your docker compose up command you just type docker compose logs

Huh....so the log is just an almost infinite loop of these:

jellystat-1     | Error: getaddrinfo ENOTFOUND jellystat-db
jellystat-1     |     at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:120:26)
jellystat-1     | [JELLYSTAT] Database exists. Skipping creation
jellystat-1     | FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations
jellystat-1     | FS-related option specified for migration configuration. This resets migrationSource to default FsMigrations
jellystat-1     | node:internal/process/promises:391
jellystat-1     |     triggerUncaughtException(err, true /* fromPromise */);
jellystat-1     |     ^
jellystat-1     | 
jellystat-1     | Error: getaddrinfo ENOTFOUND jellystat-db
jellystat-1     |     at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:120:26) {
jellystat-1     |   errno: -3008,
jellystat-1     |   code: 'ENOTFOUND',
jellystat-1     |   syscall: 'getaddrinfo',
jellystat-1     |   hostname: 'jellystat-db'
jellystat-1     | }

Just for clarity's sake, here's my docker-compose.yml:

version: '3'
services:
  jellystat-db:
    image: postgres:15.2
    environment:
      POSTGRES_DB: 'jfstat'
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: mypassword
    volumes:
    - /postgres-data:/var/lib/postgresql/data # Mounting the volume
  jellystat:
    image: cyfershepard/jellystat:latest
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: MyJellystat
      POSTGRES_IP: jellystat-db
      POSTGRES_PORT: 5432
      JWT_SECRET: 'my-secret-jwt-key'
    ports:
      - "3000:3000" #Server Port
    volumes:
      - /backup-data:/app/backend/backup-data # Mounting the volume

    depends_on:
      - jellystat-db
    restart: unless-stopped
networks:
  default:

I literally haven't changed anything from default as it was a test, even the password fields.

Your passwords for the database does not match.
But the error is about it not being able to reach the database on the hostname.
I can run it with this compose file:

services:
  jellystat-db:
    image: postgres:16-alpine
    container_name: jellystat-db
    restart: unless-stopped
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - postgres-data:/var/lib/postgresql/data
    networks:
      - jellystat
  jellystat:
    image: cyfershepard/jellystat:latest
    container_name: jellystat
    restart: unless-stopped
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_IP: jellystat-db
      POSTGRES_PORT: 5432
      JWT_SECRET: ${JWT_SECRET}
      TZ: Europe/Paris # timezone (ex: Europe/Paris)
      JS_BASE_URL: /
    volumes:
      - jellystat-backup-data:/app/backend/backup-data
    depends_on:
      - jellystat-db
    networks:
      - traefik
      - jellystat
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - traefik.http.routers.jellystat.entrypoints=https
      - traefik.http.routers.jellystat.rule=Host(`${HOSTNAME}`)
      - traefik.http.routers.jellystat.tls.certresolver=http
      - traefik.http.routers.jellystat.service=jellystat
      - traefik.http.services.jellystat.loadbalancer.server.port=3000
      - traefik.http.services.jellystat.loadbalancer.server.scheme=http
networks:
  jellystat: {}
  traefik:
    external: true
volumes:
  postgres-data: null
  jellystat-backup-data: null
 services:
   jellystat-db:
     image: postgres:16-alpine
     container_name: jellystat-db
     restart: unless-stopped
     environment:
       POSTGRES_USER: ${POSTGRES_USER}
       POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
     volumes:
       - postgres-data:/var/lib/postgresql/data
     networks:
       - jellystat
   jellystat:
     image: cyfershepard/jellystat:latest
     container_name: jellystat
     restart: unless-stopped
     environment:
       POSTGRES_USER: ${POSTGRES_USER}
       POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
       POSTGRES_IP: jellystat-db
       POSTGRES_PORT: 5432
       JWT_SECRET: ${JWT_SECRET}
       TZ: Europe/Paris # timezone (ex: Europe/Paris)
       JS_BASE_URL: /
     volumes:
       - jellystat-backup-data:/app/backend/backup-data
     depends_on:
       - jellystat-db
     networks:
       - traefik
       - jellystat
     labels:
       - traefik.enable=true
       - traefik.docker.network=traefik
       - traefik.http.routers.jellystat.entrypoints=https
       - traefik.http.routers.jellystat.rule=Host(`${HOSTNAME}`)
       - traefik.http.routers.jellystat.tls.certresolver=http
       - traefik.http.routers.jellystat.service=jellystat
       - traefik.http.services.jellystat.loadbalancer.server.port=3000
       - traefik.http.services.jellystat.loadbalancer.server.scheme=http
 networks:
   jellystat: {}
   traefik:
     external: true
 volumes:
   postgres-data: null
   jellystat-backup-data: null

Hmmm thanks but I'm not using traefik...Is it part of the needed setup?

No. You can leave that out. That was just me showing you that it runs on my machine, with that setup. Just bind the port instead.

Just came to say thanks...Yeah eventually after copy-pasting it from scratch again, I got it running. Seems to be working now. Thanks again!