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