Security and Hardening Guides

A self-hosted platform is only as safe as the server and the secrets on it. These articles cover hardening a VPS, protecting configuration, keeping an audit trail and scanning what you deploy.

15 posts

18 min read
By David Viejo

A 15-step VPS security checklist for Ubuntu 24.04 and Debian 12: SSH keys, a firewall Docker can't bypass, auto-updates, fail2ban, TLS, tested backups.

12 min read
By David Viejo

Encrypt environment variables at rest with AES-256-GCM: master keys vs envelope encryption, key storage, and how Vercel, Coolify and Temps store secrets.

17 min read
By David Viejo

SSH is the most attacked service on an exposed server. Install Tailscale, close port 22 and expose only 80 and 443 — with Hetzner and Vultr costs compared.

12 min read
By David Viejo

Scan Docker images for CVEs with Trivy after every deploy and daily: severity triage, a SHA-pinned GitHub Actions setup, and alerts for critical findings.

13 min read
By David Viejo

Temps issues TLS certificates on demand at the first handshake for sslip.io and wildcard-DNS subdomains — no pre-provisioning and no DNS control required.

11 min read
By David Viejo

The 6 best self-hosted session replay tools in 2026: Temps, OpenReplay, rrweb, PostHog, Matomo and Highlight's open-source repo, compared on licence.

10 min read
By David Viejo

Privacy-first analytics and session replay platforms in 2026: Temps, Plausible + OpenReplay, Matomo, Umami and PostHog, compared on cookies and hosting.

13 min read
By David Viejo

Self-hosted Plausible alternatives for 2026: Temps, Umami, Matomo, PostHog, Rybbit, GoatCounter and Ackee compared on cost, cookies, scope and setup.

12 min read
By David Viejo

Add web analytics without third-party scripts: serve tracking from your own domain so fewer blockers hide your traffic. DIY, Umami and Temps compared.

10 min read
By David Viejo

reCAPTCHA fails accessibility standards and leaks data. Proof-of-work CAPTCHA with challenge-response stops bots without tracking users or showing puzzles.

11 min read
By David Viejo

One bad UPDATE without a WHERE clause takes down production. Read-only roles, query sandboxing, row limits, and audit trails for safe database access.

12 min read
By David Viejo

Most platforms have no audit log until compliance demands one. Event schemas, immutable storage, retention policies and the query patterns SOC 2 needs.