https://github.com/lklynet/dashly
Dashly is a customizable, real-time dashboard for Nginx Proxy Manager users
https://github.com/lklynet/dashly
automation backend dashboard developer-tools docker docker-compose drag-and-drop dynamic-dashboard frontend homelab network-management nginx nginx-proxy-manager open-source proxy-server sqlite themes web-app
Last synced: 18 days ago
JSON representation
Dashly is a customizable, real-time dashboard for Nginx Proxy Manager users
- Host: GitHub
- URL: https://github.com/lklynet/dashly
- Owner: lklynet
- Created: 2025-01-02T21:37:48.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-01-15T16:23:01.000Z (3 months ago)
- Last Synced: 2025-03-31T08:08:05.294Z (25 days ago)
- Topics: automation, backend, dashboard, developer-tools, docker, docker-compose, drag-and-drop, dynamic-dashboard, frontend, homelab, network-management, nginx, nginx-proxy-manager, open-source, proxy-server, sqlite, themes, web-app
- Language: JavaScript
- Homepage: http://dashly.lkly.net
- Size: 8.32 MB
- Stars: 106
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
Dashly
## What Dashly Is
**Dashly** is a lightweight, real-time dashboard for users of **Nginx Proxy Manager**. It simplifies how you monitor and organize your services by automatically syncing with your NPM database. This means you never have to manually edit dashboard configuration files like YAML—it dynamically tracks and displays all your services based on their domain configurations in NPM.

---
## Core Features
- **Dynamic Updates:**
- **Dashly** reads from the **Nginx Proxy Manager database**, automatically updating your dashboard whenever you add, remove, or modify domains.
- **Interactive UI:**
- Organize services with drag-and-drop groups.
- Toggle between grid and list views.
- Search and filter services for quick access.
- **Customizable Appearance:**
- Multiple themes, including a light and dark mode.
- Visibility toggles for inactive services.
- **Group Management:**
- Categorize services into customizable groups.
- Rename and sort groups for easier navigation.---
## Why It's Useful
If you use **Nginx Proxy Manager**, you likely already have domain names set up for your services. **Dashly** takes that data and creates a clean, automatically updating dashboard. It eliminates the repetitive task of manually maintaining dashboard YAML files for tools like **Dashy** or **Homepage**. **Dashly** is tailored for **NPM** users who value automation and simplicity.
---
## Screenshots
![]()
![]()
![]()
![]()
---
## Tech Stack
- **Backend:** Python, Flask
- **Frontend:** HTML, CSS, JavaScript
- **Web Server:** Waitress
- **Database:** SQLite (via Nginx Proxy Manager)
- **Deployment:** Docker, Docker Compose
- **Version Control:** Git, GitHub---
## Future Roadmap
- Allowing multiple nginx databases.
- Add a "Favorites" group for quick access to preferred services.
- Enable hiding groups or individual services.
- Support for custom app icons and renaming services.
- Enhance drag-and-drop functionality for smoother interaction.
- Introduce collapsible groups for better organization.
- Toggle displayed information for a cleaner look.---
## Getting Started
### Prerequisites
- [Docker](https://www.docker.com/)
- [Docker Compose](https://docs.docker.com/compose/)
- Access to your Nginx Proxy Manager database.### Deployment Steps
1. Create a new directory for Dashly and navigate into it:
```bash
mkdir dashly
cd dashly
```2. Create the `.env` file with the required variables:
```bash
echo "NGINX_DB_PATH=/path/to/your/nginx/database.sqlite" >> .env
echo "USER_SETTINGS=/data/" >> .env # OPTIONAL
echo "PORT=8080" >> .env # OPTIONAL
```3. Download the `docker-compose.yml` file:
```bash
wget https://raw.githubusercontent.com/lklynet/dashly/refs/heads/main/docker-compose.yml
```4. Start the application using Docker Compose:
```bash
docker compose up -d
```Alternatively, if you are using an older version of Docker Compose:
```bash
docker-compose up -d
```5. Access the dashboard at [http://localhost:8080](http://localhost:8080).
---
## Troubleshooting
If the app isn't running, has database errors, or doesn't show any services:
1. Double-Check:
- `.env` variables are correct and point to your Nginx Proxy Manager `database.sqlite`.
- User permissions are correct to read the database.
- The directory is bind-mounted to the Docker host.2. Install Dependencies:
```bash
apt update && apt upgrade -y
apt install python3 sqlite3
pip3 install flask waitress
```Then rebuild or update the container, and it should start right up.
---
## Contributing
Dashly is an open-source project, and contributions are welcome! If you're interested in collaborating, here are some ways you can help:
- Submit pull requests to add features or fix bugs.
- Message on X (Twitter) at [@lklynet](https://twitter.com/lklynet).
- Email at [[email protected]](mailto:[email protected]).
- Donate: [Buy me a coffee! ☕](https://buymeacoffee.com/lkly).---
## Live Demo
Try Dashly at [demo.dashly.lkly.net](demo.dashly.lkly.net)
---
## Contact
For feedback, questions, or collaboration opportunities:
- X (Twitter): [@lklynet](https://twitter.com/lklynet)
- Email: [[email protected]](mailto:[email protected])Thank you for checking out Dashly! Let's make it the best it can be together.