Christian Lehnert · Infra · Automation · DevOps · Self-hosting since 2012 · 🇨🇭
Ops side of things. For backend, security and the rest, see my main account → @chfle
$ cat /etc/motd
role : infra / automation / devops
os : Debian, everywhere
rule #1 : if you do it twice, script it
rule #2 : if it's not in git, it doesn't exist
rule #3 : own the hardware, own the keysEverything under c0xl.ch runs on my own metal: racked, networked, provisioned
and monitored by me. This account is where the plumbing lives — configs,
playbooks, pipelines, scripts.
internet
│
┌────────┴────────┐
│ edge / ZBFW │ Cisco Catalyst · MikroTik RouterOS
└────────┬────────┘
│ VLAN-segmented
┌───────────┼─────────────┐
│ │ │
WireGuard Caddy wstunnel
(sync.) (reverse proxy, TLS)
│
┌───────────┴───────────────────┐
│ Proxmox cluster — Dell VRTX │
│ 3× M630 blades │
│ VMs + LXC + Docker │
└───────────────────────────────┘
| Domain | Tools |
|---|---|
| Virtualization | Proxmox VE · KVM · LXC |
| Containers | Docker · Docker Compose |
| Automation | Bash · Python · Ansible · cron / systemd timers |
| CI/CD | GitHub Actions · Git-driven deploys |
| Networking | Cisco Catalyst · MikroTik RouterOS · VLAN / ZBFW design · WireGuard · wstunnel |
| Edge | Caddy · automatic TLS · reverse proxy |
| Data | PostgreSQL · MariaDB · Redis — backed up, tested restores |
| Observability | Uptime Kuma · logs · alerting |
| OS | Debian · i3 · tmux · Vim |
- Infrastructure as code — no snowflake servers, rebuild from repo
- Least privilege — segmented networks, minimal exposed surface, keys not passwords
- Boring is good — Debian stable, well-understood tools, fewer moving parts
- Backups don't exist until restored — so restores get tested
- christian.lehnert@tutanota.com
- PGP fingerprint:
3618 EC2F 46B6 513F 8FC6 0444 7954 E03B 2988 C19B - Main account: @chfle