Panelio is a self-hosted dashboard with a built-in admin UI.
It starts from the solid base of Homepage and adds a full web configuration layer, so you can manage your dashboard from the browser instead of editing YAML files by hand.
- Website: panelio.vellis.cc
- Live demo: demo-panelio.vellis.cc (password:
demo) - Docker image:
ghcr.io/vellis59/panelio:latest
Panelio is for people who like the Homepage ecosystem, but want a smoother day-to-day experience.
With Panelio, you can:
- manage services, bookmarks, widgets, and settings from the browser
- keep using simple files in
config/ - run it with Docker or locally
- stay in control without adding a database or a heavy backend
- π₯οΈ Built-in admin panel β manage services, bookmarks, widgets, and settings visually
- π Password-protected admin β simple single-user protection for
/admin - πΎ Import / export β back up or restore your full configuration in one click
- π’ Status dots β see service health directly on cards
- β Favorites bar β pin important services to the top
- π¨ Theme controls β tweak the look without digging through files
- π± Responsive layout β usable on desktop and mobile
- π³ Docker-friendly β ready for self-hosted deployments
If you just want to try Panelio quickly, this is the fastest path.
- Clone the repository
- Install dependencies
- Copy the example config
- Set your local environment variables
- Start the app
git clone https://github.com/Vellis59/panelio.git
cd panelio
pnpm install
cp -r deploy/config ./config
HOMEPAGE_ALLOWED_HOSTS=localhost PANELIO_ADMIN_PASSWORD=changeme pnpm devThen open:
http://localhost:3000β dashboardhttp://localhost:3000/adminβ admin panel
docker pull ghcr.io/vellis59/panelio:latest
curl -O https://raw.githubusercontent.com/Vellis59/panelio/main/deploy/docker-compose.yml
docker compose up -dThen open:
http://localhost:3011β dashboardhttp://localhost:3011/adminβ admin panel
To deploy Panelio on a platform:
- Point the service to
https://github.com/Vellis59/panelio.git - Use the branch you want to deploy (
devfor testing,mainfor stable releases) - Mount a persistent volume at
/app/config - Expose port
3000 - Add the required environment variables
| Variable | Required | Description |
|---|---|---|
HOMEPAGE_ALLOWED_HOSTS |
Yes | Allowed hostnames, for example panelio.example.com or localhost |
PANELIO_ADMIN_PASSWORD |
Recommended | Password used to protect /admin |
PUID / PGID |
Optional | User and group IDs, default 1000 |
Once logged in to /admin, you can:
- add, edit, reorder, and delete services and groups
- manage bookmarks
- configure widgets
- change settings such as theme, greeting, card style, and display options
- import and export the full configuration bundle
All runtime configuration lives in config/.
config/
βββ services.yaml # Services and groups
βββ bookmarks.yaml # Quick links
βββ widgets.yaml # Integrations
βββ settings.yaml # Theme and display preferences
A small example:
- Media:
- Jellyfin:
href: http://localhost:8096
description: Movies and showsYou can still edit files manually if you want, but Panelio is designed to reduce how often you need to.
Useful local commands:
pnpm install
pnpm dev
pnpm build
pnpm test
pnpm test:coverageIf you want to contribute, please read CONTRIBUTING.md.
Panelio is built on top of Homepage by benphelps.
This project keeps the file-based spirit of Homepage while pushing further toward a smoother admin experience for self-hosters.
This repository is currently distributed under the GPL-3.0 license.





