---
date: 2026-02-26
type: project
tags: [dttb]
---

# 🔐 Credentials — DTTB HomeLab

> ⚠️ **КОНФИДЕНЦИАЛЬНО** — не распространять за пределы команды
>
> Последнее обновление: 2026-03-03

---

## Proxmox VE (10.0.0.250)

| Параметр | Значение |
|----------|----------|
| URL | https://10.0.0.250:8006 / https://pve.dttb.ru |
| Логин | `root` |
| Пароль | `1qaz!QAZ` |
| Realm | PAM |

## Amnezia Web Panel (LXC 143)

| Параметр | Значение |
|----------|----------|
| Веб (LAN) | http://10.0.0.143:5000 |
| Веб (NetBird) | http://100.70.9.163:5000 (`amnezia-panel.netbird.cloud`) |
| Логин | `admin` |
| Пароль | `AmnPanel!2026-fi` (дефолт admin/admin сменён; pbkdf2_hmac-sha256) |
| Root LXC 143 | `root` / `1qaz!QAZ` (консоль/SSH через pve) |
| Данные | bind-mount `/opt/amnezia-panel/{data.json,tunnels_state.json}` |
| Назначение | Control-plane VPN-нод (AWG/WG/Xray/MTProxy), управляет серверами по SSH. Приватно, без NPM/публичного доступа. См. [[../../decisions/2026-06-23-amnezia-web-panel-lxc143]] |

## VPN-ноды (управляются панелью)

### HOSTKEY Finland — основной хаб (заказан 2026-06-23)
| Параметр | Значение |
|----------|----------|
| IP | `151.241.234.241` |
| SSH | **key-only** (пароль по SSH отключён): `ssh awg-fi` с Mac, ключ `~/.ssh/awg_fi_key` (ed25519). Панель LXC 143 ходит тем же ключом |
| Пароль root | `v_6hH9JuH_` — **только для веб-консоли HOSTKEY** (по SSH не работает) |
| ОС | Ubuntu 22.04.5 LTS · 2 vCPU / 3.9 GB / 60 GB NVMe · 3 TB трафик @1Gbps · `fi-vmv2-nano` |
| AmneziaWG | **AWG 2.0** · контейнер `amnezia-awg2` · UDP **41624** · subnet `10.8.1.0/24`. Управляется панелью (server_id 0) |
| Защита | ufw (наружу только 22/tcp + 41624/udp) · fail2ban (sshd, backend=systemd) · SSH key-only · root prohibit-password |
| Роль | Основной AmneziaWG-выход. Резерв — старый финский VPS (переустановить ОС перед использованием: был XorDDoS/RCE) |

## MikroTik Router (НИИКН — 192.168.1.1)

| Параметр | Значение |
|----------|----------|
| IP | 192.168.1.1 |
| Модель | hAP ac³ |
| Логин | `AI` |
| Пароль | `OL260380eg` |
| Версия | RouterOS 7.20.6 |

## Gitea (10.0.0.189:3000)

| Параметр | Значение |
|----------|----------|
| URL | http://10.0.0.189:3000 / http://git.dttb.ru |
| Логин | `oleg` |
| Пароль | `OL260380eg` |
| Git Remote | `http://oleg:OL260380eg@10.0.0.189:3000/oleg/knowledge-base.git` |

## Nginx Proxy Manager (LXC 103 — 10.0.0.195:81)

| Параметр | Значение |
|----------|----------|
| URL | http://10.0.0.195:81 / https://npm.dttb.ru |
| Email | `it5870@yandex.ru` |
| Пароль | `1qaz!QAZ` |

## RustDesk Server (LXC 116 — 10.0.0.244)

| Параметр | Значение |
|----------|----------|
| Web admin URL | https://remot.dttb.ru/_admin/ |
| Swagger | https://remot.dttb.ru/swagger/index.html |
| Логин | `admin` |
| Пароль | `1qaz!QAZ` *(сменён на стандартный 2026-04-29)* |
| Public key (для RustDesk2.toml) | `R0lA4r77hAGw6YRL1qG3JioVqQ0Q0fJfzkwlAGqR6jU=` |
| JWT key (config.yaml `jwt.key`) | `mrQPMJh6QBGp93aVqv14IG4R5g4zjxNRs3gLHtjJr4rqgGm164ciMVrQJDP2GIQh` |
| Бэкап ключей и БД | `/root/rustdesk-backup-20260428-1134/` (на LXC 116) |
| Rollback к OSS | `bash /root/rustdesk-rollback.sh` (на LXC 116) |

