https://github.com/anthonygress/lab-dash
An open-source user interface designed to manage your server/homelab applications and services.
https://github.com/anthonygress/lab-dash
dashboard docker docker-compose homelab metrics nodejs react server typescript
Last synced: 5 months ago
JSON representation
An open-source user interface designed to manage your server/homelab applications and services.
- Host: GitHub
- URL: https://github.com/anthonygress/lab-dash
- Owner: AnthonyGress
- License: mit
- Created: 2025-02-14T20:59:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-17T04:13:34.000Z (over 1 year ago)
- Last Synced: 2025-02-17T04:28:29.762Z (over 1 year ago)
- Topics: dashboard, docker, docker-compose, homelab, metrics, nodejs, react, server, typescript
- Language: TypeScript
- Homepage:
- Size: 1.31 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Lab Dash
This is an open-source user interface designed to be your internally hosted homepage for your homelab/server.

# 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](https://www.kiteworks.com/risk-compliance-glossary/aes-256-encryption/)
- Only administrator accounts can make changes
- Configurations can be easily backed up and restored
# Installation
This only requires docker to be installed. [Install Docker](https://docs.docker.com/engine/install/). Run using `docker compose`
```yaml
---
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
> [!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](docker-compose.yml) or add it to an existing docker-compose file.
## Running Docker compose file
```bash
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.