Skip to content

Docker quick start

The default Compose stack is the smallest recommended production-style install. It stores SQLite data in a named volume and does not mount the Docker socket.

Terminal window
git clone https://github.com/uniskela/UniHomelabDash.git
cd UniHomelabDash

Create .env in the repository root:

Terminal window
echo "SESSION_SECRET=$(openssl rand -base64 32)" >> .env

Keep this value private and stable. Changing it signs every admin session out and prevents previously encrypted provider credentials from being decrypted.

Terminal window
docker compose up --build -d

Open http://localhost:3000. The first visit redirects to /setup, where you create the single administrator account.

The Compose volume unihomelabdash-data is mounted at /app/data. Rebuilding or replacing the application container does not remove that volume.

If port 3000 is already in use:

Terminal window
HOST_PORT=3003 docker compose up --build -d

Then open http://localhost:3003.

You can replace build: . in an override file with either public image:

services:
unihomelabdash:
image: ghcr.io/uniskela/unihomelabdash:latest
# image: uniskela/unihomelabdash:latest

Pin a vX.Y.Z or X.Y.Z tag when repeatable deployments matter.

UniHomelabDash is intended for a trusted LAN or VPN. Before making it reachable beyond that boundary, use HTTPS, set COOKIE_SECURE=true, configure PUBLIC_URL, and add access control at the reverse proxy or VPN layer. Read the security guide before enabling provider actions.