This dashboard uses email-only magic link authentication powered by the Resend API.
- Dashboard browsing remains open for guests.
- Users can request a magic link by email.
- The magic link is reusable until it expires.
- Clicking a valid link sets a signed HTTP-only session cookie.
- No password is stored in this app.
Environment variables:
RESEND_API_KEYRESEND_FROM_EMAILMAGIC_LINK_TOKEN_SECRETMAGIC_LINK_BASE_URL(for examplehttps://dash.epfl-rocket-team.ch)- Optional:
MAGIC_LINK_TOKEN_TTL_MINUTES(default20) - Optional:
MAGIC_SESSION_TTL_DAYS(default14)
Install dependencies and run locally:
npm install
npm run devType check:
npm run checkBuild and run production server:
npm run build
npm run startThis project uses Docker Compose with a single dashboard service.
Dockerfile: multi-stage Node image that runs SvelteKit server outputdocker-compose.yml: runs the dashboard service.env.example: template for required variables
- Create your env file:
cp .env.example .env- Generate and set a secure token secret in
.env:
openssl rand -hex 32- Start the service:
docker compose up -d --buildOpen http://localhost:4500.
Stop:
docker compose down- Set
MAGIC_LINK_BASE_URLto your public HTTPS dashboard URL. - Keep
MAGIC_LINK_TOKEN_SECRETstable across restarts. - Because session cookies are configured as secure, run behind HTTPS in production.