Houston is my main public server, running on a Hetzner VPS. It serves as the central hub for authentication, monitoring, and various web applications.
- Provider: Hetzner Cloud
- Instance Type: CX32
- CPU: 4 Intel vCPU cores
- RAM: 8 GB
- Storage: 80 GB SSD
- Bandwidth: 20TB included traffic
- Location: Nuremberg, Germany
- IPv4: 91.99.130.127
Houston provides three main categories of services:
view the services provided by Houston
- 📑 Authelia: Single Sign-On (SSO) authentication portal
- 📑 LLDAP: Lightweight LDAP directory service for user management
- 📑 Grafana: Visualization and analytics platform for metrics
- 📑 Reaction: Alert reaction system
- ⚙️ Telegraf: Metrics collection agent
- 📑 Vector: Observability data pipeline
- 📑 VictoriaMetrics: Time series database
- 📑 DokuWiki: Wiki software for documentation
- ⚙️ GoAccess: Real-time web log analyzer
- ⚙️ Homepage Dashboard: Application
- 📑 Linkding: Bookmark manager
- ⚙️ Miniflux: Minimalist RSS feed reader
- ⚙️ Pawtunes: Music streaming service
- ⚙️ Shaarli: Personal link sharing platform dashboard
- ⚙️ Wastebin: Minimalist pastebin
All services are protected by Authelia, which provides:
- Two-factor authentication (2FA)
- Single Sign-On across all applications
- Integration with LLDAP for centralized user management
Houston uses a hybrid deployment approach:
- NixOS Services: Most services run as native NixOS services for better integration
- Podman Containers: Some services (DokuWiki, Linkding, LLDAP, Shaarli) run
in containers because:
- NixOS packages are non-existent or partially functional
- Isolation from system updates
- Easier version management
Houston implements an automated defense system against attacks (port scans, brute force, exploits, etc.).
How it works:
-
Vector: Collects and analyzes logs from SSH, nginx, and iptables. Detects suspicious patterns (failed logins, port scans, HTTP exploits, AI bots) and classifies them by risk level.
-
Reaction: Automatically bans malicious IPs in iptables (3 attempts in 4h → 7 days ban). Supports IPv4/IPv6 with temporary bans and whitelisting.
-
VictoriaMetrics: Stores attack metrics for visualization in Grafana (attack trends, geographic distribution, ban effectiveness).
- Add new machine
just machine-add houston- Get Device ID and edit
machines/houston/configuration.nixand change host IP and installation disk destinationdisko.devices.disk.main.device(ex:/dev/disk/by-id/xxxor/dev/sda)
just machine-get-disk-id 192.168.254.137nix run .#terraformUpdate host installation
clan machines update houstonnix run .#terraform
nix run .#terraform.terraform -- apply -replace "hcloud_server.houston"nix run .#terraform
nix run .#terraform.terraform -- destroy -target "hcloud_server.houston"clan machines update houston