Сервер — `lejianwen-pro` 1.1.14 (`hbbs`/`hbbr` с `MUST_LOGIN=Y`) + `rustdesk-api` 2.7. Подробности: [[rustdesk]] и [[../../decisions/2026-04-28-rustdesk-lejianwen-pro-migration]].

CLI смены пароля admin (на LXC 116):
```bash
cd /var/lib/rustdesk-api && /usr/bin/rustdesk-api reset-admin-pwd <new-pw>
```

## Nextcloud AIO (VM 250 — 10.0.0.230:11001)

| Параметр | Значение |
|----------|----------|
| URL | https://dttb.ru |
| Версия | Nextcloud 32.0.6 (AIO) |
| Логин | `admin` |
| Пароль | `1qaz!QAZ` |
| WebDAV | `https://dttb.ru/remote.php/dav/files/admin/` |
| App password Mac sync | `~/.config/nextcloud-kb/app-password` (chmod 600) |

Подробности sync-схемы: [[../../decisions/2026-04-17-nextcloud-sync-schema|decision 2026-04-17]].

## ZimaOS NAS (VM 130 — 10.0.0.221)

| Параметр | Значение |
|----------|----------|
| Веб | http://10.0.0.221 (Caddy/ZimaOS-Gateway) |
| Логин | `dttb` |
| Пароль | `1qaz!QAZ` (восстановлен 2026-06-19 из md5-хеша в `user.db`) |
| SSH | ❌ выключен; Linux root **locked** (без пароля) |
| Shell | ttyd `http://10.0.0.221:7681` (просит login, нужен Linux-юзер) или offline-mount диска на Proxmox |

**Сброс веб-пароля offline** (если снова потеряется): `qm stop 130` → `losetup -fP /dev/pve/vm-130-disk-0` → смонтировать раздел p8 `casaos-data` → в `.casaos/db/user.db` (sqlite, табл. `o_users`) `UPDATE o_users SET password='<md5 нового>' WHERE username='dttb'` (хеш = **md5 без соли**) → umount + `losetup -d` + `lvchange -an pve/vm-130-disk-0` → `qm start 130`. ZimaOS immutable A/B: system = squashfs (RO), изменения в overlay (p7), данные/конфиги в casaos-data (p8).

## Spaceweb (DNS-хостинг: niikn.com, dttb.ru, itilegent.ru)

| Параметр | Значение |
|----------|----------|
| URL | https://vps.sweb.ru |
| Логин | `it5870yand` |
| Пароль | `1qaz!QAZ` |
| API | `https://api.sweb.ru/domains/dns` (JSON-RPC) |
| Домены | niikn.com, dttb.ru, itilegent.ru |

## Mailcow НИИКН (VM106 — 192.168.1.128)

| Параметр | Значение |
|----------|----------|
| URL | https://mail.niikn.com |
| Admin | `admin` / `1qaz!QAZ` |
| API Key | `niikn-mailcow-api-2026` |
| DBPASS | `8VcUSgpKEOoxNojIZBRJx0FzMxzm` |
| Ящик | `noreply@niikn.com` / `NiIkN-NoReply-2026!` |

## NPM НИИКН (LXC 102 — 192.168.1.22:81)

| Параметр | Значение |
|----------|----------|
| URL | http://192.168.1.22:81 |
| Email | `it5870@yandex.ru` |
| Пароль | `1qaz!QAZ` |

## German Hermes Dashboard (LXC 141)

| Параметр | Значение |
|----------|----------|
| URL | https://german.dttb.ru (NPM #40 → 10.0.0.141:9119) |
| Логин | `oleg` / `German-ecddc1edea-2026` |
| Механизм | `dashboard.basic_auth` в `/root/.hermes/config.yaml` (scrypt `password_hash` + `secret`, plaintext не хранится) |
| systemd | `hermes-dashboard.service` = `hermes dashboard --host 0.0.0.0 --port 9119 --skip-build --no-open` |
| ⚠️ Грабля | **БЕЗ `--insecure`!** `--insecure` отключает cookie-gate (включает легаси `_SESSION_TOKEN`) → login проходит, но всё внутри 401. Бинд `0.0.0.0` без `--insecure` = `auth_required=True` + принимает любой Host (для NPM-домена). См. [[../../decisions/2026-06-18-german-hermes-agent-deploy]] |

