feat: initial Speedboard implementation

sitespeed.io web UI with Express/Pug/SQLite — port 3132.
Includes job queue, SSE live log, full metrics dashboard,
site history, CO2/axe/CWV sections, and Docker support.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-06 19:36:13 +02:00
commit 280e5f133f
28 changed files with 1222 additions and 0 deletions

28
docker-compose.yml Normal file
View File

@@ -0,0 +1,28 @@
version: '3.9'
services:
speedboard:
build: .
image: speedboard:latest
container_name: speedboard
restart: unless-stopped
ports:
- "3132:3132"
volumes:
# Persist reports and SQLite database outside the container
- speedboard-reports:/data/reports
- speedboard-db:/data/db
environment:
PORT: "3132"
IN_DOCKER: "1"
# Store SQLite DB on the persistent volume
DB_PATH: /data/db/speedboard.db
# sitespeed.io needs /dev/shm for Chrome
shm_size: '2gb'
# Allow Chrome --no-sandbox
security_opt:
- seccomp:unconfined
volumes:
speedboard-reports:
speedboard-db: