Production-grade single-VPS hardening roadmap.

Statusas

FazėElementaiStatusas
P0 — KritinisRestore drill, alerting, swap✅ 4/5
P1 — ObservabilityPrometheus, Grafana, Loki, uptime, status page✅ 2/5
P1 — Security v2CrowdSec, CF Access, Lynis, auditd✅ 3/5
P2 — DevOpsAnsible, CI drift, SOPS, Renovate✅ 2/4
P2 — PerformanceCF Tunnel, MariaDB/Redis/nginx tuning✅ 4/4

Atlikta ✅

  • P0.1 Restic restore drill (monthly timer)
  • P0.3 Alerting kanalas (ntfy.sh + systemd hooks + fail2ban)
  • P0.4 Swap 4 GB
  • P1.4 External uptime monitor (CF Worker cron)
  • P1.5 Status page (status.play.army)
  • P1.6 CrowdSec IDS (agent, 6 kolekcijos)
  • P1.7 CF Access Zero Trust (panel.play.army)
  • P1.8 Lynis audit (score 83/100, weekly timer)
  • P2.1 Ansible playbook (13 rolių, syntax pass)
  • P2.2 CI drift detection (GitHub Actions, weekly)
  • P2.5 CF Tunnel (origin invisible)
  • P2.6 MariaDB tuning
  • P2.7 Redis tuning
  • P2.8 nginx tuning

Liko 🔲

#DarbasPastaba
P0.22FA PterodactylTOTP admin paskyroms
P0.5API token regenHostinger token buvo terminal istorijoj
P1.1Prometheus + node_exporterDocker compose, 15s scrape
P1.2Grafana dashboardaiCF Zero Trust protected
P1.3Loki + PromtailLog agregacija
P1.9AIDE file integrityPapildys esamą auditd
P1.10Wings auto-update trackingWeekly release check
P2.3SOPS secretsage encrypted, portable
P2.4RenovateDocker/package CVE tracking
P2.5Certbot DNS-01 + UFW cleanupUždaryti 80/443, tunnel pakanka

Ateities idėjos (P3)

  • Multi-region failover (CF Load Balancing)
  • WireGuard admin VPN
  • Game server fleet (Minecraft, CS2, Rust)
  • Discord bot (!status, !players, !restart)
  • play.army brand site (Astro + CF Pages)