diff --git a/wiki/Contributing.md b/wiki/Contributing.md index 68da312b3..ab09376c2 100644 --- a/wiki/Contributing.md +++ b/wiki/Contributing.md @@ -8,8 +8,8 @@ Thanks for your interest in contributing to TREK! Here are the guidelines for su - **Check existing issues** — Look for open issues or discussions before starting work - **Target the `dev` branch** — All PRs must be opened against `dev`, not `main`. Exception: PRs that only modify files under `wiki/` may target any branch - **One thing per PR** — Keep PRs focused on a single change. Don't bundle unrelated fixes -- **Tests are required** — Your change must come with tests. The project holds 80% or more coverage, and a PR that drops it is closed -- **Stay up to date** — Your branch must be [up to date with `dev`](Development-environment#3-keep-your-fork-up-to-date) before you submit +- **Tests are required**: Your change must come with tests. The project holds 80% or more coverage, and a PR that drops it is closed +- **Stay up to date**: Your branch must be [up to date with `dev`](Development-environment#3-keep-your-fork-up-to-date) before you submit ## Pull Request Guidelines @@ -73,4 +73,4 @@ Documentation changes go to `wiki/`. The same pages ship inside the app: the in- Beyond the tests, CI enforces a set of quality gates: type checks, lint ratchets that may only shrink, and a SonarCloud gate on new code (80% coverage, at most 3% duplicated lines). The [[Development Environment|Development-environment]] page lists the commands, and the `CLAUDE.md` file of each package explains its rules. Desktop and phone views of a feature share one hook, so a feature that touches both keeps its logic in that hook. -Every translation key must exist in all 27 locales — the `Shared: i18n Parity` CI job fails on drift, so run `npm run i18n:parity:strict --workspace=shared` before pushing. Add a real translation to every locale; an English placeholder in a non-English file is not accepted. Two directory names differ from the language they hold: Brazilian Portuguese is `br`, Greek is `gr`. +Every translation key must exist in all 27 locales, the `Shared: i18n Parity` CI job fails on drift, so run `npm run i18n:parity:strict --workspace=shared` before pushing. Add a real translation to every locale; an English placeholder in a non-English file is not accepted. Two directory names differ from the language they hold: Brazilian Portuguese is `br`, Greek is `gr`. diff --git a/wiki/Encryption-Key-Rotation.md b/wiki/Encryption-Key-Rotation.md index a98fa264f..4692d5901 100644 --- a/wiki/Encryption-Key-Rotation.md +++ b/wiki/Encryption-Key-Rotation.md @@ -42,7 +42,7 @@ On startup, TREK resolves the encryption key in this order: ## What happens if the key is lost -All encrypted settings (API keys, SMTP password, OIDC secret, MFA secrets, notification tokens, the AI Assistant's provider key and ChatGPT sign-ins, Wanderer tokens, etc.) become unreadable — TREK cannot decrypt them. They must be re-entered manually after the key is restored or replaced. Unencrypted data (trips, places, users, etc.) is unaffected. +All encrypted settings (API keys, SMTP password, OIDC secret, MFA secrets, notification tokens, the AI Assistant's provider key and ChatGPT sign-ins, Wanderer tokens, etc.) become unreadable, TREK cannot decrypt them. They must be re-entered manually after the key is restored or replaced. Unencrypted data (trips, places, users, etc.) is unaffected. The Web Push key pair cannot be re-entered, and TREK never replaces it on its own: unless the `VAPID_*` variables supply a pair, push stays off, with an error in the log, until TREK runs with the original key again, and then every device receives as before. To give it up instead, delete both `web_push_vapid_public_key` and `web_push_vapid_private_key` from `app_settings`. TREK then generates a new pair, and every device has to subscribe again (see [Environment-Variables](Environment-Variables#web-push)). diff --git a/wiki/Install-Docker.md b/wiki/Install-Docker.md index 1f4a07011..ea5d483b0 100644 --- a/wiki/Install-Docker.md +++ b/wiki/Install-Docker.md @@ -63,7 +63,7 @@ The in-app Help pages come from the image itself (`/app/wiki`), so they always m | `./data` | `/app/data` | `travel.db` (SQLite database), `logs/trek.log`, `.jwt_secret`, `.encryption_key` | | `./uploads` | `/app/uploads` | Uploaded files (photos, documents, covers, avatars) | -Both volumes must survive container replacement — they are your persistent state. Never remove them before pulling a new image. Installed plugins also live under `data` by default (`TREK_PLUGINS_DIR` moves them), so they are covered as long as `data` persists. +Both volumes must survive container replacement, they are your persistent state. Never remove them before pulling a new image. Installed plugins also live under `data` by default (`TREK_PLUGINS_DIR` moves them), so they are covered as long as `data` persists. You can optionally mount a `storage-config.json` read-only at `/app/data/storage-config.json` to set up file storage once on the first start. See [Admin-Storage](Admin-Storage). diff --git a/wiki/Plugins.md b/wiki/Plugins.md index b974f5ba2..f66c63db8 100644 --- a/wiki/Plugins.md +++ b/wiki/Plugins.md @@ -162,7 +162,7 @@ plus a toolbar: - **Sort** — Name / Recently updated, plus **Updates first** in Installed and **Most downloads** in Discover. The view-specific option falls back to Name when you switch views. -- **Upload plugin** — sideload a plugin from a `.zip`/`.tar.gz` (see [Installing](#installing-a-plugin)). +- **Upload plugin**: sideload a plugin from a `.zip`/`.tar.gz` (see [Installing](#installing-a-plugin)). - **Rescan** — rediscovers the on-disk plugins directory **and** force-pulls the remote registry, bypassing the 30-minute server cache and GitHub's CDN so a just-published plugin (or update) shows up immediately rather than up to ~35 diff --git a/wiki/Updating.md b/wiki/Updating.md index 7e1e6df26..6400cba1e 100644 --- a/wiki/Updating.md +++ b/wiki/Updating.md @@ -160,11 +160,11 @@ journalctl -u trek -n 50 Open the **Stacks** list, click the TREK stack, then click **Redeploy**. -**`latest`, major-version or minor-version tag** — enable the **Re-pull image and redeploy** switch before confirming. Portainer pulls the newest matching image and recreates the container. +**`latest`, major-version or minor-version tag**: enable the **Re-pull image and redeploy** switch before confirming. Portainer pulls the newest matching image and recreates the container. ![Re-pull image and redeploy switch ticked, with arrows pointing to the switch and the Update button](assets/portainer-force-pull.png) -**Pinned full-version tag** (e.g. `5.0.0`) — edit the stack, update the tag in the `image:` line, then click **Update the stack**. No re-pull switch needed; the tag change forces a fresh pull. +**Pinned full-version tag** (e.g. `5.0.0`), edit the stack, update the tag in the `image:` line, then click **Update the stack**. No re-pull switch needed; the tag change forces a fresh pull. ![Edit stack page with an arrow pointing to the image tag in the compose editor](assets/portainer-update-version.png)