Infrastructure · 2025–2026
Company server
A digital agency needed one place to run its clients' sites and its own tools. I set up its server and everything that runs on it.
2 × Xeon Platinum · 48 cores · 96 threads · 256 GB
48
CPU cores, on two Xeon Platinum processors
256 GB
of memory
3
virtual machines, split by job
8
self-hosted tools for the team
The machines
The server is split into virtual machines: one for the production sites, one for the team’s tools, and one for a separate client platform.
The tools
Code, builds and tests (GitLab CI), error tracking (Sentry), analytics (Umami), mail, team chat (Matrix), design (Penpot), private search and an AI gateway, all running on the agency’s own server.
Releases
Sites go out through CI with tests, and each release can be rolled back.
A real release, replayed
One client site’s release to production on 2 September 2026, job by job as GitLab recorded it. The builds wait until every test has passed. Drag the bar to move through it.
10:41:34+0:00
shown 360 times faster
- test:identity
- test:applications
- test:backend
- build:next
- build:backend
- deploy:production
Start and end of every job from GitLab’s own records; the client is not named.
Simulation
What if a release fails?
- 01Tests
- 02Build
- 03Health check
- 04Deploy
Current version live.
Built with
VMware ESXi · Docker · GitLab CI · nginx · Sentry · Umami