Hardware
CodeFloe runs on Hetzner1, both directly and through a self-managed Proxmox VE cluster that is itself built from rented Hetzner bare metal. Hetzner brings many essential points to the table:
- great value/cost ratio
- GDPR compliance
- Terraform/OpenTofu provider
- VMs and bare-metal servers
- S3
These are effectively all the parts which are needed to run any service. Yes, a managed database is missing in that list. However, we are brave (enough) to roll our own database 🤓️, both to save costs and “because we can” 😉️.
Server Configuration
Section titled “Server Configuration”CodeFloe uses a mix of dedicated servers, cloud instances and virtual machines on a Proxmox VE cluster. Cloud instances are great for small services and dev instances. However, they only have a small root disk which cannot be used for a Ceph cluster (as Ceph requires a dedicated storage device). Also the shared NVMEs on the cloud instances are good, but not as good as NVMEs from dedicated servers.
The three rented dedicated servers (demeter, hades, minerva) that used to carry the database and part of the CI load were returned in July 2026.
Their roles moved onto the Proxmox VE cluster, where a single large host can be carved into several right-sized VMs instead of being pinned to one role.
The database now lives on three VMs spread across three physical hosts, and CI got three dedicated VMs of its own.
Separating the two means a heavy build can no longer affect database latency.
For CI/CD, we know that speed matters.
An AX42 (artemis), three Proxmox VMs on desktop-class CPUs (ci-1, ci-2, ci-3), a CAX41 cloud instance (ci-arm1) and a Mac Mini M4 (gaia) process the builds.
See the CI/CD hardware page for the per-runner job capacity.
Server Specifications
Section titled “Server Specifications”Hetzner
Section titled “Hetzner”| Name | Env | CPU | Mem | Disk | OS | GB 6 SC | GB 6 MC | Used for | Costs/m (€) |
|---|---|---|---|---|---|---|---|---|---|
| artemis | prod | AMD Ryzen 7 PRO 8700GE | 64 GB DDR5 ECC | 2x 500 GB SAMSUNG MZVL2512HCJQ-00B0 NVME | Alma10 | 2676 | 11864 | CI/CD | 57.30 |
| git | prod | Ampere Neoverse-N1 (CAX31) | 16 GB | 160 GB NVME SSD | Alma9 | - | - | Git, HAProxy | - |
| ci-arm1 | prod | Ampere Neoverse-N1 (CAX41) | 32 GB | 160 GB NVME SSD | Alma10 | - | - | CI/CD | - |
| misc | prod | Ampere Neoverse-N1 (CAX21) | 8 GB | 80 GB NVME SSD | Alma10 | 1079 | 3490 | CI/CD, status, Forum | 6.49 |
| git-dev | dev | Ampere Neoverse-N1 (CAX11) | 4 GB | 40 GB NVME SSD | Alma9 | 1035 | 1869 | Git | 3.79 |
| misc-dev | dev | Ampere Neoverse-N1 (CAX11) | 4 GB | 40 GB NVME SSD | Alma9 | 1035 | 1869 | CI/CD, status, Forum | 3.79 |
| pgnode1-dev | dev | Ampere Neoverse-N1 (CAX11) | 4 GB | 40 GB NVME SSD | Alma9 | 1035 | 1869 | DB | 3.79 |
| pgnode2-dev | dev | Ampere Neoverse-N1 (CAX11) | 4 GB | 40 GB NVME SSD | Alma9 | 1035 | 1869 | DB | 3.79 |
| pgnode3-dev | dev | Ampere Neoverse-N1 (CAX11) | 4 GB | 40 GB NVME SSD | Alma9 | 1035 | 1869 | DB | 3.79 |
Proxmox VE cluster
Section titled “Proxmox VE cluster”The cluster nodes are rented Hetzner bare-metal servers (one AX102 and three EX101), shared with other projects. Each VM name carries the physical host it runs on, because the cluster has mixed CPUs.
| Host | Model | CPU | Threads | Mem | Rental/m (€) |
|---|---|---|---|---|---|
| zeus | AX102 | AMD Ryzen 9 7950X3D | 32 | 128 GB | 112.00 |
| hera | EX101 | Intel Core i9-13900 | 32 | 128 GB | ~200.00 |
| apollo | EX101 | Intel Core i9-13900 | 32 | 64 GB | 81.00 |
| poseidon | EX101 | Intel Core i9-13900 | 32 | 64 GB | 78.00 |
CodeFloe only occupies part of each host, so every VM is charged the share of its host’s rental that it actually reserves.
That share is the VM’s largest claim on any single host resource, max(vCPU / host threads, RAM / host RAM), which is whichever resource would run out first if the host were filled with identical VMs.
| Name | Env | Host | vCPU | Mem | Disk | OS | Used for | Host share | Costs/m (€) |
|---|---|---|---|---|---|---|---|---|---|
| local-zeus-codefloe-ci-1 | prod | zeus | 8 | 22 GB | 40 GB + 500 GB | Alma10 | CI/CD | 25.0 % | 28.00 |
| local-hera-codefloe-ci-2 | prod | hera | 8 | 16 GB | 40 GB + 800 GB | Alma10 | CI/CD | 25.0 % | ~50.00 |
| local-poseidon-codefloe-ci-3 | prod | poseidon | 16 | 32 GB | 15 GB + 500 GB | Alma10 | CI/CD | 50.0 % | 39.00 |
| local-hera-codefloe-db-1 | prod | hera | 4 | 16 GB | 40 GB + 800 GB | Alma10 | DB | 12.5 % | ~25.00 |
| local-apollo-codefloe-db-2 | prod | apollo | 4 | 16 GB | 40 GB + 800 GB | Alma10 | DB | 25.0 % | 20.25 |
| local-poseidon-codefloe-db-3 | prod | poseidon | 4 | 16 GB | 40 GB + 800 GB | Alma10 | DB | 25.0 % | 19.50 |
That puts the cluster’s share of the bill at roughly €181.75/month, of which €117.00 is CI/CD.
| Name | Env | CPU | Mem | Disk | OS | GB 6 SC | GB 6 MC | Used for | Costs/m (€) |
|---|---|---|---|---|---|---|---|---|---|
| gaia | prod | Apple M4 | 32 GB DDR5 | 1x 500 GB APPLE SSD AP0512Z | macOS 26 | 3781 | 14858 | CI/CD | - |
Recurring costs total roughly €264.49/month across the hosts with a price listed above.
Footnotes
Section titled “Footnotes”-
There is no relationship/affiliation between CodeFloe and Hetzner. ↩