EDUNEXXUSS SERVER · DEPLOY FILES
install-ubuntu.sh      one-time preparation of a new Ubuntu server (Node.js 22, Caddy HTTPS, firewall, auto updates)
edunexxuss@.service    keeps each school's server running (systemctl status edunexxuss@<code>)
Caddyfile              web addresses and HTTPS for each school
new-school.sh          adds a school: config, service, HTTPS address

USEFUL COMMANDS (run inside /opt/edunexxuss/<code>/server)
  node edx-server.js test-mail you@example.com      check that email works
  node edx-server.js reset-2fa owner@example.com    the owner lost the authenticator phone (goes back to emailed codes)
  Two-factor: "twoFactor": "email" (default, code emailed at each sign-in) or "authenticator" (staff must use an app) in config.json
  node edx-server.js reset-password user@example.com  prints a one-hour reset link
  journalctl -u edunexxuss@<code> -f                live server log

NIGHTLY OFF-SITE BACKUP (example with rclone to Google Drive; set up "rclone config" once)
  crontab -e   and add:
  30 1 * * * rclone copy /opt/edunexxuss/<code>/server/data/backups gdrive:edunexxuss-backups/<code>
The data folder (server/data) holds everything: database, uploaded files, backups. Never delete it when updating.
