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!

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

    Thanks…Yeah I saw it. I have a few docker things deployed. But the “getting started” section completely ignores setting up the Postgresql DB, which very clearly it seems to want. This is not listed as a requirement, but still hinted casually around whenever it mentions the user/pass, environment variables etc.

    So…is there anywhere mentioned how to get the whole thing up and running, including docker and postgresql?

    • bobslaede
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 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
        3 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
          ·
          3 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
              ·
              3 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
                3 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
                  ·
                  3 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
                    2 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?