← All projects
INFRASTRUCTURE / SELF-HOSTED SERVICES

Beyond
localhost.

Explicit. Repeatable.
Easy to understand.

A small Linux server running independently managed services. Docker Compose makes each service clear; Caddy gives them one dependable way in.

THE IDEA
Simple operational infrastructure
MY WORK
Setup, docs & service deployment
BUILT WITH
Arch Linux · Docker · Caddy
EXPLORE
Source on GitHub ↗
SERVER INFRASTRUCTUREONE WAY IN. INDEPENDENT SERVICES.
Browser
Local network
→
CaddyReverse proxy
→
n8nWorkflows
DTRCamAttendance
More servicesAs needed
ARCH LINUXDOCKER ENGINE · DOCKER COMPOSE · GIT
01 / THE APPROACH

No platform
to hide behind.

The point was not to add another management layer. It was to understand and operate the system underneath.

The server runs Arch Linux with Docker and Docker Compose. Each application sits in its own directory and Compose project, so it can be started, updated, backed up, or troubleshot without affecting the rest.

That tradeoff keeps the environment small enough to inspect, but structured enough to grow one service at a time.

02 / THE SETUP

A few good
boundaries.

Small conventions that make a server
less mysterious to operate.

Independent services

Each application owns its Compose file and documentation. A change to one service does not require bringing every other service down with it.

One shared entry point

Caddy routes requests to services through a shared Docker network, keeping internal service ports private where direct access is unnecessary.

Configuration worth keeping

Infrastructure configuration is version-controlled with Git, while secrets remain out of the repository and service-specific setup stays documented beside each service.

03 / OPERATING IT

Build it.
Then keep it useful.

Browse the setup

Service discovery and routing

Services that need HTTP access join an external Docker network. Caddy can reach them by Compose service name, so containers communicate directly rather than looping back through the server’s LAN address.

Practical automation

n8n handles recurring operational work such as backups. The value is not just a scheduled job—it is an executable workflow that can be inspected and improved over time.

Documented maintenance

Each service is meant to carry enough local documentation to be operated later: required environment values, volumes, networks, proxy routes, update steps, and troubleshooting notes.

This page describes the design and operating conventions behind the infrastructure. It intentionally does not expose service credentials, internal addresses, or operational secrets.

MORE FROM THE WORKBENCH

Different problems.
The same curiosity.

Back to selected work