🏡 A self‑hosted, multi‑user home‑lab dashboard
  • Go 85.3%
  • templ 14.1%
  • Go Template 0.4%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Samuel Oechsler 5264a6f09c
All checks were successful
Docker / build (push) Successful in 3m23s
Docker Release / build (push) Successful in 4m4s
Merge pull request 'fix(deps): update go dependencies' (#27) from renovate/go-dependencies into main
Reviewed-on: #27
2026-10-12 18:16:54 +00:00
.forgejo/workflows ci: remove unsupported Forgejo permissions 2026-09-03 16:20:54 +02:00
.github chore(deps): update forgejo actions to v7 2026-07-27 04:08:30 +00:00
app feat(session): move id token to encrypted db storage 2026-06-28 13:30:00 +02:00
cmd chore(deps): update dependency simple-icons-font to v16.34.0 2026-10-12 04:04:15 +00:00
config Rework architecture, add settings export/import/delete, CI workflows 2026-04-06 18:52:44 +02:00
delivery/web fix(session): redirect logout callback to start page 2026-06-28 13:57:54 +02:00
docker chore(deps): update golang docker tag to v1.27 2026-08-24 04:02:57 +00:00
domain feat(session): move id token to encrypted db storage 2026-06-28 13:30:00 +02:00
helm/dash modified: helm/dash/README.md 2026-05-04 23:45:56 +02:00
infra feat(session): move id token to encrypted db storage 2026-06-28 13:30:00 +02:00
internal/mock test: add comprehensive test suite with coverage gates 2026-05-05 01:14:20 +02:00
.dockerignore Rework architecture, add settings export/import/delete, CI workflows 2026-04-06 18:52:44 +02:00
.gitignore Rework architecture, add settings export/import/delete, CI workflows 2026-04-06 18:52:44 +02:00
go.mod fix(deps): update go dependencies 2026-10-12 04:04:05 +00:00
go.sum fix(deps): update go dependencies 2026-10-12 04:04:05 +00:00
LICENSE Initial commit 2025-09-07 22:40:45 +02:00
README.md docs: add IdP recommendation and local dev compose with Dex + LDAP 2026-04-13 01:43:06 +02:00
renovate.json ci: track generated asset updates with Renovate 2026-09-03 16:36:49 +02:00

Dash

Screenshot of Dash

A self-hosted, multi-user home-lab dashboard — inspired by Flame, rebuilt for modern homelabs.

Sign in with your existing identity provider, get a personal dashboard with bookmarks and themes, and share application links with friends and family.

Warning

This project emerged from my personal homelab needs for a flexible multi-user dashboard. While the core features are production-ready and actively used in my daily workflow, the codebase is under active development as I continue to add features and refinements. Early adopters should note this experimental status and evaluate carefully before deploying in critical production environments.

Highlights

  • Multi-user with OAuth2/OIDC
  • Per-user dashboards, bookmarks, and themes
  • Shared application links with group-based visibility
  • PostgreSQL backed, Docker image for amd64 and arm64

Quick Start

cp docker/compose/dash.env.example docker/compose/dash.env
cp docker/compose/postgres.env.example docker/compose/postgres.env
# fill in both files

docker compose -f docker/compose/compose.yml up -d

Identity Provider

Dash requires an OAuth2/OIDC identity provider. Any standard-compliant IdP works — the only hard requirement is that it emits a groups claim so Dash can distinguish regular users from admins.

Recommended: Pocket ID

Pocket ID is a lightweight, self-hosted OIDC provider built for homelabs. It supports passkey login, has a clean admin UI, and is trivial to run alongside Dash. It is the IdP this project is tested against.

Once you have Pocket ID running and have created an OIDC client, set the following in dash.env:

OIDC_ISSUER=https://id.yourdomain.com
OIDC_CLIENT_ID=<client-id-from-pocket-id>
OIDC_CLIENT_SECRET=<client-secret-from-pocket-id>
OIDC_REDIRECT_URL=https://dash.yourdomain.com/session/login/callback
OIDC_ADMIN_GROUP=admin

Any other OIDC-compliant provider works equally well — self-hosted options like Authentik, Keycloak, or Authelia, as well as social platforms like GitHub or Google (via an OAuth2 proxy that adds a groups claim).

Images

Docker images are published to the registries of this repository:

  • :main — current stable development state, updated on every push to main
  • :latest — latest release
  • :vX.Y.Z — immutable tag for each release, following semantic versioning

Contributing

Contributions and pull requests are welcome!

License

MIT — see LICENSE.