A lightweight self-hosted dashboard for accessing your personal services, homelab applications and external tools.
Built with SvelteKit, TailwindCSS and Docker.
- Responsive dashboard UI
- Minimalist dark theme
- Categorized and uncategorized services
- JSON-based configuration
- Optional icons and descriptions
- Optional same-tab navigation
- Docker-ready
- Persistent configuration
- Runtime-served custom icons
- No database required
- No authentication
- Simple and fast setup
EntryPoint is designed to work as a personal launcher for:
- Self-hosted applications
- Docker services
- NAS tools
- Monitoring stacks
- External developer tools
- Local network resources
Examples:
- Grafana
- Portainer
- Home Assistant
- phpMyAdmin
- MinIO
- Redis Insight
- Gitea
- Jellyfin
- Nextcloud
- IT Tools
- SvelteKit
- TailwindCSS
- TypeScript
- Docker
- Docker Compose
git clone https://github.com/Markkano/EntryPoint.git
cd EntryPointdocker compose up --build -dThe dashboard will be available at:
http://localhost
Services are configured using:
config/services.json
On first startup, EntryPoint automatically creates the file from:
config/services.example.json
{
"services": [
{
"name": "Grafana",
"url": "http://grafana.local",
"icon": "grafana.png",
"status": {
"enabled": true
}
}
],
"categories": [
{
"name": "Databases",
"services": [
{
"name": "phpMyAdmin",
"url": "http://phpmyadmin.local",
"status": {
"enabled": true
}
}
]
}
]
}{
"name": "Grafana",
"url": "http://grafana.local"
}{
"name": "Grafana",
"url": "http://grafana.local",
"description": "Monitoring dashboard",
"icon": "grafana.png",
"same_tab": true,
"status": {
"enabled": true
}
}Icons can be:
- Local runtime icons
- Static bundled icons
- External URLs
Place uploaded/custom icons in:
data/icons
And reference them as:
{
"icon": "/icons/grafana.png"
}The following folders are persisted:
volumes:
- ./data:/app/dataThis allows:
- Persistent configuration
- Persistent uploaded icons
- Easy backups
- Easy migration between servers
Run locally:
npm install
npm run dev -- --hostDefault development URL:
http://localhost:5173
- Online status checks
- Config hot reload
- Drag & drop reordering
- Add/Edit services from UI
- Categories management
- Upload icons from UI
- TCP ping
- Import / Export configuration
EntryPoint is intentionally simple.
The goal is to provide:
- A clean self-hosted dashboard
- Minimal setup
- Human-readable configuration
- Easy portability
- No unnecessary complexity
EntryPoint is primarily a personal learning project.
I'm building it to:
- Learn and improve with SvelteKit
- Experiment with frontend architecture and UI design
- Practice Docker-based deployments
- Build tools that are actually useful in my homelab
The project intentionally keeps things simple and lightweight while evolving incrementally over time.