2 Commits

Author SHA1 Message Date
Will Anderson 627d448f6f fix ci-base: install Node 20 via binary tarball instead of nodesource apt
nodesource setup_20.x on Ubuntu 24.04 installs Ubuntu's nodejs 18 (no npm)
instead of Node 20. Binary tarball is reliable and includes npm.
2026-05-04 15:48:12 -05:00
Will Anderson baae9b289a fix: drop bogus letsencrypt certResolver from dharma IngressRoute
Traefik has no certificate resolver named 'letsencrypt' configured (this
cluster terminates TLS at Cloudflare and uses Traefik's default cert via
the websecure entrypoint, matching every other neuron-prod IngressRoute).

The invalid certResolver caused Traefik to refuse the router with:
  ERR Router uses a nonexistent certificate resolver
    certificateResolver=letsencrypt routerName=neuron-prod-dharma-...

so requests to dharma.neurontechnologies.ai/health surfaced as 502 from
Cloudflare even though the dharma pod was healthy on :8765.
2026-05-04 14:37:32 -05:00
2 changed files with 10 additions and 7 deletions
+7 -5
View File
@@ -29,11 +29,13 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
zstd \
&& rm -rf /var/lib/apt/lists/*
# Node.js 20 LTS — required to execute Forgejo JS actions (checkout, upload-artifact, cache, etc.)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \
&& npm install -g yarn \
&& rm -rf /var/lib/apt/lists/*
# Node.js 20 LTS via binary tarball (nodesource apt repo is unreliable on Ubuntu 24.04)
RUN NODE_VERSION=20.19.1 \
&& curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
| tar -xJ -C /usr/local --strip-components=1 \
&& node --version \
&& npm --version \
&& npm install -g yarn
# Python 3 + pip + venv
RUN apt-get update && apt-get install -y --no-install-recommends \
@@ -14,5 +14,6 @@ spec:
services:
- name: dharma
port: 8765
tls:
certResolver: letsencrypt
# TLS terminates at Cloudflare; tunnel reaches Traefik with noTLSVerify.
# Traefik websecure entrypoint has its own default cert (no resolver
# configured in this cluster), matching every other neuron-prod IngressRoute.