Files
amacocian 85de2bc7aa Refactor TSG headers to avoid duplication (IDXXXX prefix pattern)
Changed header structure from generic sections to ID-prefixed sections:
- Before: ## ID / ### Description / ### Symptoms / ### How to confirm / ### Ways to fix
- After: ## ID / ### IDXXXX Description / ### IDXXXX Symptoms / ### IDXXXX How to confirm / ### IDXXXX Ways to fix

Updated files:
- permissions.md: PRM0001 Description → PRM0001 Description (headers prefixed)
- calendarsync.md: CAL0001-CAL0003 with prefixed headers (new file)
- toc.md: Updated anchor links to point to 'How to confirm' sections

Benefits:
- No duplicate header text when viewing file with multiple issues
- Unique anchors across the file
- Clearer hierarchy and navigation
- Consistent pattern for future TSG entries

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-13 19:05:36 +02:00

1.7 KiB

Permissions troubleshooting

PRM0001

PRM0001 Description

A container runs as a non-root UID/GID, but its bind-mounted runtime data directory is owned by another host identity. The service may start and read the mount, but writes fail when it creates state, cache, database, lock, or snapshot files.

Use /charlie-stack-gitea to find the stack repo and runtime paths, then /charlie-grafana-logs to confirm the log signature.

PRM0001 Symptoms

  • Repeated permission denied write failures in container logs.
  • Application-specific save, cache, database, lock, or snapshot errors.
  • The mounted host path is present, but ownership does not match the compose service user.

For nitter-redis, Redis reported temp RDB writes failing under /data, then Background saving error.

PRM0001 How to confirm

Check the stack inventory row, then inspect the stack repo README.md and docker-compose.yml for the service user, bind mount, and expected first-time host prep.

In Grafana logs, start with the stack as compose_project and narrow to the service with service_name. Count the relevant permission errors and keep a few representative lines.

On the owner host, compare the bind-mounted host path ownership and mode with the UID/GID used by the compose service.

PRM0001 Ways to fix

  • Change ownership of the runtime data path to the UID/GID used by the service.
  • If only one file is affected, change that file rather than the whole runtime directory.
  • If the runtime path was created by the wrong process, recreate it with the ownership documented by the stack repo.
  • Redeploy or restart the service only after the host path ownership is correct.