docs(deploy): the sidecars' root steps name deploy's folders in full

Step 1 of both sidecars changed into deploy's home before its sudo
commands, but Ubuntu closes a home to other users, so the operator's
own user, the one with sudo, gets "Permission denied" there (found
setting up LanguageTool on learn.halkyon.eu's server, 26 Oct). sudo
reaches the folders by their full paths, which the shell makes of
~deploy without entering it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-26 12:18:46 +01:00
commit db7f6c0ab2
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -36,15 +36,18 @@ Steps, in order; ✱ marks a step as root.
sudo): the user and group ID 61096 are Jellyfin's alone, as the compose file runs it
(`useradd` warns that the ID lies above the system range, which is meant: it must
not meet a container's IDs); the media folder is `deploy`'s, so it can copy files
in, readable by all.
in, readable by all. The folders are named in full: `deploy`'s home is closed to
other users (Ubuntu's default), so a user with sudo can't `cd` into it, but `sudo`
reaches it by its path, which the shell makes of `~deploy` without entering it.
```sh
sudo groupadd --system --gid 61096 jellyfin
sudo useradd --system --uid 61096 --gid 61096 --no-create-home --shell /usr/sbin/nologin jellyfin
cd ~deploy/halkyon-learn/deploy
sudo mkdir -p jellyfin/config jellyfin/cache jellyfin/media
sudo chown -R jellyfin:jellyfin jellyfin/config jellyfin/cache
sudo chown -R deploy:deploy jellyfin/media
sudo mkdir -p ~deploy/halkyon-learn/deploy/jellyfin/config \
~deploy/halkyon-learn/deploy/jellyfin/cache ~deploy/halkyon-learn/deploy/jellyfin/media
sudo chown -R jellyfin:jellyfin ~deploy/halkyon-learn/deploy/jellyfin/config \
~deploy/halkyon-learn/deploy/jellyfin/cache
sudo chown -R deploy:deploy ~deploy/halkyon-learn/deploy/jellyfin/media
```
2. **DNS** (the operator, at the domain's DNS): the Jellyfin domain, such as
@ -116,14 +119,13 @@ Steps, in order; ✱ marks a step as root.
1. ✱ **Its user and folder** (the operator, on the instance's server, as a user with
sudo): the user and group ID 61081 are LanguageTool's alone, as the compose file runs
it (`useradd` warns that the ID lies above the system range, which is meant: it must
not meet a container's IDs).
not meet a container's IDs). The folder is named in full, as Jellyfin's.
```sh
sudo groupadd --system --gid 61081 languagetool
sudo useradd --system --uid 61081 --gid 61081 --no-create-home --shell /usr/sbin/nologin languagetool
cd ~deploy/halkyon-learn/deploy
sudo mkdir -p languagetool/fasttext
sudo chown -R languagetool:languagetool languagetool
sudo mkdir -p ~deploy/halkyon-learn/deploy/languagetool/fasttext
sudo chown -R languagetool:languagetool ~deploy/halkyon-learn/deploy/languagetool
```
2. **Switch it on** (the operator, on the instance's server, as `deploy`): in