Files
infra/servers/de1.md

11 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-репо)перенесена на fr1 2026-06-21, теперь git.ruzzy.dev → fr1. На de1 контейнер остановлен (restart=no), данные /srv/gitea оставлены для отката.

DNS

  • ruzzy.dev, www.ruzzy.dev → 213.136.74.247 (Namecheap).
  • git.ruzzy.devпереключён на fr1 (161.97.93.252) 2026-06-21.
  • 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-хостинг — перенесён на fr1 2026-06-21 /srv/gitea (оставлен для отката, контейнер остановлен, restart=no)
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 (на хосте, systemd)

  • nginx 1.24.0 — vhosts (см. секцию ниже). Слушает :80, 213.136.74.247:443, 127.0.0.1:4443.
  • openvpn@server.service — активен. 1194/udp, подсеть 10.8.0.0/24. Iptables-правила восстанавливает iptables-openvpn.service (+ netfilter-persistent). Конфиг /etc/openvpn/server.conf.
  • squid.serviceактивен, слушает 3128 (в README ошибочно помечен как упавший — фактически работает).
  • epmd.service — активен, 4369 (Erlang Port Mapper), но без beam/erlang-приложения — рудимент.
  • supervisorзаброшен: не запущен (сокета нет), конфиги в /etc/supervisor/conf.d/ пустые. Имена-заглушки (adv_notifier_back, bazaraki_crawler_v3_back, btc_spy, petuh_bot, proxy_source_back) — наследие, проекты переехали на docker/в /var/www.
  • plexmediaserver.service — включён, но failed (не слушает 32400) — рудимент.
  • unbound.service — включён, но не работает (лежит — совпадает с README).
  • systemd-resolved53.
  • Прочее включённое: rsync (daemon), sysstat (sar), ondemand (cpu governor), wpa_supplicant (рудимент).

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 устарел: gitea на de1 остановлена, DNS уехал на fr1. Vhost ещё включён → отдаёт 502 на запросы со старых DNS-кэшей. Можно отключить/редиректить.
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.

Проекты пользователя (/var/www)

Код проектов лежит здесь (владелец rus). ⚠️ Сейчас в docker ps их нет — то есть эти приложения сейчас остановлены (часть гоняли вручную через docker compose).

Проект Размер docker-compose Назначение (по имени)
work.ruzzy.dev 4.2 GB статика файлов (отдаётся nginx, см. vhost work)
files 780 MB файлы
cookie-monster 439 MB
petuh_bot 350 MB Telegram-бот
proxy_source 17 MB бэкенд источников прокси
bazaraki_crawler_v3 11 MB краулер объявлений (bazaraki, Кипр)
adv_notifier 5.7 MB нотификатор объявлений (связан с adv.ruzzy.dev)
btc_spy 968 KB мониторинг BTC (блокчейн)
blog, mock, embassy_parsers, webhook_updater старое/вспомогательное
www.ruzzy.dev 8 KB статика маскировочного сайта (FakeTLS)

(висели застрявшие zsh-процессы docker compose build по bazaraki_crawler_v3 — мусор от прошлых ручных сборок.)

Cron / systemd timers

Crontab пользователя rus:

0 12 * * *   sudo certbot renew --quiet     # обновление TLS-сертификатов
*/5 * * * *  ~/openclaw/sync.sh             # синк Obsidian vault → gitea

(root-crontab через sudo crontab -l не проверялся — нет sudo-доступа в этой сессии.)

Системный cron (/etc/cron.d/):

certbot:  0 */12 * * *  certbot -q renew                       # ещё одно автопродление (дубль)
sync:     52 * * * *    sync; echo 3 > /proc/sys/vm/drop_caches # ежечасный сброс page cache (ручной тюнинг)
sync:     42 23 * * *   fstrim /
sysctl:   @reboot       sysctl -p
sysstat / popularity-contest — штатные.

systemd timers (активные): snap.certbot.renew.timer (certbot ещё и через snap!), apt-daily, apt-daily-upgrade, fstrim, ua-messaging, motd-news, systemd-tmpfiles-clean.

⚠️ Автопродление сертификатов настроено тройным способом: user-cron + /etc/cron.d/certbot + snap.certbot.renew.timer. Избыточно, но не вредит. При переносе достаточно одного механизма.