## authentik SSO/IdP (LXC 144)

| Параметр | Значение |
|----------|----------|
| URL | https://auth.dttb.ru (NPM #41 → 10.0.0.144:9000, LE cert id133) |
| LXC root | `10.0.0.144` — root / `Authentik!2026-dttb` (LAN only, без WAN SSH) |
| Admin панель | `akadmin` / `Auth0leg!2026-dttb` (bootstrap-пароль). **2FA обязательна** — при первом входе предложит TOTP/passkey |
| Email admin | `it5870@yandex.ru` |
| API-токен | `claude-bootstrap` = `z53t4jfarH69EBYuJJbY0olaak79Sf67W1EqVCCM6NVHXbQDAAuyXHfVP4VZ` (не истекает, минует login-flow — для управления/recovery) |
| Стек | `/opt/authentik/` — `.env` хранит `PG_PASS` и `AUTHENTIK_SECRET_KEY` (сгенерированы рандомом, бэкап только в `.env` контейнера) |
| OIDC Open WebUI | app `open-webui`, client_id `1G7PLkPUSCEK4EFyULcDbqBnADrRNnswXOHFOeEF`, secret `2vpQldlISZDGyQaTQeVZ070XkA879a0TaMCeYIPQaA0ln116sQqJNzj9AjSMjvTz4yFTXw89V0wGb5yMP1CfqVCE0UehcvI9RsgCtjrFaSp0lrDD1NCwp9SrDGtfcF2A` |
| OIDC Gitea | app `gitea`, client_id `AYl8jNZvJF7jh4c2nPhm1nRtD2XwkUK0DPwnvQ9e`, secret `UwsqG97S5REcuSgQLFQUHGp0JDKScR7fSIuIminNaZoVKca2JQzbb0PebePeBeaQhFKPjJOlu3kEmEEzod0oGtIArHKH492SnUBMO5aa5FgnAGjGzm9BB4RRYJo7wEMQ` |
| Recovery | сброс admin-пароля `ak change_password akadmin`; снять обяз. 2FA — PATCH стейджа `f3808685-…` `not_configured_action=skip` через API-токен. См. [[../../decisions/2026-06-26-authentik-sso-deploy]] |

## Homepage Dashboard (LXC 145)

| Параметр | Значение |
|----------|----------|
| URL | https://dash.dttb.ru (NPM #42 → 10.0.0.148:3000, LE cert id134) |
| Basic Auth | `oleg` / `OL260380eg` (NPM access-list id 5) |
| LAN/NetBird | http://10.0.0.148:3000 (без авторизации) |
| LXC root | `10.0.0.148` — root / `1qaz!QAZ` |
| Секреты виджетов | `/opt/homepage/.env` (chmod 600, не в git): `HOMEPAGE_VAR_*` |
| Proxmox widget | API-токен `homepage@pve!homepage` = `26a880fa-36de-4703-ae84-fbcd8965f480` (роль **PVEAuditor**, read-only) |
| Gitea widget | read-only PAT `homepage-dashboard` = `b91a8434eb93404dbfef0ddf7b2676d23cbbfaf0` |
| Nextcloud widget | admin + app-password `IDE19XghEprCQG9p8as9NrwxEfI6BoXXxWZv0kremJkoOXtKCmNxj61JC8SLjZFPnhnwp4cp` |
| NPM widget | it5870@yandex.ru / 1qaz!QAZ (как NPM) |
| authentik (отложен) | proxy provider pk 3 `dash-forward`, app slug `dash`, embedded outpost. См. [[../../decisions/2026-06-27-homepage-dashboard-lxc145]] |

## cptr на Маке (АКТИВНЫЙ — агент с доступом к реальным файлам Мака)

