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
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.