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

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

                    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!