| Параметр | Значение |
|----------|----------|
| Хост | `MacBookPro.lan`, юзер `ai`, LAN `10.0.0.180`, NetBird `100.70.242.212`. cptr `~/.local/bin/cptr` (uv tool), LaunchAgent `ru.dttb.cptr`, данные `~/.cptr` |
| URL | http://10.0.0.180:8000 (LAN; в chat.dttb.ru = idx4 `cptr/ai`). БЕЗ публичного домена |
| Web-логин | `dttb` / `App5870w` (admin) |
| /v1 API-ключ | `sk-cptr-9RGczue_EqSnbMHbP7wP86i13qUh1qiKqWYt7emKWkQ` (им ходит Open WebUI) |
| Мозг | OmniRoute `cc/claude-opus-4-8`, **base_url `http://100.70.92.138:20128/v1` (NetBird!)** — LAN-адрес блокирует macOS Local Network privacy для launchd. conn id `0d61272b-535f-4a1c-96cb-d77dc7790270`, api_key `lan-trust` |
| Управление | `launchctl bootout/bootstrap gui/$(id -u) ~/Library/LaunchAgents/ru.dttb.cptr.plist`; лог `~/Library/Logs/cptr.log`. См. [[../../decisions/2026-06-30-cptr-on-mac]] |

## cptr — Open WebUI Computer (LXC 146, 🔴 STOPPED — заменён Mac-cptr)

| Параметр | Значение |
|----------|----------|
| URL | http://10.0.0.166:8000 (LAN-only, БЕЗ публичного домена) — **контейнер остановлен 2026-06-30** |
| Web-логин | `dttb` / `App5870w` (admin; ⚠️ пароль временный/дефолтный — сменить). Был `oleg`/`1qaz!QAZ`; смена через `PUT /api/admin/users/{id}/username|/password` |
| LXC root | `10.0.0.166` — root / `1qaz!QAZ` (консоль/SSH через pve) |
| /v1 API-ключ | `sk-cptr-RmajHvDRn7-KzNMLNASnvn9svkXWb9ySVQLG6M8Ifs0` (name `open-webui`, id `7d780f22-9d86-4d72-b88e-867987764d55`) — Bearer для OpenAI-гейтвея, им ходит chat.dttb.ru. Новый: `POST /v1/keys {name}` (отдаёт raw 1 раз) |
| Мозг (brain) | connection id `6f6f89a8-a764-496b-a5f9-9dba194a24a3` → OmniRoute `http://10.0.0.179:20128/v1` / `cc/claude-opus-4-8`, api_key=`lan-trust` |
| Назначение | AI-агент-песочница (терминал/ФС/git внутри LXC 146); 5-й коннект Open WebUI (`cptr/main`). См. [[../../decisions/2026-06-30-cptr-computer-agent]] |

## SSH-ключи и доступы

| Хост | Порт | Метод |
|------|------|-------|
| 10.0.0.250 (Proxmox) | 22 | root / `1qaz!QAZ` |
| VPS swtest.ru (`89.111.140.86` / `100.70.93.36`) | 22 | root / ключ `~/.ssh/vps_znam_key` (RSA). Алиас SSH: `ssh vps-znam` (через Netbird) или `ssh vps-znam-public`. Ключ развёрнут на Mac и openclaw LXC 137. Подробности: [vps-swtest.md](vps-swtest.md) |

## Apple ID (США)

| Параметр | Значение |
|----------|----------|
| Apple ID | `hbuggle819@icloud.com` |
| Пароль | `App5870w` |
| Регион | United States |
| 2FA trusted phone | номер Олега, заканчивается на `...70` (при входе выбирать его, код приходит к Олегу по SMS) |
| Назначение | скачивание приложений из US App Store (AmneziaVPN, Happ, Instagram и т.п.) для себя и клиентов |
| Инструкция для клиента | [snippets/apple-id-us-on-russia.md](../../snippets/apple-id-us-on-russia.md) |

⚠️ Входить **только в App Store → Медиа и покупки**, НЕ в iCloud (иначе риск смешения данных).

## Telegra.ph (для инструкций клиентам)

| Параметр | Значение |
|----------|----------|
| Account short_name | `dttb` |
| Author | `Oleg Batlaev` |
| Access token | `c38dcadb86e6edd7efc76496d9171d38beef6dc0f6a7ef2cd79bbae70e46` |
| Auth URL (вход в редактор) | https://edit.telegra.ph/auth/f1tfgzYpPpGlAr7cYHRzSeH59fYuNVB2V3fbCdypDc |

