Project

General

Profile

Conventions » History » Version 2

Redmine Admin, 10/26/2026 02:24 AM
deploy-publish.sh

1 2 Redmine Admin
Host: `dmz-web` (Rocky Linux 10.2). Everything runs **rootless** under user
2
`websvcmaster` (no sudo) as Quadlet units in `~/.config/containers/systemd/`.
3
Design rule: **shared-nothing** — every service gets its own network, DB
4
container, app container and volumes; the only thing joined to all of them is
5 1 Redmine Admin
Nginx Proxy Manager.
6
7 2 Redmine Admin
8 1 Redmine Admin
Naming inversion to remember: containers are `db-<name>`, secrets are `<name>-db-…`.
9
10 2 Redmine Admin
11 1 Redmine Admin
## Shell setup (every session)
12
13 2 Redmine Admin
`sudo -iu websvcmaster` doesn't run PAM session setup, so `systemctl --user`
14 1 Redmine Admin
fails with "Failed to connect to user scope bus" until:
15
16 2 Redmine Admin
```bash
17 1 Redmine Admin
export XDG_RUNTIME_DIR=/run/user/$(id -u)
18
export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus
19
systemctl --user show-environment >/dev/null && echo OK
20
```
21
22 2 Redmine Admin
Lingering must be on (`loginctl show-user websvcmaster | grep Linger`, as root).
23 1 Redmine Admin
No write access to system `/tmp` — use `~/tmp`.
24
25
Where things live:
26
27 2 Redmine Admin
```bash
28 1 Redmine Admin
~/.config/containers/systemd/          # live Quadlet units (the "pod config")
29
~/deploy/                              # add-wordpress-site.sh, check-sites.sh
30
~/deploy/quadlet/                      # generated unit templates (source of truth, cp'd into the dir above)
31
~/.local/share/containers/storage/volumes/<vol>/_data/   # named volume contents
32
~/.local/share/containers/storage/secrets/filedriver/    # secret store
33
~/redmine_data/                        # Redmine bind mounts (config, plugins, images, assets)
34
/srv/git/                              # bare git repos (root-owned, read-only into Redmine)
35
```
36
37
38 2 Redmine Admin
---
39
_Source: `dmz-web-podman-cheatsheet.md` v1.1.1 in the `dmz-web-deploy` repo ([[Releases]]). Edit the wiki and the repo copy together._