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!
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!
They have a
docker-compose.yml
file in the repo. It looks like it has everything all ready for you.Yeah…I copied the whole of it onto my docker-compose.yml. But after running a docker compose up, and after getting:
docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion [+] Running 3/3 ✔ Network jellystat_default Created 0.1s ✔ Container jellystat-jellystat-db-1 Started 0.9s ✔ Container jellystat-jellystat-1 Started
I still can’t get to connect on http://myIP:3000, I get nothing, just a “unable to connect” firefox error. Is there anything I should set up/modify on the docker-compose.yml?
There will probably be something in the logs that tells you what is going wrong. Maybe it can’t connect to the db, or maybe it’s starting on a wrong port or something.
Sorry i don’t have experience checking docker logs… How do I go about that?
In the same place as you run your
docker compose up
command you just typedocker 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.