WEB_FONT_BASE_URL when you want the Node.js server to fetch Computer Modern font files from a
mirror you control. You need a running Reactive Resume instance and an HTTP(S) server that can serve static files.
1. Prepare the mirror
Copy thefont/ directory from the bitmaks/cm-web-fonts source used by your release’s
packages/fonts/src/webfontlist.json to your static file server. Keep the directory names, filenames and case:
https://fonts.example.com/cm, this original URL:
font/ segment in the base URL: the resolver appends it. Use an address reachable from the app server; inside
Docker, localhost refers to the app container itself. The mirror must serve font bytes without a login page.
2. Configure the deployment
The server validates the URL at startup. An unset or empty value preserves the original URLs. Remove the variable
and restart or redeploy to return to the default CDN.
Set this value before starting the server. The server PDF entry supplies it to the font loader; the shared font
catalog does not read environment variables. This setting is not exposed to the Vite browser app; rebuilding the
web app does not enable browser mirroring.
The Cloudflare Workers deployment is not covered by this Node.js server setup.
3. Check delivery
From the app server’s network, request a mirrored file:font/Bright/. Repeat with any other Computer Modern families you use. A missing weight or italic
file can fail PDF rendering; the mirror is not retried against the original CDN.
Server-to-server font fetches do not require CORS headers. If another browser application also uses your mirror,
configure that host to allow its origin and serve the appropriate font content type. CORS headers alone do not
enable this setting in Reactive Resume’s browser app.
External Google requests can still occur for punctuation, symbols, emoji or language fallback fonts, even when
the chosen heading and body fonts are Computer Modern. Browser network requests to the original font hosts are
also expected with the current implementation.
Related pages
- Environment variables: the setting’s default and URL constraints.
- Self-hosting with Docker: configure the application container.
- Customizing typography: choose heading and body fonts.