Infrastructure
Оновлено: 2026-04-21
VPS
- IP: 31.131.26.203
- Hostname: hqnl0398037.online-vm.com
- OS: Ubuntu 24.04.4 LTS
- Plan: HOSTiQ kVPS70 — 3 vCPU, 6 GB RAM, 70 GB SSD, Rotterdam
- Disk: 35.6% of 65.86GB
- User: root
- SSH: ed25519 ключ serhii-laptop (парольний вхід ще ввімкнений — ⚠️ вимкнути)
- Оплата: квартальна, 3869.80 грн, наступна 13/07/2026
- Панель: vpspanel.twinservers.net:5656, логін hq237287
Програмне забезпечення (VPS)
- Node.js v22.22.2, npm 10.9.7
- Bun 1.2.12
- Docker 29.4.0 + Docker Compose
- Claude Code 2.1.112 (Sonnet 4.6, Max subscription, OAuth)
- Gemini CLI 0.37.1 (Google AI Ultra for Business, OAuth)
- UFW firewall (порти: 22, 80, 443, 6080)
- Caddy 2 (Docker, reverse proxy)
- n8n latest (Docker, port 5678 localhost only)
- fail2ban (налаштований, з ignoreip для домашнього IP)
Сервіси
Telegram Bot (@my27claudeclawbot)
- 🟢 systemd: claude-bot.service, tmux сесія (claude-bot)
- Claude Code + Telegram plugin (Bun runtime)
- Locked down: allowlist access policy, dmPolicy: allowlist
- Start script: /usr/local/bin/claude-bot-start.sh
- Service file: /etc/systemd/system/claude-bot.service
- Bot token (bot_id: 8718732237) — ротовано 2026-04-17
- PATH includes /root/.bun/bin (необхідно для Bun/Telegram plugin)
Claude Watchdog v2
- Скрипт: /srv/services/claude-watchdog/watchdog.py
- Перевіряє liveness tmux-сесії + авто-відповідь на "Enable auto mode?" (send "1")
- Cooldown перезапуску: 10 хв
- State файл: /tmp/claude-watchdog-state.json
Caddy — reverse proxy
- /srv/docker-compose.yml (Caddy + n8n)
- /srv/caddy/Caddyfile — поки що лише "AG Dev Hub Server is running" на :80
- SSL: автоматичний через Let's Encrypt (при налаштуванні домену)
n8n
- localhost:5678, домен не налаштований (задача)
ag-wiki — /srv/wiki, git pull з GitHub (master branch)
Fail2ban — налаштування 2026-04-17
/etc/fail2ban/jail.local → ignoreip = 127.0.0.1/8 ::1 193.93.78.10
- 193.93.78.10 — домашній IP Serhii (він же egress IP Cowork sandbox!)
- До виправлення: fail2ban банив цей IP після невдалих SSH-спроб → сесія повністю блокувалась
Incident 2026-04-17 — VPS SSH lockout
Причина: fail2ban забанив 193.93.78.10 (домашній IP = egress Cowork sandbox). 4× невдалих паролів root через PowerShell SSH о 08:32–08:34 UTC (maxretry=3, bantime=24h). Бан зберігся через reboot (persistent.bdb + RestoreBan).
Відновлення: через VNC (SolusVM) → fail2ban-client set sshd unbanip 193.93.78.10
Хардінг виконано:
- fail2ban ignoreip оновлено (домашній IP у whitelist)
- UFW re-enabled з наявними правилами
- auto-reboot вимкнено в unattended-upgrades (
Automatic-Reboot "false")
- Watchdog v2: перевірка liveness + авто-unlock auto-mode prompt
- Telegram bot token ротовано через @BotFather /revoke (старий повертає 401)
- Sandbox ed25519 ключ додано до /root/.ssh/authorized_keys (SHA256:tA5mTCBfdOkF+cCVO2h97Y6EMdxx76VqfyE+28+Cudg)
Безпека — VNC gotcha
QEMU VNC для цього VPS некоректно транслює _, >>, | (underscore→dash, >>→.., |→). В asyncvnc: Shift + minus = _. Уникати складних shell-команд через VNC — відновити SSH якнайшвидше.
Локальна інфраструктура (Windows)
- SSH ключ: D:\Users\Sergey.Vereschak.DELTAMEDICAL.ssh\id_ed25519
- ag-wiki clone: D:\Users\Sergey.Vereschak.DELTAMEDICAL\Documents\ag-wiki
- Scheduled: wiki-memory-sync щодня 20:04
- Antigravity workspace: D:\Users\Sergey.Vereschak1.gemini\antigravity\playground\
- Remoat config: D:\Users\Sergey.Vereschak.DELTAMEDICAL.remoat\config.json
- Node.js local: v24.14.0
Ключові рішення
- Remote agent: Claude Code + Telegram plugin (замість Antigravity + Remoat + OpenClaw)
- Remoat ⛔: topic→project persistence проблема
- OpenClaw ❌: ризик блокування Google акаунту, CVE-2026-25253
Відкриті задачі
- 🔴 Вимкнути парольний SSH (PasswordAuthentication ще ввімкнений)
- 🔴 Ротувати root пароль (старий проходив через чат)
- 🔴 Ротувати VNC пароль у SolusVM (старий проходив через чат)
- 🟡 n8n domain — localhost:5678, налаштувати Caddy reverse proxy
- 🟡 biogaia-story .env refactor (API key захардкоджений в app.py)
- 🟡 Remoat persistence bug
- 🔵 Google Drive backup
✅ Завершені
- GitHub PAT regenerated 2026-04-14 (
claude-server-vps, no expiration)
- Telegram bot @my27claudeclawbot — systemd, STABLE
- ag-wiki daily sync scheduled (щодня о 20:04)
- fail2ban ignoreip — домашній IP у whitelist (2026-04-17)
- Watchdog v2 — auto-mode unlock + liveness check (2026-04-17)
- Bot token ротовано (2026-04-17)
- Sandbox ed25519 ключ у authorized_keys (2026-04-17)
- auto-reboot вимкнено (2026-04-17)