Files
2026-06-21 21:30:07 +03:00

4.8 KiB
Raw Permalink Blame History

name, description, metadata
name description metadata
project-vps-state Полное состояние VPS nao-kvn.ru — архитектура, сервисы, безопасность, бэкап, доступ
node_type type originSessionId
memory project 2f046c73-11b0-4c4c-b2ed-132762fcae8c

VPS nao-kvn.ru — текущее состояние

Доступ

Сервер

  • IP 45.91.8.169, хост box-938039, Ubuntu 24.04 LTS, KVM
  • 1 vCPU, 961 MiB RAM, 20 ГБ диск, swap 2 ГБ, тариф 400₽/мес
  • RAM в обрез: ~0.5 ГБ занято из 0.96 ГБ

Архитектура

  • Один Compose-стек в /opt/docker/core, сеть core_proxy
  • Caddy — единственная публичная точка входа (80/443), авто-HTTPS Let's Encrypt
  • Остальные контейнеры на хост портов не публикуют — только через Caddy по имени контейнера
  • WireGuard-туннель VPS→Keenetic для домашнего SMB (445 в интернет не выставлен)

Сервисы

Сервис Образ Доступ
caddy caddy:2 proxy + TLS, 80/443 на хост
portainer portainer/portainer-ce:lts portainer.nao-kvn.ru, basic-auth
uptime-kuma louislam/uptime-kuma:1 status.nao-kvn.ru, basic-auth
vaultwarden vaultwarden/server:latest vault.nao-kvn.ru, публичный

Volumes: core_{caddy_data,caddy_config,portainer_data,uptime_data,vaultwarden_data}

Безопасность

  • HTTPS везде; UFW: только SSH разрешён; 80/443 управляет Docker через iptables
  • Caddy basic-auth (логин admin, bcrypt) перед Portainer и Uptime Kuma — сниппет (protected)
  • Vaultwarden: SIGNUPS_ALLOWED=false, ADMIN_TOKEN задан (открытым текстом в compose — известный компромисс)
  • SSH: PasswordAuthentication no, PermitRootLogin prohibit-password, конфиг /etc/ssh/sshd_config.d/00-hardening.conf
  • fail2ban на SSH (banaction = ufw); docker-логи лимитированы 10МБ×3

Домашний роутер Keenetic Hopper KN-3811

  • Белый IP 91.122.209.x (реальный endpoint в /etc/wireguard/wg0.conf на VPS)
  • WireGuard-сервер; SMB-шара TOSHIBA EXT, юзер only_vps, LAN 172.16.0.0/24
  • WG: VPS 10.0.0.5, Keenetic 10.0.0.1, маршрут 172.16.0.0/24, PersistentKeepalive=25

Бэкап Vaultwarden

  • Скрипт /usr/local/bin/vw-backup.sh: sqlite3 .backup + rsa_key*/config.json/attachments/sends → tar.gz
  • 3 копии: (1) локально /opt/backups/vaultwarden/ 14 шт.; (2) gdrive:vaultwarden-backups/ 90 дн.; (3) homesmb:TOSHIBA EXT/vaultwarden-backups/ best-effort 90 дн.
  • Расписание: vw-backup.timer, ежедневно 03:30 MSK, Persistent=true
  • rclone-remotes: gdrive (scope drive.file), homesmb (smb, 172.16.0.1, only_vps)
  • Восстановление проверено фактически: integrity_check ok, аккаунт + записи + rsa_key на месте

DNS

  • Домен nao-kvn.ru. A → 45.91.8.169: portainer, status, vault
  • TLS-ALPN-01 валидация, сертификаты в core_caddy_data

Пакеты

Docker CE 29.6.0 / containerd 2.2.5; sqlite3; rclone (SMB-бэкенд); wireguard-tools; smbclient; fail2ban; ufw

Репозиторий проекта

/mnt/Dick_E/Projects/vps-server-01/

Why: Личный VPS для управления контейнерами (Portainer), мониторинга доступности трёх площадок с белыми IP (ДК «Арктика», Архангельскстат Нарьян-Мар, дом) и хранения паролей (Vaultwarden). How to apply: При работе с VPS — читать этот файл для контекста. Проверять актуальность подключившись по SSH.