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!

  • bobslaede
    link
    fedilink
    English
    arrow-up
    7
    ·
    4 months ago

    They have a docker-compose.yml file in the repo. It looks like it has everything all ready for you.

    • iturnedintoanewt@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      4 months ago

      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?

      • bobslaede
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 months ago

        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.

          • bobslaede
            link
            fedilink
            English
            arrow-up
            2
            ·
            4 months ago

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

            • iturnedintoanewt@lemm.eeOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              4 months ago

              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.

              • bobslaede
                link
                fedilink
                English
                arrow-up
                1
                ·
                4 months ago

                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
                
                • iturnedintoanewt@lemm.eeOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  3 months ago
                   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?

                  • bobslaede
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    4 months ago

                    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.