Walidacja Planu Implementacji Browser-VPN SaaS

Data: 2026-07-22

Źródła: Plan implementacji (2026-07-22-browser-vpn-implementation-plan.md) vs Specyfikacja v4 (2026-07-22-browser-vpn-v4-design.md)

Ocena ogólna: 7.5/10


Scorecard

KategoriaOcenaUwagi
Kompletność7/10Plan pokrywa ~80% wymagań spec v4; brakuje kilku kluczowych elementów
Struktura9/10Taski bite-sized, dobrze podzielone na fazy, czytelny format
Wykonalność8/10Taski są realistyczne, ale szacowany czas MVP (6 dni) może być optymistyczny
Zgodność ze spec v47/108 z 12 kluczowych obszarów spec v4 pokrytych; 4 obszary wymagają uzupełnienia

Co jest OK ✅

Struktura i podział na taski

Pokrycie wymagań spec v4

Obszar spec v4Status w planieUwagi
Selkies-GStreamer✅ Task 1.5Port 3000 (noVNC) + port 3001 (Selkies) z Traefik labels
Seccomp (default MVP)✅ Task 1.5--cap-drop=ALL --cap-add=NET_ADMIN,SYS_PTRACE --no-new-privileges
Traefik porty 3000/3001✅ Task 1.5Osobne routery Traefik dla noVNC i Selkies
API versioning✅ Task 1.1/api/v1/health — zgodne z konwencją
Izolacja sieciowa✅ Task 1.5--internal per-container network, osobna btcpay-network
ERD/tabele✅ Task 0.28 tabel: orders, sessions, vpn_configs, discount_codes, tickets, system_logs, server_metrics, admin_audit_logs
Docker secrets✅ Task 0.3.env + setup.sh z generatorami sekretów
VPN config lifecycle✅ Task 1.5VPN pool z select/release, fail_count i is_broken
Admin panel✅ Task 2.44 podstrony: dashboard, orders, containers, settings
Trocador integration✅ Task 1.3API + webhook + polling fallback
BTCPay integration✅ Task 1.4Invoice + webhook + failover
Container orchestration✅ Task 1.5Start/stop Docker containers z linuxserver images
Session management✅ Task 1.6Magic link, device binding, recovery PIN, schedulers
TOTP + audit log✅ Task 3.1Obowiązkowe TOTP dla admina
Trivy scanning✅ Task 3.2Weekly scan, auto-rebuild na CRITICAL/HIGH
Monitoring + Telegram✅ Task 3.3Alerty z progami CPU/RAM/disk
Backup lokalny + off-site✅ Task 4.1pg_dump, GPG encrypt, rsync retention 7/30 dni
DR scripts✅ Task 4.2restore.sh, switch-domain.sh, test restore monthly
CI/CD✅ Task 5.1GitHub Actions: build → migrate → staging → smoke → prod

Co brakuje / wymaga poprawy ⚠️

🔴 1. BTCPay Server — brak serwisu w docker-compose (CRITICAL)

Problem: Spec v4 definiuje BTCPay Server jako osobny Docker service z pruned Bitcoin node (10 GB). Plan w Task 1.4 integruje się z BTCPay API, ale nigdzie nie definiuje serwisu BTCPay w docker-compose.yml (Task 0.1). Bez tego serwisu integracja BTCPay nie zadziała — nie ma do czego wysyłać webhooków ani tworzyć invoice'ów.

Rozwiązanie: Dodać serwis btcpayserver do docker-compose.yml (Task 0.1) lub osobny task w Faza 0.

Przykładowa konfiguracja z spec v4:

services:
  btcpayserver:
    image: btcpayserver/btcpayserver:latest
    environment:
      - BTCPAY_CHAIN=BTC
      - BTCPAY_PRUNE=10000
    volumes:
      - btcpay-data:/data
    networks:
      - btcpay-network

🔴 2. Polityka retencji danych — brak implementacji (HIGH)

Problem: Spec v4 definiuje 7 zasad retencji danych:

Plan nie zawiera żadnego taska do implementacji tych zasad. Brak cron joba/schedulera do cleanupu, brak mechanizmu anonimizacji danych.

Rozwiązanie: Dodać task w Faza 1 (backend) lub Faza 3 (security) implementujący scheduler do czyszczenia danych zgodnie z polityką retencji.

🟡 3. SLO Measurement — brak implementacji (MEDIUM)

Problem: Spec v4 definiuje konkretne metody pomiaru SLO:

Plan w Task 3.3 (Monitoring) jest ogólny — "Alerty Telegram z progami" — ale nie implementuje tych konkretnych mechanizmów pomiarowych.

Rozwiązanie: Doprecyzować Task 3.3 o implementację SLO measurement zgodnie ze spec v4, lub dodać osobny task.

🟡 4. Brak zadania dla WireGuard config upload (MEDIUM)

Problem: Spec v4 opisuje lifecycle VPN configów (7 kroków), w tym:

Plan ma Task 1.5 (VPN pool) i admin panel (Task 2.4), ale nie ma konkretnego taska dla mechanizmu uploadu WireGuard configów przez admin panel ani API endpointu do tego.

Rozwiązanie: Dodać podtask w Task 2.4 (admin panel) lub osobny task w Faza 1 dla API endpointu POST /api/v1/admin/vpn-configs.

🟡 5. Ticket system — brak implementacji (MEDIUM)

Problem: Spec v4 definiuje tabelę tickets w ERD i politykę retencji (90 dni), a plan wspomina tickety w admin panelu (Task 2.4). Brakuje jednak:

