From 73b0564d8e135c4b703d9082fa83183170a3568e Mon Sep 17 00:00:00 2001 From: vitya Date: Wed, 12 Aug 2026 19:48:28 +0300 Subject: [PATCH] =?UTF-8?q?wiki(kreknin):=20=D0=B0=D0=B2=D1=82=D0=BE=D1=81?= =?UTF-8?q?=D0=B8=D0=BD=D0=BA=20LE-=D1=81=D0=B5=D1=80=D1=82=D0=B0=20git.kr?= =?UTF-8?q?eknin.site=20traefik->nginx=20(cron=2015=D0=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .wiki/entities/kreknin-synology.md | 2 +- .wiki/log.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.wiki/entities/kreknin-synology.md b/.wiki/entities/kreknin-synology.md index 28b2a24..873475d 100644 --- a/.wiki/entities/kreknin-synology.md +++ b/.wiki/entities/kreknin-synology.md @@ -127,7 +127,7 @@ USB **2TB WD20EARX** (sdq) отформатирован в один btrfs, см - **Проброс на Keenetic:** 80→192.168.1.43:8000, 443→192.168.1.43:4443 (правила в панели, сделал vitya/Алексей в GUI — KeeneticOS Viva API закрыт для curl-автоматизации). - **NAT loopback у Алексея СЛОМАН** — **РЕШЕНО (2026-08-12)**: KeeneticOS 5.1.3 hairpin не чинит (проверено). Двойное решение: 1. **DNS-override на Keenetic** (RCI): `git.kreknin.site`/`kreknin.site` → `192.168.1.43` (ip host через POST /rci/ parse) - 2. **Reverse proxy на DSM nginx**: 443 занят встроенным nginx DSM → добавлен server block `git.kreknin.site:443 → proxy_pass https://127.0.0.1:4443` (traefik), файл `/usr/local/etc/nginx/sites-available/0a73bdfc-…w3conf` (server.ReverseProxy.conf) + `nginx -s reload`. ⚠️ Важно: traefik на 4443 — TLS-entrypoint, поэтому `proxy_pass https://` + `proxy_ssl_verify off` + `proxy_ssl_name git.kreknin.site` (HTTP на 4443 даёт 404). **LE-серт в nginx**: извлечён из traefik `/volume1/docker/traefik/letsencrypt/acme.json` (base64 из Certificate/Key) → `/usr/local/etc/nginx/ssl_git_kreknin.{pem,key}` (LE, до 2026-11-10). DSM-пароль НЕ нужен (root SSH). При ротации traefik-серта — обновить файлы вручную. + 2. **Reverse proxy на DSM nginx**: 443 занят встроенным nginx DSM → добавлен server block `git.kreknin.site:443 → proxy_pass https://127.0.0.1:4443` (traefik), файл `/usr/local/etc/nginx/sites-available/0a73bdfc-…w3conf` (server.ReverseProxy.conf) + `nginx -s reload`. ⚠️ Важно: traefik на 4443 — TLS-entrypoint, поэтому `proxy_pass https://` + `proxy_ssl_verify off` + `proxy_ssl_name git.kreknin.site` (HTTP на 4443 даёт 404). **LE-серт в nginx**: извлечён из traefik `/volume1/docker/traefik/letsencrypt/acme.json` (base64 из Certificate/Key) → `/usr/local/etc/nginx/ssl_git_kreknin.{pem,key}` (LE, до 2026-11-10). DSM-пароль НЕ нужен (root SSH). **Автосинк**: `/volume1/scripts/acme-nginx-sync.sh` + cron `/etc/cron.d/acme-nginx-sync` (каждые 15 мин) — при ротации traefik-серта сам копирует в nginx и делает reload. Лог: `/var/tmp/acme-nginx-sync.log`. - **Keenetic admin-пароль:** `pass kreknin/keenetic` (t3r1a4k314; 3steaks1eGG — НЕ для роутера). - Установка через web-форму падала (xorm nil-pointer panic на sqlite) → обход: `INSTALL_LOCK=true` в [security] + CLI `admin user create`. Gitea CLI: `docker exec -u 1026:100 gitea gitea --config /data/gitea/conf/app.ini admin user ...` (новый синтаксис `admin user create`, не `create-user`). diff --git a/.wiki/log.md b/.wiki/log.md index 5356d16..4e09c0f 100644 --- a/.wiki/log.md +++ b/.wiki/log.md @@ -1,3 +1,4 @@ +## [2026-08-12] implement | UPDATE entities/kreknin-synology.md — автосинк LE-серта: acme-nginx-sync.sh (cron 15 мин) ротирует серт git.kreknin.site из traefik acme.json в nginx DSM автоматически. ## [2026-08-12] implement | UPDATE entities/kreknin-synology.md — LE-серт git.kreknin.site (из traefik acme.json) подложен в nginx DSM reverse proxy. Из LAN: валидный LE + Gitea, без DSM-пароля (root SSH). ## [2026-08-12] implement | UPDATE entities/kreknin-synology.md — reverse proxy git.kreknin.site:443 → traefik:4443 на DSM nginx (server.ReverseProxy.conf w3conf + reload). Из LAN git.kreknin.site → Gitea (DNS-override + proxy), снаружи LE-серт. Осталось: LE-серт в DSM для git.kreknin.site (из LAN, без предупреждения). ## [2026-08-12] implement | NEW concepts/keenetic-rci-api.md — разобрана автоматизация KeeneticOS 5.1.3 (RCI: GET /rci/show/*, POST /rci/ массив parse-команд). Через API добавлены DNS-записи git.kreknin.site/kreknin.site → 192.168.1.43 (решение сломанного hairpin). Проверено с LAN: всё 200. Правила порт-форвардинга в 5.x лежат в ip.static (to-host=MAC).