diff --git a/docs/self-hosted/troubleshooting.md b/docs/self-hosted/troubleshooting.md
index 5519f9b..3bc2403 100644
--- a/docs/self-hosted/troubleshooting.md
+++ b/docs/self-hosted/troubleshooting.md
@@ -40,7 +40,7 @@ Refer to the official `docker-compose logs` command .conf` on the Proxmox host:
+
+```ini
+lxc.pty.max: 1024
+lxc.tty.max: 4
+```
+
+:::note
+
+The time namespace only affects `CLOCK_MONOTONIC`/uptime — not wall-clock time — so
+the `nsenter: ... ns/time ... Operation not permitted` line on its own does not
+break a standalone shell. It only matters for the Docker agent below.
+
+:::
+
+#### Docker agent
+
+The Docker agent enters the host's namespaces (via `nsenter` against PID 1) so the
+shell lands on the host rather than inside the agent container. An unprivileged LXC
+can't grant the capabilities this needs — joining the host's **time** namespace
+fails with `Operation not permitted`, and Docker-in-LXC also requires extra
+features to run at all.
+
+On the Proxmox host, edit `/etc/pve/lxc/.conf`:
+
+```ini
+features: nesting=1,keyctl=1
+```
+
+`nesting=1` exposes the procfs/sysfs that Docker needs; `keyctl=1` allows the
+`keyctl()` syscall used by containerd. These are required for **any** Docker
+workload in an unprivileged container.
+
+That gets Docker running, but entering the host's namespaces from an unprivileged
+container hits a hard capability ceiling that no `features` flag lifts. If you need
+the Docker agent, run it in a **privileged** LXC container or a **VM** instead:
+
+```shell
+# Make the container privileged (Proxmox host)
+pct set --unprivileged 0
+```
+
+:::caution
+
+A privileged LXC container is not a security boundary — Proxmox treats it as
+roughly equivalent to host access. For untrusted workloads, prefer a VM, where the
+agent (standalone or Docker) works without any of these tweaks.
+
+:::