Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Proposal: use Node.js sponsorship funds for additional CI/build capacity on Hetzner

Abierto
#1,903 4 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
5/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
ansible, docker

Línea de trabajo

This is a governance proposal for the TSC and Build WG, with no code change to make. Read nodejs/build#4499 for the DigitalOcean context, then the Build WG's answers to the five operational questions. A newcomer can't finish this issue; it is done when the TSC decides on the spending and the Build WG confirms the setup works.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

build-agenda tsc-agenda

Context

We propose renting 5 Hetzner dedicated servers (~$600/month) to add Linux CI capacity we control, and we want the Build WG to say whether this setup works for them.

  • DigitalOcean is sunsetting its Open Source Credits Program (nodejs/build#4499). DO has also said it will help us work through this, so we don't know yet whether we'll lose part, all, or none of our current allocation there. This proposal does not assume we lose those credits.
  • In the last TSC meeting, @richardlau noted that more CI resources would improve build times, but our sponsorship agreements with providers are limited and growing them is expensive. We agreed to bring a concrete proposal to the TSC on using project funds.

So this is first about adding capacity we control. It would also give us a fallback if the DO situation ends badly.

Current DigitalOcean footprint

The DO API export lists 15 droplets with 82 vCPU and 172 GB RAM plus 8.6 TB of block storage, about $2,600/month at DO list price: $1,624 for droplets, ~$115 for backups and ~$860 for volumes.

Role Count Size each DO list price/month
ci.nodejs.org (Jenkins) 1 12 vCPU / 32 GB $384
www 1 8 vCPU / 16 GB $112
unofficial-builds 1 8 vCPU / 16 GB (CPU-optimized) $168
gzemnid 1 4 vCPU / 8 GB $48
metrics 1 2 vCPU / 4 GB $24
Docker test hosts 2 16 vCPU / 32 GB (CPU-optimized) $672
Distro test VMs (RHEL 8/9, Debian 13, Fedora 42/43, Ubuntu 24.04) 6 2 vCPU / 4 GB $160
Release VMs (RHEL 8/9) 2 2 vCPU / 4 GB $52

Volumes are billed at $0.10/GiB per month (DO volume pricing):

Volume Attached to Size DO list price/month
nodejs-org-home-4t www 4,000 GB $400
nodejs-org-home www 2,000 GB $200
unofficial-builds unofficial-builds 1,000 GB $100
unofficial-builds-logs unofficial-builds 4 GB $0.40
volume-fra1-01 gzemnid 1,000 GB $100
volume-nyc3-02 metrics 500 GB $50
volume-sfo2-01 nothing (unattached) 100 GB $10
Total 8,604 GB ~$860

nodejs/build#4499 mentions 21 droplets, so a few may be missing from this export.

Proposal

Rent 5 Hetzner AX42 dedicated servers in Falkenstein/Helsinki for about $600/month (about $7,200/year) at list price, plus about $300 one-time setup.

Each AX42 has an AMD Ryzen 7 PRO 8700GE (8 cores / 16 threads), 64 GB ECC DDR5 and 2×512 GB NVMe. Current prices (Hetzner price adjustment, 15 June 2026; IPv4 pricing):

Option Monthly per server (incl. IPv4) Setup per server 5 servers/month
AX42-1 (list) $119.00 $59 ~$595
AX42-1-LTD (limited stock) $79.20 $39 ~$396

If DO capacity stays, these servers are additional Linux CI capacity: more Docker test hosts and faster builds. If DO capacity goes away, they are sized to absorb everything except ci.nodejs.org and www:

Server Purpose
1–2 Docker test hosts
3 KVM host for distro test VMs
4 KVM host for release VMs only (kept isolated from test workloads)
5 KVM host for unofficial-builds, gzemnid, metrics

Storage is the gap: each AX42 has only 2×512 GB NVMe, while unofficial-builds, gzemnid and metrics use about 2.5 TB of volumes on DO today. Server 5 would need extra drives (a Hetzner add-on) or a storage-line server instead, such as the SX65-2 at $92.10/month; the exact disk setup is an open question for the Build WG.

In the worst case, two more AX42s would cover ci and www, bringing a full exit to about $830/month in compute. www also needs about 6 TB of storage on top of that (see the volumes table), so the real figure depends on how much of it is still needed. Even with a storage server added, a full exit stays well under DO's ~$2,600/month list price.

Alternatively, if we lose the credits but keep ci.nodejs.org and www on DigitalOcean at our own expense, that part costs about $1,173/month at DO list price, mostly because of www's 6 TB of volumes:

Droplet Size Droplet/month Backups/month Volumes/month Total/month
ci.nodejs.org Legacy "32gb", 12 vCPU / 32 GB $384 ~$76.80 none ~$460.80
www 8 vCPU / 16 GB Intel $112 none $600 (6 TB) $712
Total $496 ~$77 $600 ~$1,173

Together with the 5 Hetzner servers, this hybrid comes to about $1,770/month. That is more than a full move, but it leaves the Jenkins controller and www where they are, which is the riskiest part of any migration. It's worth checking whether www still needs all 6 TB: trimming those volumes is the biggest lever on this scenario. ci.nodejs.org is on a legacy plan and may be cheaper on a current plan of the same size.

Why dedicated servers and not Hetzner Cloud: after the 2026 price changes, Hetzner Cloud with dedicated vCPUs costs ~$1,300/month for the same footprint, and the cheap cloud plans (CX/CAX) are currently not orderable.

Budget fit

Every scenario fits within 2026 sponsor income of $42,508 net to date. The Hetzner plan alone uses about 20% of it; adding ci.nodejs.org and www on DigitalOcean at list price takes it to about half.

Sponsor income (net) has grown each year: $3,347 in 2024, $30,470 in 2025 and $42,508 so far in 2026.

First-year cost of each scenario against 2026 income to date:

Scenario First-year cost (incl. setup) Share of 2026 income
5 AX42, list price, plus a storage server for server 5 ~$8,600 20%
5 AX42-LTD, plus a storage server ~$6,100 14%
Full exit to Hetzner: 7 AX42 plus a storage server (www storage still to size) ~$11,600+ 27%+
ci.nodejs.org + www on DO at list price, alone ~$14,100 33%
5 AX42 list + ci/www on DO ~$22,700 53%
5 AX42-LTD + ci/www on DO ~$20,200 48%
5 AX42 list + ci/www on DO, www trimmed from 6 TB to 2 TB ~$17,900 42%

The expensive case is the hybrid, and $7,200/year of it is www's 6 TB of DO volumes. If DO stops covering ci and www, moving them to Hetzner as well is the cheaper option and leaves most of the income for other project needs.

Questions for @nodejs/build

The key question is whether this works operationally for the Build WG.

  1. Is this setup good for you? Is bare-metal plus self-managed VMs/containers something the Build WG is comfortable running, compared with cloud droplets?
  2. Is it easy to set up? How much of this do the existing Ansible playbooks already cover, for Docker hosts and Jenkins agents in particular? What's missing for KVM/libvirt hosts and RHEL images?
  3. What would you prioritise if capacity stays on DO: more Docker hosts, faster test machines, or something else?
  4. Location: are EU-only machines fine for Jenkins agents? They connect outbound and can run behind NAT, so no extra public IPs are needed.
  5. Maintenance: we would own RAID, backups and hypervisor upgrades. Hetzner support handles hardware failures, and there is no live migration. Is that an acceptable load?

Ask to the TSC

  1. In principle, approve spending up to $750/month (including about 20% headroom, since Hetzner changed prices several times in 2026) plus setup fees from the project's sponsorship budget, reviewed every 6 months, conditional on the Build WG agreeing the setup works for them. We can tune this down if we need fewer servers (e.g. only for Docker).
  2. In principle, approve spending the sponsorship money needed to keep ci.nodejs.org and www running if DigitalOcean credits no longer cover them: up to about $1,200/month at current DO list prices, less if www's 6 TB of volumes can be trimmed or the droplets move elsewhere.
  3. The OpenJS Foundation will hold the Hetzner account and handle billing; the Build WG gets admin access to the servers.
  4. Keep this coordinated with the outcome of the DigitalOcean discussion in nodejs/build#4499.

/cc @nodejs/build @nodejs/tsc

Sources


AI crafted most of this analysis under my supervision.

Lenguaje dominante
JavaScript
Estrellas
693
Forks
143
Merge medio
8 d 7 h
PR fusionados (30 d)
3

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nodejs/TSC

Todos los issues de nodejs/TSC

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.