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!

  • MeatsOfRage@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 months ago

    There’s a link in their Read Me on GitHub under the title about launching with Docker. Are you familiar with Docker?

    • 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