Skip to content

PD-Codes/Homy

Repository files navigation

Homy

Homy is a modular, self-hosted homepage dashboard with drag-and-drop widgets, multi-tab layouts, integrations, and a full admin area — built for homelab and daily-driver use.

Warning

This project is currently in alpha and may contain various bugs. Any help with identifying and reporting issues is greatly appreciated.

Python License

Homy separates integrations (credentials & APIs) from widgets (what you see on the grid). Configure Pi-hole, Jellyfin, Zabbix, arr, Discord, and more once, then drop widgets on any tab.

↑ Back to top

TL;DR — Quick Start

# Install (production)
pip install .

# Start dashboard (Waitress, port 8080)
homy

# Custom port
homy -p 9090
# or
homy --port 9090

# Development server (hot reload)
homy --dev

# Verbose terminal logs
homy --debug

# Reset a local user's password (CLI only, then exit)
homy -rP myuser
# or
homy --reset-password myuser

Open http://localhost:8080. On first run, create the admin account in the setup wizard. Data lives under ~/.homy/homy.db (override with DATA_DIR).

↑ Back to top

CLI

Flag Description
-p / --port Listen port (default: 8080, env PORT)
--host Listen host (default: 0.0.0.0, env HOST)
--debug Verbose logging (favicon cache, HTTP, modules)
--dev Flask dev server instead of Waitress
-rP / --reset-password Reset local user password interactively, then exit

↑ Back to top

Highlights

Feature Homy
Drag-and-drop grid (24 columns) Yes, per tab
Multi-user + roles Yes
Integration credential vault Yes
Built-in + ZIP integrations Yes
Widget builder from JSON paths Yes
Silent background refresh Yes
Themes + custom per-user colors Yes
Tab backgrounds (media library) Yes
Password reset (SMTP + 6-digit code) Yes
OIDC / SAML / LDAP / MFA Yes (admin)
Docker Yes

↑ Back to top

Widgets vs. integrations

Integrations — configure under Integrationen (URL, API keys).
Widgets — add to the dashboard; they reference integration_id or use display modules (metric_display, favorites, clock, …).

Service-specific UIs (Pi-hole, Zabbix host status, Discord, Overseerr, …) ship under homy/integrations/<id>/widgets/.

↑ Back to top

Built-in integrations (selection)

Group Examples
arr Radarr, Sonarr, Lidarr, Prowlarr, Bazarr
Download qBittorrent, SABnzbd
Media Jellyfin, Emby, Plex, Tautulli, Overseerr, Immich
Network Pi-hole, AdGuard Home
Monitoring Zabbix, Grafana, Uptime Kuma, Glances, Proxmox
Other Discord, Home Assistant, Weather, JSON API, RSS

↑ Back to top

Docker

Local build

docker compose up -d

Maps 8080:8080. Persist data with a volume on DATA_DIR (default in container: configure via env).

GitHub Container Registry (GHCR)

When you bump version in pyproject.toml and push to main/master, GitHub Actions creates a release and publishes:

ghcr.io/<owner>/homy:<version> and :latest

Example (replace owner/repo):

docker pull ghcr.io/<owner>/homy:latest
docker run -d --name homy -p 8080:8080 \
  -v homy-data:/app/data \
  -e SECRET_KEY=change_me \
  ghcr.io/<owner>/homy:latest

Manual re-run: Actions → Release & Docker → Run workflow (optional Force release).

↑ Back to top

Releases

  1. Raise version in pyproject.toml (e.g. 0.1.00.2.0).
  2. Commit and push to main or master.
  3. Workflow .github/workflows/release.yml tags v<version>, creates a GitHub Release, and pushes the Docker image to GHCR.

↑ Back to top

Environment variables

Variable Purpose
PORT HTTP port (default 8080)
HOST Bind address (default 0.0.0.0)
SECRET_KEY Flask session secret (required in production)
DATA_DIR SQLite, uploads, favicon cache (default ~/.homy)
FLASK_ENV production or development
WAITRESS_THREADS Worker threads (default 8)

↑ Back to top

Development

# Windows
.\scripts\run-dev.ps1
# Linux / macOS
./scripts/run-dev.sh

Editable install: pip install -e . then homy --dev.

↑ Back to top

Browser extension

The Homy Companion extension (Firefox, Chrome, Opera) lives in browser-extension/. It connects to your Homy server, syncs selected favorites to browser bookmarks, caches the desktop dashboard for the new-tab page, and can download layout backups locally.

cd browser-extension && npm run build

Release builds attach homy-<version>-chrome.zip, homy-<version>-firefox.zip, and homy-<version>-opera.zip to GitHub Releases. See browser-extension/README.md.

↑ Back to top

Contributing

Issues and pull requests are welcome. For larger changes, open an issue first to align scope.

↑ Back to top

License

See repository license file. Homy is provided as is

This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for details.

About

Your personal Home Screen as a Dashboard

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors