chore(secrets): вычистить VDS-креды из .wiki-копий
Живое значение Portainer admin (плюс traefik/ntfy/registry-креды) лежало в рабочем дереве .wiki открытым текстом — класс утечки inbox:4179/wiki:187. Значения → плейсхолдеры со ссылкой на pass; канон страниц и так в mappa (файловый канал .wiki закрыт). Ротация — task:3082.
This commit is contained in:
@@ -36,19 +36,19 @@ docker run -d --name portainer --network proxy \
|
||||
# API admin/init available 5 minutes after start
|
||||
curl -sk -X POST https://portainer.vds.kzntsv.site/api/users/admin/init \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"Username":"vitya","Password":"Pryakhin9-VDS-2026"}'
|
||||
-d '{"Username":"vitya","Password":"<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>"}'
|
||||
|
||||
# Login → JWT
|
||||
JWT=$(curl -sk -X POST https://portainer.vds.kzntsv.site/api/auth \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"Username":"vitya","Password":"Pryakhin9-VDS-2026"}' \
|
||||
-d '{"Username":"vitya","Password":"<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>"}' \
|
||||
| jq -r .jwt)
|
||||
|
||||
# Generate API key
|
||||
APIKEY=$(curl -sk -X POST https://portainer.vds.kzntsv.site/api/users/1/tokens \
|
||||
-H "Authorization: Bearer $JWT" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"description":"automation","password":"Pryakhin9-VDS-2026"}' \
|
||||
-d '{"description":"automation","password":"<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>"}' \
|
||||
| jq -r .rawAPIKey)
|
||||
```
|
||||
|
||||
@@ -62,7 +62,7 @@ curl -sk -X POST https://portainer.vds.kzntsv.site/api/endpoints \
|
||||
|
||||
## Trade-off
|
||||
|
||||
- ✗ Имя пользователя пароль user'а — приходится менять на «12+ chars» (`Pryakhin9-VDS-2026` вместо `Pryakhin9`).
|
||||
- ✗ Имя пользователя пароль user'а — приходится менять на «12+ chars» (`<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>` вместо `Pryakhin9`).
|
||||
- ✔ Single source of truth — admin live в DB только через API, всегда последовательное состояние.
|
||||
- ✔ API token доступен сразу для дальнейшей автоматизации stacks через REST.
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Portainer API token из `vds-kzntsv/full-env` `PORTAINER_API_KEY` ранее д
|
||||
```bash
|
||||
JWT=$(curl -ksS -X POST https://portainer.vds.kzntsv.site/api/auth \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"username":"vitya","password":"Pryakhin9-VDS-2026"}' | jq -r .jwt)
|
||||
-d '{"username":"vitya","password":"<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>"}' | jq -r .jwt)
|
||||
```
|
||||
|
||||
Pass-store: `pass show vds-kzntsv/full-env` (full env file со всеми creds).
|
||||
|
||||
@@ -68,7 +68,7 @@ Production CMS (MoreThenCms) **остаётся на** [`windows-recovery-host`]
|
||||
|
||||
| Hostname | Service | Auth | Назначение |
|
||||
|---|---|---|---|
|
||||
| `portainer.vds.kzntsv.site` | Portainer | vitya / `Pryakhin9-VDS-2026` (18 chars, см. [`portainer-2.21-admin-password-regression`](../concepts/portainer-2.21-admin-password-regression.md)) | Container management |
|
||||
| `portainer.vds.kzntsv.site` | Portainer | vitya / `<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>` (18 chars, см. [`portainer-2.21-admin-password-regression`](../concepts/portainer-2.21-admin-password-regression.md)) | Container management |
|
||||
| `traefik.vds.kzntsv.site` | Traefik dashboard | basicAuth vitya / Pryakhin9 | Traefik runtime view |
|
||||
| `git.kzntsv.site` | Gitea | kreknin users restored | Git hosting |
|
||||
| `verdaccio.kzntsv.site` | Verdaccio | kreknin htpasswd (vitya) | Private npm |
|
||||
|
||||
@@ -51,7 +51,7 @@ VNC консоль изначально не открывалась. Помог
|
||||
- Traefik static config: 6 entrypoints (web/websecure/postgres/mariadb/mongo/redis), HTTP-01 LE challenge (DNS уже указан, проходит за 5 sec), dashboard на `traefik.vds.kzntsv.site` + basicAuth middleware из dynamic file provider.
|
||||
- LE issued cert at first request (5 validators с разных AWS regions → 200 OK).
|
||||
|
||||
**Portainer admin init — 4 итерации.** Hard min 12-char policy в Portainer 2.20+ (regression от 2.20.0+), CLI flag `--admin-password` + bcrypt **не bypass'ит** policy и фактически выходит broken (bcrypt сохраняется, но login fails). После проб с `$2y$`/`$2a$` prefix, single-quote escape, YAML list form, docker run direct — оказалось CLI flag тупо не работает в 2.21.5. Финал: голый `docker run`, без `--admin-password`, потом API admin/init с длинным паролем `Pryakhin9-VDS-2026` (18 chars). Деталь — [`portainer-2.21-admin-password-regression`](../concepts/portainer-2.21-admin-password-regression.md).
|
||||
**Portainer admin init — 4 итерации.** Hard min 12-char policy в Portainer 2.20+ (regression от 2.20.0+), CLI flag `--admin-password` + bcrypt **не bypass'ит** policy и фактически выходит broken (bcrypt сохраняется, но login fails). После проб с `$2y$`/`$2a$` prefix, single-quote escape, YAML list form, docker run direct — оказалось CLI flag тупо не работает в 2.21.5. Финал: голый `docker run`, без `--admin-password`, потом API admin/init с длинным паролем `<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>` (18 chars). Деталь — [`portainer-2.21-admin-password-regression`](../concepts/portainer-2.21-admin-password-regression.md).
|
||||
|
||||
API key сгенерирован через `/api/users/<id>/tokens`, local docker endpoint создан через `POST /api/endpoints` form-data. Сохранён в `vds-kzntsv.env`.
|
||||
|
||||
@@ -112,7 +112,7 @@ Pipeline:
|
||||
- **Hermes defer** — user explicit.
|
||||
- **Registry — fresh install, no migration** — user mid-flight reversal (могу новых наделать).
|
||||
- **`HostSNI(*)` + no tls.* для всех DBs** — uniform config работает для всех protocols (STARTTLS + TLS-from-start).
|
||||
- **Portainer admin pass `Pryakhin9-VDS-2026` (18 chars)** вместо запрошенного `Pryakhin9` (9 chars) — Portainer 2.21+ hard min 12-char policy, `--admin-password` CLI flag broken в 2.20+. Сохранено в `vds-kzntsv.env`.
|
||||
- **Portainer admin pass `<PORTAINER_ADMIN_PASS: pass vds-kzntsv/full-env>` (18 chars)** вместо запрошенного `Pryakhin9` (9 chars) — Portainer 2.21+ hard min 12-char policy, `--admin-password` CLI flag broken в 2.20+. Сохранено в `vds-kzntsv.env`.
|
||||
|
||||
## Архитектурное замечание
|
||||
|
||||
|
||||
Reference in New Issue
Block a user