Skip to content

An open-source user interface designed to manage your server/homelab applications and services.

License

Notifications You must be signed in to change notification settings

Inkrex-dev/lab-dash-ex

 
 

Repository files navigation

Lab Dash

This is an open-source user interface designed to be your internally hosted homepage for your homelab/server.

EX Edition:

Note: this is an experiemtnal build and will remain that way until all implementations conclude on my end. Once that's done, a release will be made here and docs will be updated accordingly. I love what the original developer is doing but there are certain things I want to change and add since I will be using it:

  • Migrate from plain json storage to SQLite (and maybe others later) with Drizzle,
  • Add more premade widgets
  • Add multi user support
  • Add custom widgets that can be created by Admins and shared with all users
  • Add multi dashboard support for shared ones
  • Enchance existing widgets
  • Possibly refactor routes
  • and more...
Screenshot 2025-05-08 at 8 58 34 PM

Features

Lab Dash features a customizable grid layout where you can add various widgets:

  • Shortcuts to your tools/services
  • System information
  • Service health checks
  • Custom widgets and more

Customization

You can easily customize your dashboard by:

  • Dragging and reordering
  • Changing the background image
  • Adding custom search providers
  • Custom title and tab name

Privacy & Data Control

You have complete control over your data and dashboard configuration.

  • All data is stored & used on your own device
  • Sensitive data is encrypted locally using AES-256-CBC
  • Only administrator accounts can make changes
  • Configurations can be easily backed up and restored

Installation

This only requires docker to be installed. Install Docker. Run using docker compose

---
services:
  lab-dash:
      container_name: lab-dash
      image: ghcr.io/anthonygress/lab-dash:latest
      privileged: true
      #network_mode: host # for monitoring network usage stats. run `sudo ufw allow 2022/tcp` on ubuntu to allow access through firewall
      ports:
        - 2022:2022
      environment:
        - SECRET=YOUR_SECRET_KEY # any random string for used for encryption.
        # You can run `openssl rand -base64 32` to generate a key
      volumes:
        - /sys:/sys:ro
        - /docker/lab-dash/config:/config
        - /docker/lab-dash/uploads:/app/public/uploads
        - /var/run/docker.sock:/var/run/docker.sock
      restart: unless-stopped

Usage

Lab Dash can aslo be accessed from any web browser via

  • http://localhost:2022 on the device running the container
  • 192.168.x.x:2022 on local network
  • www.your-homepage.com using your custom domain name

Lab Dash can also be installed as an app on your computer/phone as a PWA (Progressive Web App):

  • Using Google Chrome on Mac/Windows/Android/Linux
  • Using Safari on iOS/iPad OS via the share menu > add to homscreen
Screenshot 2025-03-24 at 12 13 07 AM

Important

You should assign a static IP address for you server so any LAN/WAN device can access the Lab Dash instance.

Simply copy/download the docker-compose.yml or add it to an existing docker-compose file.

Running Docker compose file

docker compose up -d

This docker container will restart automatically after reboots unless it was manually stopped. This is designed to be run on your hosting server.

Stopping this docker container

  1. Navigate to the directory that this docker compose file is in
  2. Run: docker compose down

Local Development

npm install
npm run dev

Updating

Portainer

  • Navigate to stacks
  • Click on the lab-dash stack
  • Click Editor tab at the top
  • Click Update the stack
  • Enable Re-pull image and redploy toggle
  • Click Update

Docker CLI:

  • cd /directory_of_compose_yaml
  • docker compose down
  • docker compose pull
  • docker compose up -d

Contributing

Contributions to Lab Dash are welcome! Please follow these guidelines:

  • One feature per PR - Keep pull requests focused on a single feature or fix
  • Review AI-generated code - If using AI tools, all code must be thoroughly reviewed and tested before submitting
  • Maintain consistency - New code must align with the app's existing style, theme, and overall user experience

Disclaimer

This code is provided for informational and educational purposes only. I am not associated with any of the services/applications mentioned in this project.

About

An open-source user interface designed to manage your server/homelab applications and services.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%