Files
infra/servers/de1.md

6.9 KiB
Raw Blame History

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 1.24.0 — vhosts (см. секцию ниже). Слушает :80 и 213.136.74.247:443, плюс 127.0.0.1:4443.
  • OpenVPN1194/udp, подсеть 10.8.0.0/24.
  • squid — слушает 3128, но по README считается нерабочим (упал 2026-02-09), не используется.
  • systemd-resolved53.
  • порт 4369 (epmd) — артефакт erlang-приложения.

nginx (vhosts)

nginx 1.24.0 на хосте. nginx.conf подключает conf.d/*.conf + sites-enabled/*. Vhost'ы в sites-available/, симлинки в sites-enabled/. TLS везде Let's Encrypt (certbot, автопродление через cron).

Домен :443 → backend :80 Назначение
git.ruzzy.dev proxy 127.0.0.1:3000 301→https веб gitea
stat.ruzzy.dev proxy 127.0.0.1:3001 404 статистика (WS-проксирование, апстрим :3001)
work.ruzzy.dev статика /var/www/work.ruzzy.dev 404 файлы: /d/ форс-скачивание, /v/ стриминг с byte-range
www.ruzzy.dev 127.0.0.1:4443 ssl → статика /var/www/www.ruzzy.dev ACME + 301→https FakeTLS-маска для telemt (MTProxy форвардит сюда)
adv.ruzzy.dev включён, но файл пустой (no-op)
  • conf.d/default.conf — дефолтный localhost:80 (заглушка nginx).
  • sites-available/default (213.136.74.247:80 default_server, root /var/www/html) — не включён (нет симлинка).
  • Бэкапы конфига: nginx.conf.bak, nginx.conf.bak.20260613.

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