Access & Network
Private entry paths and controlled exposure.
- Tailscaleprivate overlay network
- UFWinterface-level firewall rules
- Nginx Proxy Managercontrolled reverse proxy entry points
Practical platform hardening for a self-operated web environment: private administration paths, reduced public exposure, persistent host and Docker rules, DNS filtering, monitoring, backups, and traceable operations documentation.
Public summary only: internal hostnames, addresses, secrets, firewall details, and full configurations are not published.
Layered view of the current platform: public ingress, private management path, DNS and firewall controls, observability, analytics, and recovery with clear responsibility boundaries.
Verified controls include private administration paths, persistent host and Docker filtering, monitoring, and application/data backups with an isolated restore rehearsal. Encrypted secondary copies to removable storage are operator-triggered; automatic failover and complete infrastructure recovery are not implemented.
Private entry paths and controlled exposure.
DNS filtering, attack detection, and community threat intelligence.
First-party metrics and storage components.
Runtime visibility across hosts and services.
Container administration and update flow.
Principle: Reduce attack surface. Impl: Private overlay paths, workload-level separation on Proxmox, and controlled service entry points instead of unmanaged direct exposure.
Principle: Layered defense. Impl: Interface-aware UFW rules, a persistent DOCKER-USER policy, Pi-hole for DNS filtering, CrowdSec for detection, and Nginx Proxy Manager for centralized service exposure.
Principle: No open management ports. Impl: Tailscale on top of WireGuard for private administration paths, consistent SSH access, and controlled remote access to internal platforms.
Principle: Keep the operating state visible. Impl: Netdata for real-time metrics, Uptime Kuma for service checks, Dozzle for live logs, and Watchtower for routine container update automation.
Challenge: Internal services and clients needed baseline protection against unwanted domains and suspicious traffic patterns.
Approach: Used Pi-hole for DNS filtering, connected CrowdSec for detection, and routed service access through defined entry points.
Outcome: DNS filtering, detection, and service access are easier to inspect separately; active blocking remains pending until the bouncer configuration is verified.
Challenge: Distributed services and dashboards needed remote administration without broadly exposing management interfaces.
Approach: Moved administration through Tailscale and SSH aliases; public access is limited to user-facing services while management surfaces stay private.
Outcome: Management is separated from the public web path, and exposed services are easier to operate and audit.
Challenge: A tool-by-tool private infrastructure lab became harder to monitor, secure, and maintain as the service stack grew.
Approach: Built a Proxmox and Docker platform around Nginx Proxy Manager, Pi-hole, CrowdSec, Netdata, Uptime Kuma, Dozzle, Watchtower, and Homepage, and stabilized a Proxmox API integration for a React-based dashboard.
Outcome: Created a clearer internal platform with structured operating paths, centralized visibility, and reduced exposure.