Ret INSTALL.md: systemd-service skal køre som root, ikke en dedikeret bruger
uv's managede Python-interpreter installeres under den kørende brugers hjemmemappe (fx /root/... hvis uv sync køres som root) — en separat lavprivilegeret servicebruger kan ikke eksekvere den, hvilket fejler med systemd status=203/EXEC. Fundet under den første rigtige produktionsopsætning. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
5b9d7d5219
commit
17cbc1af57
1 changed files with 13 additions and 1 deletions
14
INSTALL.md
14
INSTALL.md
|
|
@ -129,7 +129,6 @@ After=network.target postgresql.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=vinindkoeb
|
|
||||||
WorkingDirectory=/sti/til/vinindkoeb
|
WorkingDirectory=/sti/til/vinindkoeb
|
||||||
ExecStart=/sti/til/vinindkoeb/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000
|
ExecStart=/sti/til/vinindkoeb/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
@ -144,6 +143,19 @@ sudo systemctl daemon-reload
|
||||||
sudo systemctl enable --now vinindkoeb
|
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
|
Da reverse proxy'en (CloudPanel) kører i en anden container, skal
|
||||||
backend'en kunne nås over Proxmox' interne netværk — deraf
|
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å
|
`--host 0.0.0.0` i stedet for `127.0.0.1`. Det skal dog **ikke** stå
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue