Skip to content

Develop mccs

server/ Node HTTP server, config, Apple profile, autoconfig
public/
index.html Wizard
404.html
css/ app.css
js/ app.js, guides.js, qr.js
img/ favicon.svg, guides/
support/ Internal support page
docs/ Documentation
Dockerfile
docker-compose.yml
.env.example

Node 22, built-in http module only, no npm dependency. The front end is vanilla HTML, CSS and JavaScript. The Content-Security-Policy forbids inline scripts and styles and third-party hosts, so any library must be served locally. The QR code is generated by public/js/qr.js.

Terminal window
cp .env.example .env
docker compose up -d --build

There is no automated test suite yet. Check changes by hand at 390 px wide and on a desktop, in dark and light, with the keyboard only.

  • Server settings: server/config.js (reads the variables), docker-compose.yml (passes them), .env.example (template).
  • Guide text: public/js/guides.js. Copyable values: fieldDefs() in public/js/app.js. See Customise.
  • Apple profile: server/mobileconfig.js. Thunderbird autoconfig: server/autoconfig.js.
  • Journey (hash routes, in public/js/app.js): home is step 1, #/appareil step 2, #/appareil/<device> step 3, #/guide/<device>/<guide>/<n> step 4 and .../fin the final screen.
  • The manual-settings and help panels are <dialog> elements in public/index.html, opened by [data-panel].
  • public/css/app.css is also loaded by /support: keep its classes.

At startup the server hashes CSS and JS and writes ?v=<hash> into asset URLs, so a restart is enough to bust caches.

See CONTRIBUTING.md.