Назначение: публиковать подробные инструкции (VPN, онбординг) как Telegra.ph-страницы — Telegram рендерит их через Instant View, markdown не ломается. Создание страницы: `POST https://api.telegra.ph/createPage` с этим access_token. Редактирование: `POST https://api.telegra.ph/editPage` или через Auth URL в браузере.

**Скрипты в vault:**
- [snippets/telegraph-publish-client-instruction.py](../../snippets/telegraph-publish-client-instruction.py) — создаёт новую страницу из Python-кода (содержимое прописано в самом скрипте)
- [snippets/telegraph-md-to-page.py](../../snippets/telegraph-md-to-page.py) — **конвертер markdown → Telegraph Node**, редактирует `Nastrojka-VPN-04-24-2`. Поддерживает вложенные списки, inline code/links/bold/italic, защищает code-spans от italic-парсинга. Чтобы опубликовать новый md: поменять PATH/TITLE/источник файла в `main()`.

**Созданные страницы:**
- https://telegra.ph/Nastrojka-VPN-04-24-2 — VPN + US Apple ID для Ярослава (без ключа — ключ отдаётся отдельным сообщением)

## Netbird (netbird.io cloud)

| Параметр | Значение |
|----------|----------|
| API Token | `nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM` |
| API URL | `https://api.netbird.io` |
| SSO | `batlaew@yandex.ru` |

### Setup keys

| Назначение | Ключ | Группа | Истекает | Тип |
|------------|------|--------|----------|-----|
| **Claude-Diag** (временные подключения Claude для диагностики) — скрипт: [snippets/netbird-claude-install.ps1](../../snippets/netbird-claude-install.ps1) | `83301E74-6F86-4CBD-AF77-0C65730103CA` | Claude-Diag (`d7jra32fadhs73dmqv5g`) | 2026-05-21 | reusable, unlimited |
| Glavtorg | `5D1E3507-6F1C-41FC-B86F-05C60364A146` | Glavtorg | — | — |
| **SwarmClaw** (LXC 135, доступ агентов к 100.70.x) | `1558712D-03E8-41DF-B48F-C44DFD3BE31F` (reusable, полный — для переподключения/новых хостов в эту группу) | Claude-Diag (`d7jra32fadhs73dmqv5g`) | 2027-06-09 | reusable, unlimited | created 2026-06-09 via API. LXC 135 уже подключён (IP `100.70.95.183`, `swarmclaw.netbird.cloud`). |
| **German** (LXC 141, ассистент — доступ к 100.70.x) | `64DF527E-31F0-46E5-8E31-311325F9AEC5` | Claude-Diag (`d7jra32fadhs73dmqv5g`) | 2027-06-18 | reusable, unlimited | created 2026-06-18 via API (id `d8q4maqfadhs73aakqrg`). LXC 141 подключён: IP `100.70.99.82`, `german.netbird.cloud`. ⚠️ ставить через **apt-репозиторий** `pkgs.netbird.io` (`install.sh` редиректит на GitHub releases → таймаут из RU). Enroll с `--disable-dns` (свой resolv.conf 1.1.1.1). |

**Продление Claude-Diag ключа** (через API при истечении):
```bash
curl -s -X POST -H "Authorization: Token nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM" \
  -H "Content-Type: application/json" \
  -d '{"name":"Claude Diagnostic","type":"reusable","expires_in":2592000,"auto_groups":["d7jra32fadhs73dmqv5g"],"usage_limit":0,"ephemeral":false}' \
  https://api.netbird.io/api/setup-keys
```

---

## Заметки

- Пароль `1qaz!QAZ` используется на Proxmox, NPM, Nextcloud
- Пароль `OL260380eg` используется на MikroTik и Gitea
- LXC 129 (Clawdbot) удалён ~апрель 2026. LXC 139 (yaroslav-assistant, тестовый openclaw для Ярослава, не использовался) удалён 2026-04-29 — backup md-конфигов в `projects/dttb/archive/lxc-139-yaroslav-assistant/`. Актуальные LXC по `pct list` на Proxmox: 132 code-server, 136 gitea, 137 openclaw, 138 vpn-proxy, 103 NPM, 113 VaultWarden, 114 LinkWarden, 115 watchyourlan, 116 rustdeskserver, 134 ZnamSecurityBot
