Hi,

I’ve been trying to host my own lemmy instance for a while. i’ve almost got it working (i think). But my problem now is that whenever i try to post something with a picture i get an error SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data. In firefox i get a 502 bad gateway error pointing to https://lemmy.emphisia.nl/pictrs/image I don’t really know why because everything seems to be working

  • poVoq@slrpnk.net
    link
    fedilink
    arrow-up
    3
    ·
    2 年前

    The typical beginner error is that their pictrs folder is not owned by the 991 user from inside the container.

    Otherwise… you need to provide more details about your setup.

    • youpie_temp@reddthat.comOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      2 年前

      yeah I’ve already done that, I did sudo chown -r 991:991 volumes/pictrs. what details do you need about my setup? edit: I do know another program is already using port 8080 on my host machine, or does that not matter when it’s running inside docker?

      • poVoq@slrpnk.net
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        2 年前

        Depends. If it runs in a separated docker network then not. Pict-rs only needs to be reachable by the lemmy backend and have out-going internet access. But I would try changing the port as I think the official docker-compose script removed the internal network for some reason, not sure (I am using my own Podman based setup).

        • youpie_temp@reddthat.comOP
          link
          fedilink
          arrow-up
          0
          ·
          2 年前

          it does appear to be in its own network (according to portainer) the error log in the lemmy container is

          2023-07-23T13:58:44.850844Z  WARN lemmy_server::root_span_builder: Request error: error sending request for url (http://127.0.0.1:8080/image): error trying to connect: tcp connect error: Connection refused (os error 111)
          
          Reqwest(reqwest::Error { kind: Request, url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(127.0.0.1)), port: Some(8080), path: "/image", query: None, fragment: None }, source: hyper::Error(Connect, ConnectError("tcp connect error", Os { code: 111, kind: ConnectionRefused, message: "Connection refused" })) })
          

          no errors appear when i look at the pictrs log. I don’t know why it says password: None as i’ve set a password

          • poVoq@slrpnk.net
            link
            fedilink
            arrow-up
            1
            ·
            2 年前

            Hmm not sure. The api-key ENV variable changed with pict-rs 0.4 to PICTRS__SERVER__API_KEY, maybe double-check that this is correctly updated and also the same as in your lemmy.hjson config file.

            • youpie_temp@reddthat.comOP
              link
              fedilink
              arrow-up
              1
              ·
              2 年前

              PICTRS__SERVER__API_KEY

              the config in docker compose looks like

                pictrs:
                  image: asonix/pictrs:0.4.0
                  # this needs to match the pictrs url in lemmy.hjson
                  hostname: 127.0.0.1
                  # we can set options to pictrs like this, here we set max. image size and forced format for conversion
                  # entrypoint: /sbin/tini -- /usr/local/bin/pict-rs -p /mnt -m 4 --image-format webp
                  environment:
                    - PICTRS_OPENTELEMETRY_URL=http://otel:4137
                    - PICTRS__SERVER__API_KEY=****
                    - RUST_LOG=debug
                    - RUST_BACKTRACE=full
                    - PICTRS__MEDIA__VIDEO_CODEC=vp9
                    - PICTRS__MEDIA__GIF__MAX_WIDTH=256
                    - PICTRS__MEDIA__GIF__MAX_HEIGHT=256
                    - PICTRS__MEDIA__GIF__MAX_AREA=65536
                    - PICTRS__MEDIA__GIF__MAX_FRAME_COUNT=400
                  user: 991:991
              

              and in the config it is

                pictrs: {
                  url: "http://127.0.0.1:8080/"
                  api_key: "****"
                }
              

              the password on both is the same so i don’t see what is going wrong :(

                • youpie_temp@reddthat.comOP
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  edit-2
                  2 年前

                  hmm after looking i dont even see an option to change the port (in pictrs). it seems stuck at 8080, but since its running on its own network, i doubt it would matter.

              • MangoPenguin
                link
                fedilink
                English
                arrow-up
                1
                ·
                2 年前

                I haven’t done this setup myself, but the hostname being 127.0.0.1 is suspect, especially since it mentions a pictrs URL config in lemmy.

                • youpie_temp@reddthat.comOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  2 年前

                  yeah i changed that because i was testing. but i now realize that was dumb. ive change both the hostname and the url to pictrs. OMG that just worked… i feel so dumb rn. it is strange tho because that wasnt working before. Thanks for all the help :)