I’m trying this on Ubuntu 22.04 Rust’s cargo install seems to keep creating permission problems between what I have to install, compile and what gets published in the cargo “registry”, which causes issues at runtime when I run as lemmy:lemmy through systemctl.

If I run: cargo install lemmy_server --target-dir /usr/bin/ --locked --features embed-pictrs as a non-root user, I get permission denied issues with /usr/bin/.future-incompat-report.json and /usr/bin/release

If I run the build as a root user, and then manually copy the binaries to /usr/bin and chmod them to lemmy:lemmy, then try to run as lemmy:lemmy, it appears the binary is trying to access some “registry” files in /root/.cargo/registry (for which of course it does not have permissions.)

How do I fix this?

  • KIM_JONG_JUICEBOXOP
    link
    fedilink
    arrow-up
    2
    ·
    2 years ago

    Thank you!

    So the git based build instructions from @Grouchy@lemmy.grouchysysadmin.com works.

    What was missing for me was then the rust version and the full list of sql commands.

    1. Rust version
    
    Remove rust installed from Ubuntu apt repo (v 1.65)
    Install rust from rustup (v 1.70)
    
    2. Postgres commands
    
    sudo -iu postgres psql -c "CREATE USER lemmy WITH PASSWORD 'db-passwd';"
    sudo -iu postgres psql -c "CREATE DATABASE lemmy WITH OWNER lemmy;"
    sudo -iu postgres psql -c "ALTER USER lemmy WITH SUPERUSER;"
    
    
    
    • RoundSparrow
      link
      fedilink
      arrow-up
      2
      ·
      2 years ago

      The lemmy-ui steps, the next part - are pretty outdated. It has instructions to install NodeJS 12.x, which is really far back. I have no idea which version the Docker install is using…

      The latest version of Node is 20

      • KIM_JONG_JUICEBOXOP
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        2 years ago

        Before I even get there, the instructions say I should be able to run

        curl localhost:8536/api/{version}/site
        

        And it should return some json structure.

        But I see this returning 404

        lemmy_server[41511]: 2023-06-09T17:02:35.296098Z  INFO actix_web::middleware::logger: 127.0.0.1 "GET /api/0.17.3/site HTTP/1.1" 404 0 "-" "curl/7.81.0" 0.000074
        

        Is that the correct way to specify the version?

        Is there a better log than journalctl which would actually tell me what REST endpoints it is using?

        • RoundSparrow
          link
          fedilink
          arrow-up
          2
          ·
          2 years ago

          Is that the correct was to specify the version?

          No, I had to dig around too, the correct command is:

          curl localhost:8536/api/v3/site

          • KIM_JONG_JUICEBOXOP
            link
            fedilink
            arrow-up
            1
            ·
            2 years ago

            Thank you, again!

            How was I to know {version} in the REST endpoint path was supposed to be “v3”?

            Any luck with the lemmy-ui install?

            • RoundSparrow
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              2 years ago

              I knew it was v3 because I saw a webapp failure on one of the Lemmy instance (lemmy.ml) I was using ;) We need to update those install documents.

              It seems right now I can get a client to load, but websockets aren’t working. Others on Reddit reported the same issue: https://old.reddit.com/r/Lemmy/comments/142sszq/spinning_up_lemmy_websockets_dont_connect/

              EDIT: Ok, I solved the websocket problem by using proper nginx config that the instructions said. I was confused about the domain names with the certification generation as I already had some nginx certs for other subdomains in place.

                • RoundSparrow
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  2 years ago

                  Oops. I was running some test code that IIRC set the bot field (it was code for creating a bot) on my own login. I just changed it. Thanks for letting me know.

                  • KIM_JONG_JUICEBOXOP
                    link
                    fedilink
                    arrow-up
                    2
                    ·
                    2 years ago

                    Well, you are the only person really responding to me here with helpful information.

                    So if you are a bot, I welcome our new robot overlords.

                    I’m still trying to get the lemmy-ui installed. I’ll check your links. Looks like they updated the join-lemmy.org page.

                    I owe you a beer, or a pint of 10w-40.