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?

You are viewing a single thread.
View all comments View context
2 points

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;"


permalink
report
parent
reply
2 points

I’m glad you got it working :)

permalink
report
parent
reply
2 points

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

permalink
report
parent
reply
2 points
*

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?

permalink
report
parent
reply
2 points

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

permalink
report
parent
reply

Lemmy Support

!lemmy_support@lemmy.ml

Create post

Support / questions about Lemmy.

Matrix Space: #lemmy-space

Community stats

  • 166

    Monthly active users

  • 1.2K

    Posts

  • 5.7K

    Comments

Community moderators