Files
infra/servers/de1.md

83 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# de1 — `ruzzy.dev` (213.136.74.247)
Действующая прод-нода (прокси/VPN + сервисы). С неё переносим на `fr1`/`ru1`.
Секреты (токены, ключи, MTProxy secret) — только на сервере, не здесь.
**Провайдер:** Contabo · физически **France / Lauterbourg** (в README/топологии зовётся «DE»).
**ОС:** Ubuntu **18.04.5 LTS** (⚠️ EOL) · kernel 4.15.0-144
**Ресурсы:** 8 vCPU / 29 GB RAM / 786 GB (исп. 176 GB) · swap 2 GB
**hostname:** `vmi274597` · PTR `zimbra.zottel.net` (устаревший, чужой)
**Uptime:** ~132 дня
---
## Доступ
- `ssh rus@ruzzy.dev` → пользователь `rus` (uid 1000, shell zsh), в группе docker, sudo.
- Пользователь `validator` (uid 1001, shell `/dev/null`) — сервисный аккаунт, активных процессов нет.
- На сервере живёт **gitea** (origin нашего infra-репо): `ssh://git@git.ruzzy.dev:2222`.
## DNS
- `ruzzy.dev`, `www.ruzzy.dev`, `git.ruzzy.dev` → 213.136.74.247 (Namecheap).
- `www.ruzzy.dev` используется как FakeTLS-маска для MTProxy.
---
## Docker-сервисы (всё крутится в Docker)
| Контейнер | Образ | Роль | Порты | Compose / данные |
|---|---|---|---|---|
| **telemt** | telemt:latest | MTProxy (FakeTLS) | host: 8443, API 9091 | `~/gost/` · cfg `~/gost/telemt-config/` |
| **amnezia-awg** | amnezia-awg | AmneziaWG туннель | 36360/udp · iface `amn0` | — |
| **gitea** | gitea/gitea | Git-хостинг | 2222 (ssh), 127.0.0.1:3000 (web) | `/srv/gitea/{data,config,logs}` |
| **postgres** | mdillon/postgis | PostgreSQL+PostGIS | 127.0.0.1:5432 | `~/volumes/postgres` |
| **openclaw-gateway-1** | openclaw:local | AI-ассистент «Илюха» | 18789-18790 | `~/openclaw/` · `~/.openclaw/` |
| **openclaw-cli-1** | openclaw:local | CLI-управление openclaw | — | `~/openclaw/` |
| **openclaw-whisper-1** | faster-whisper-server | STT (Whisper) | 8000 | vol `openclaw_whisper_models` |
| **claude-channels** | claude-channels | Claude-бот в Telegram | — | `~/claude-channels/` · vol `claude-home`; vault `~/MyVault` |
| **ipcam-sftp** | atmoz/sftp | Приём видео с IP-камер (SFTP) | 2223→22 | `/srv/ipcam/videos` |
| **ipcam-ftps** | fauria/vsftpd | Приём видео с IP-камер (FTPS) | 2221, 30000-30010 (pasv) | `/srv/ipcam/videos`, certs `/srv/ftps/certs` |
| *(2× openclaw-cli-run)* | 702cf30808fc | временные cli-run, **unhealthy** | — | — |
## Не в Docker (на хосте)
- **nginx** — `:80` и `:443` (на 213.136.74.247), плюс `127.0.0.1:4443` (FakeTLS-бэкенд маски telemt). Проксирует gitea и vhosts. Важно: nginx.conf должен include sites-enabled (иначе 443 не слушается).
- **OpenVPN** — `1194/udp`, подсеть `10.8.0.0/24`.
- **squid** — слушает `3128`, но по README считается нерабочим (упал 2026-02-09), не используется.
- **systemd-resolved** — `53`.
- порт `4369` (epmd) — артефакт erlang-приложения.
---
## VPN-топология (AmneziaWG)
- Контейнер `amnezia-awg`, iface `amn0` = 172.29.172.1/24, порт 36360/udp.
- Туннель: **de1 = 10.8.1.0**; RU-сервер подключается как **10.8.1.4/32**.
## MTProxy (telemt)
- `~/gost/docker-compose.yml`: host-network, read-only, cap_drop ALL + NET_BIND_SERVICE, no-new-privileges.
- Порт 8443, FakeTLS под `www.ruzzy.dev` (маска → nginx 127.0.0.1:4443). API: `curl http://127.0.0.1:9091/v1/users`.
- Юзер `ruzzy`. Secret (MD5) и диплинк — в `~/README.md`/конфиге на сервере (НЕ здесь).
## OpenClaw — «Илюха» (AI-ассистент в Telegram)
- Бот `@my_vault_assist_bot`. Gateway-контейнер слушает 18789. Модель: Claude Haiku 4.5 (fallback GPT-5.4).
- Каталоги: `~/openclaw/` (compose, `.env`, `Dockerfile.custom`), `~/.openclaw/` (config, skills, logs), `~/.openclaw-auth-profile-secrets/`.
- Vault: `~/MyVault` (Obsidian) → монтируется в контейнер, синкается в gitea каждые 5 мин (`sync.sh`, cron). SSH-ключ `~/.ssh/openclaw_gitea` (deploy key в gitea, alias `gitea-openclaw`).
- Скилы: myvault, shopping, books, diagrams, meeting-summary, weather, whisper, video-frames (websearch отключён).
- Возможности: голос (Whisper STT / OpenAI TTS), Mermaid-диаграммы (chromium+mmdc), книги (EPUB/PDF), саммари видео-встреч.
- API-ключи в `~/openclaw/.env`: ANTHROPIC, OPENAI, TELEGRAM_BOT_TOKEN, BRAVE, TAVILY, OPENCLAW_GATEWAY_TOKEN.
- Подробно: `~/OPENCLAW.md` на сервере.
## Claude-бот (claude-channels)
- Бот `@iluha_rabobot` (id 8322585909). Личка (allowlist, id 607015) + группа «Бухач» (`-584750268`, requireMention).
- `~/claude-channels/` (compose, Dockerfile Node22+Bun+Claude Code, `.env`). Volume `claude-channels_claude-home``/root`; vault `~/MyVault`.
- Настройки внутри volume: `.claude/settings.json`, `.claude/channels/telegram/access.json`.
- Подробно: `~/CLAUDE_BOT.md` на сервере.
## Прочее
- **ipcam** — приём записей с IP-камер по SFTP (2223) и FTPS (2221 + pasv 30000-30010) в `/srv/ipcam/videos`.
- **postgres/postgis** — БД (localhost), данные `~/volumes/postgres`.
## Cron (rus)
```
0 12 * * * sudo certbot renew --quiet # обновление TLS-сертификатов
*/5 * * * * ~/openclaw/sync.sh # синк Obsidian vault → gitea
```