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

01020304050
  1. test:identity
  2. test:applications
  3. test:backend
  4. build:next
  5. build:backend
  6. deploy:production
testsbuildsdeploynew version live

Start and end of every job from GitLab’s own records; the client is not named.

Simulation

What if a release fails?

  1. 01Tests
  2. 02Build
  3. 03Health check
  4. 04Deploy

Current version live.

Built with

VMware ESXi · Docker · GitLab CI · nginx · Sentry · Umami

Want something like this?

yazdannaderi@hotmail.com