diff --git a/INSTALL.md b/INSTALL.md index 6ac828a..0e43166 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -129,7 +129,6 @@ After=network.target postgresql.service [Service] Type=simple -User=vinindkoeb WorkingDirectory=/sti/til/vinindkoeb ExecStart=/sti/til/vinindkoeb/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 Restart=always @@ -144,6 +143,19 @@ sudo systemctl daemon-reload sudo systemctl enable --now vinindkoeb ``` +**Om `User=`:** eksemplet ovenfor kører som root (ingen `User=`-linje) +— simplest, og rimeligt for en lille, isoleret container som denne. +Vil du hellere køre som en dedikeret systembruger +(`useradd --system --no-create-home --shell /usr/sbin/nologin +vinindkoeb`, `chown -R vinindkoeb:vinindkoeb /sti/til/vinindkoeb`, +`User=vinindkoeb` i unit-filen), **skal `uv sync` også køres som den +samme bruger** — `uv` installerer sin egen Python-interpreter under +den kørende brugers hjemmemappe (fx `/root/.local/share/uv/...`), +som andre brugere ikke kan tilgå. Kører man `uv sync` som root og +prøver bagefter at starte servicen som en anden bruger, fejler +`systemd` med `status=203/EXEC` (kunne ikke eksekvere programmet) — +fundet under den første rigtige produktionsopsætning. + Da reverse proxy'en (CloudPanel) kører i en anden container, skal backend'en kunne nås over Proxmox' interne netværk — deraf `--host 0.0.0.0` i stedet for `127.0.0.1`. Det skal dog **ikke** stå