← всі звіти · index.md

Infrastructure

Оновлено: 2026-04-17

VPS

GitHub Tokens

Назва Token Scopes Expires
claude-server-vps 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 repo, workflow No expiration
vps-ag-wiki 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 repo May 14 2026

Git Setup на VPS

# Налаштувати git credentials з новим PAT
git config --global user.email "serhiivereschak@gmail.com"
git config --global user.name "Serhii Vereschak"

# Зберегти credentials
echo "https://serhiivereschak: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@github.com" > ~/.git-credentials
git config --global credential.helper store

# Клонувати всі проекти
cd /srv/services
for repo in ad-analytics biogaia-story family-tree loyalty-analysis plasma-skylab ruby-oort zest-content lunar-hubble pediatric-news; do
  git clone "https://serhiivereschak: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@github.com/serhiivereschak/$repo.git"
done

# Оновити ag-wiki
cd /srv/wiki && git pull

Services

Сервіс URL / Path Status
Caddy /srv/caddy/Caddyfile 🟢
n8n localhost:5678 🟢
Claude bot systemd: claude-bot.service 🟢
ag-wiki /srv/wiki/ 🟢
claude-watchdog /srv/services/claude-watchdog/watchdog.py 🟢 v2
Reports hub /reports/ — FastAPI markdown-viewer на 127.0.0.1:8081 🟢
Perlite (Obsidian memory viewer) /memory/ — docker-compose у /srv/perlite/, basic auth, read-only mirror 🟢 (2026-04-23)
Meta Ads toolkit /srv/tools/meta-ads/ — скрипти аудиту кампаній 🟢 (2026-04-23)

Obsidian memory viewer (Perlite) — додано 2026-04-23

Ідея: веб-інтерфейс для перегляду нашої VPS memory (/root/.claude/projects/-/memory/) у стилі Obsidian. Read-only, з графом зв'язків і пошуком.

Далі (roadmap):

Meta Ads toolkit — додано 2026-04-23

Програмний доступ до Meta Marketing API через власну app Deltamedical. Окремий проект: /srv/wiki/meta-ads-toolkit/.

Встановлене ПЗ (станом на 2026-04-17)

Інцидент 2026-04-17 та Hardening

Root Cause

fail2ban заблокував IP 193.93.78.10 (домашній IP Сергія = egress IP Cowork sandbox). Причина: 4× "Failed password for root" при SSH-спробах о 08:32–08:34 UTC (maxretry=3, bantime=24h). fail2ban зберігає бани через persistent.bdb — бан пережив перезавантаження о 09:31 UTC.

Побічний ефект: Claude CLI polling завис у tmux-сесії (бот мовчав 15–17 квітня ~37 год), при цьому systemd вважав сервіс живим.

Після перезавантаження: Claude Code v2.1.112+ показує інтерактивний prompt "Enable auto mode?" → нова сесія бота блокувалась до натискання 1. Виправлено через watchdog v2.

Hardening (виконано 2026-04-17)

VNC Quirk (на майбутнє)

QEMU VNC mis-translates: _-, >>.., |\. Shift+minus = _. Уникати складних команд через VNC.

Ще потребує дій (pending)

GitHub Tokens

Назва Scopes Expires
claude-server-vps repo, workflow Без терміну
vps-ag-wiki repo 14 травня 2026 ⚠️

⚠️ vps-ag-wiki спливає 14 травня 2026 — ~27 днів. Оновити до 1 травня.

Git Setup на VPS

git config --global user.email "serhiivereschak@gmail.com"
git config --global user.name "Serhii Vereschak"
git config --global credential.helper store
cd /srv/wiki && git pull

PAT зберігається в /root/.git-credentials та в remote URL wiki repo.