Quick install
One command on Ubuntu or Debian: Docker, clone, secrets, TLS, database migrations.
Jigsaw is a self-hosted control panel built with React Router 7. Create isolated Docker networks per site, optional one-click WordPress with MariaDB, automatic TLS via Traefik and Let's Encrypt, and Keycloak-backed login (including self-service registration) — no proprietary panel licence required.
One command on Ubuntu or Debian: Docker, clone, secrets, TLS, database migrations.
Traefik, Keycloak, PostgreSQL, per-site Nginx + PHP-FPM + MariaDB.
Production .env variables and local development settings.
Common SSL, Keycloak, and OIDC issues with fixes.
| Layer | Technology |
|---|---|
| App | React Router 7 (SSR), Node.js 22, Vite 7, Tailwind CSS 4 |
| Panel database | PostgreSQL 17, Drizzle ORM |
| Site databases | MariaDB LTS (one container per site when enabled) |
| Identity | Keycloak 26, openid-client v6 |
| Edge | Traefik v3, OAuth2 Proxy (Traefik dashboard) |
| Orchestration | dockerode (Docker API via host socket) |
The canonical long-form documentation lives in the repository README. This site highlights install, architecture, and operations for reading in the browser.