Server Foundations
Hands-on server bring-up: networking, services, hardening, and operations across a practical stack.
What it covers
A set of foundational setups that make software systems real: serving traffic, resolving names, receiving email, persisting data, brokering messages, and routing egress safely.
Setup projects
- Setup / Running VM
- Setup / Running HTTP Server
- Setup / Running Mail Server
- Setup / Running MySQL Server
- Setup / Running DNS Server
- Setup / Running MQTT Server
- Setup / Running Broker Server
How I approach it
- Start with clarity: ports, trust boundaries, and least-privilege access
- Make it observable: logs, health checks, and basic dashboards
- Automate the boring parts: repeatable config, upgrades, backups
- Operate it like production: failure modes, maintenance windows, rollbacks
Adjacent servers (often part of the same work)
In similar environments, this work typically extends into a few supporting building blocks — kept intentionally lightweight and practical:
- Reverse proxy / load-balancer entrypoints (TLS termination, routing)
- Caching and queues (e.g., Redis) to reduce latency and decouple services
- Monitoring and alerting (node/system exporters, dashboards)
- Centralized logging and RCA tooling
- Backups, restore drills, and upgrade playbooks