# VPS Hosting Node — Samurai AI

> **Узел:** `31.58.134.118` (server-FS5Zbf) · **Локация:** NL, Amsterdam · **OS:** Ubuntu 24.04 LTS
> **Стек:** Caddy 2.11.4 · Docker 28.1.1 · UFW · fail2ban · danted SOCKS5
> **Дата-setup:** 2026-06-26/27 · **Канон:** `/opt/project_llm/docs/ai/vps-hosting/`

Публичный хостинг-узел для сайтов, лендингов и публичных сервисов Samurai AI.

---

## 🌐 Публичные адреса (актуальные)

| URL | Что | Источник на VPS |
|-----|-----|----------------|
| **https://31.58.134.118.nip.io/** | Health-лендинг Samurai AI | `/var/www/samurai-ai/index.html` |
| **https://31.58.134.118.nip.io/goida-vpn** | Goida VPN Configs | Docker-контейнер `goida-vpn-site` → `127.0.0.1:5001` |
| `http://31.58.134.118/` | (redirect → HTTPS nip.io) | Caddy |

> **Почему nip.io?** Временный wildcard-DNS домен `IP.nip.io` → `IP`. Даёт валидный Let's Encrypt SSL **без регистрации домена**. Открывается в любом браузере (нет предупреждений о сертификате).

---

## 🔐 Безопасность (hardened)

| Мера | Статус |
|------|--------|
| SSH: парольная авторизация | ❌ **отключена** (`PasswordAuthentication no`) |
| SSH: root-login | 🔑 **только по ключу** (`prohibit-password`) |
| SSH-ключ (беспарольный) | `~/.ssh/id_ed25519_vps_6627` → alias `ssh vps-proxy` |
| fail2ban (SSH brute-force) | ✅ active (4 атаки отбито, ban 1ч / maxretry 4) |
| UFW firewall | ✅ open: 22, 80, 443, VPN-порты (51820/51821/46673) |
| Авто-обновления безопасности | ✅ unattended-upgrades active |
| Security headers | ✅ nosniff / SAMEORIGIN / no-referrer / HSTS |
| Caddy admin API | 🔒 localhost-only (`127.0.0.1:2019`) |
| Docker socket | 🔒 root:docker (srw-rw----) |
| SOCKS5 пароль | 🔑 ротирован 26.06 (в secrets) |

**Аудит до hardening:** 16843 failed-SSH за 24ч (активный brute-force) → fail2ban нейтрализует.

---

## 🗂️ Структура на VPS

```
/etc/caddy/Caddyfile        — конфиг reverse-proxy + auto-SSL
/var/www/<name>/            — статичные сайты
/opt/stack/<name>/          — Docker-сервисы (compose + Dockerfile)
/etc/fail2ban/jail.local    — SSH-защита
/etc/ssh/sshd_config        — hardened
```

## 🔌 Порты

| Порт | Сервис | Доступ |
|------|--------|--------|
| 22 | SSH (ключ-only) | публичный |
| 80 | HTTP (→ redirect HTTPS) | публичный |
| 443 | HTTPS (Caddy + SSL) | публичный |
| 1080 | danted SOCKS5 (proxy-omni) | публичный *(в OmniRoute глобально OFF)* |
| 5001 | goida-vpn-site (Flask/waitress) | **loopback only** |
| 51820/51821/46673 | Amnezia VPN | публичный *(не трогать — активные юзеры)* |

---

## Доступ

```bash
ssh vps-proxy    # alias в ~/.ssh/config → root@31.58.134.118, ключ id_ed25519_vps_6627
```

Secrets (root-pass, SOCKS5-pass): `/home/samurai/.secrets_dir/vps-proxy-31.58.134.118.env` (chmod 600).

---

## Связанные документы

- [USER_GUIDE.md](USER_GUIDE.md) — руководство пользователя
- [AGENTS_GUIDE.md](AGENTS_GUIDE.md) — руководство для ИИ-агентов
- [SECURITY.md](SECURITY.md) — детали hardening + аудит