Rozwiązanie: Dodać task w Faza 1 (backend) dla tickets API i w Faza 2 (frontend) dla tickets UI.

🟡 6. Discount codes — brak implementacji (MEDIUM)

Problem: Tabela discount_codes istnieje w migracji SQL (Task 0.2), ale plan nie ma taska dla:

Rozwiązanie: Dodać walidację discount_code w Task 1.2 (Orders API) i UI w Task 2.4 (admin panel).

🟢 7. DR scenarios — niepełne pokrycie (LOW)

Problem: Spec v4 definiuje 7 scenariuszy DR z RTO/RPO. Plan ma Task 4.2 (restore.sh, switch-domain.sh), ale nie obejmuje wszystkich scenariuszy:

Rozwiązanie: Dodać te scenariusze do Task 4.2 lub dokumentacji DR.


Analiza szczegółowa

Ocena tasków

TaskCzasOcenaUwagi
0.1 docker-compose + Traefik2-5 minDobrze zdefiniowany, konkretne YAML
0.2 Migracje SQL2-5 minKompletny SQL z 8 tabelami
0.3 .env + setup.sh2-5 minGenerator sekretów, interaktywny setup
1.1 Backend skeleton2-5 minExpress/Fastify, health check
1.2 Orders API2-5 minPełny flow: walidacja → generowanie → zapis → payment
1.3 Trocador integration2-5 minAPI + webhook + polling
1.4 BTCPay integration2-5 minAPI + webhook + failover, ale brak serwisu BTCPay w docker-compose
1.5 Container orchestration3-8 min⚠️Task może być zbyt obszerny — zawiera start/stop, VPN pool, Traefik labels, Docker networks
1.6 Session management2-5 minMagic link, device binding, recovery PIN, scheduler
2.1 Landing page2-5 minFormularz zakupu (browser, region, plan, discount)
2.2 Order page2-5 minQR kod, status polling, download
2.3 Session page2-5 minnoVNC/Selkies stream, timer, magic link
2.4 Admin panel3-8 min⚠️4 podstrony — może wymagać podziału na 2 taski
3.1 TOTP + audit log2-5 minDobrze zdefiniowany
3.2 Trivy scanning2-5 minWeekly scan, auto-rebuild
3.3 Monitoring + Telegram2-5 min⚠️Brak szczegółów SLO measurement
4.1 Backup2-5 minpg_dump, GPG, rsync, retention
4.2 DR scripts2-5 minrestore.sh, switch-domain.sh
5.1 CI/CD2-5 minGitHub Actions pipeline

Ocena faz

FazaTaskiSzacowany czasOcenaUwagi
Faza 03~1 dzieńRealistyczny, ale brak BTCPay service
Faza 16~3 dni⚠️Task 1.5 może być zbyt obszerny; brak tickets API, discount codes API, retention scheduler
Faza 24~2 dni⚠️Task 2.4 (admin panel) może wymagać podziału
Faza 33~1 dzień⚠️Brak SLO measurement; data retention cleanup
Faza 42~0.5 dnia⚠️Niepełne pokrycie DR scenariuszy
Faza 51~0.5 dniaStandardowy pipeline

Zalecane poprawki

Must Have (przed implementacją)

  1. Dodaj BTCPay Server service do docker-compose.yml (Task 0.1) — bez tego integracja BTCPay nie zadziała
  2. Dodaj task dla data retention / cleanup scheduler — w Faza 1 (backend) lub Faza 3 (security)
  3. Podziel Task 1.5 na dwa osobne taski: (a) Container orchestration, (b) VPN pool management
  4. Podziel Task 2.4 na dwa osobne taski: (a) Admin dashboard + orders, (b) Admin containers + settings
  5. Dodaj SLO measurement do Task 3.3 — konkretne skrypty curl, heartbeat, timing

Should Have (przed prod)

  1. Dodaj tickets API (Faza 1) + tickets UI (Faza 2)
  2. Dodaj discount codes validation w Task 1.2 + admin UI w Task 2.4
  3. Dodaj WireGuard config upload endpoint w Faza 1 + admin UI w Task 2.4
  4. Uzupełnij DR scenariusze w Task 4.2 — container crash loop, Trocador down test, VPN region down

Could Have (po MVP)

  1. Seccomp custom profile (v2) — zgodnie ze spec v4, nie dla MVP

Podsumowanie

AspektWerdykt
Plan gotowy do implementacji?⚠️ Tak, ale z poprawkami
Plan jest dobrze zorganizowany i ma solidną strukturę. Jednak brak BTCPay Server service w docker-compose to krytyczny błąd — bez tego integracja płatności BTCPay nie zadziała.
Co zrobić przed startem:1. Dodać BTCPay service do docker-compose
2. Dodać data retention scheduler
3. Podzielić zbyt duże taski (1.5, 2.4)
MVP (Fazy 0-2) po poprawkach:~7-8 dni (zamiast 6) — bardziej realistyczne
Razem przed prod:~9-10 dni (zamiast 7.5)

Rekomendacja

Plan jest gotowy do implementacji po wprowadzeniu 5 poprawek Must Have. Po ich aplikacji ocena wzrośnie do ~9/10. Główne ryzyko to brak BTCPay serwisu w docker-compose — bez tego nie da się przetestować integracji płatności.


Raport wygenerowany 2026-07-22 przez Hermes Agent na podstawie walidacji planu vs specyfikacji v4.