Skip to content

HomeDock is a sleek server launcher that turns ports and subdomains into a clean, categorized dashboard.

License

Notifications You must be signed in to change notification settings

BeomSeokYu/HomeDock

Repository files navigation

HomeDock

HomeDock is a sleek server launcher that turns ports and subdomains into a clean, categorized dashboard. It is a Next.js + NestJS monorepo with a SQLite-backed configuration, designed for Linux/ARM and Docker Compose.

한국어 문서: README.ko.md

Features

  • Public dashboard with category cards, square service tiles, and a favorites dock.
  • Admin-only settings modal for brand/title/description, layout columns, and categories/services.
  • Theme presets and visibility toggles for the header, dock separators, and layout.
  • Weather via Open-Meteo (IP auto-location + manual search), with configurable metadata rows.
  • System summary card with configurable fields and order.
  • Built-in i18n: Korean, English, Japanese, Chinese.

Screenshots

Lock screen Main dashboard Settings overview Settings categories

Requirements

  • Node.js 18+
  • pnpm 9+ (via Corepack)
  • Docker (optional, for Compose deployment)

Quickstart (Docker)

  1. Clone and enter the repo:
git clone https://github.com/BeomSeokYu/HomeDock.git
cd HomeDock
  1. Copy the environment template:
cp .env.example .env
  1. Edit .env and set:

    • ADMIN_EMAIL, ADMIN_PASSWORD, JWT_SECRET
    • WEB_ORIGIN (CORS allowlist)
    • NEXT_PUBLIC_API_BASE_URL (baked into the web build)
    • NEXT_PUBLIC_SITE_URL (used for sitemap and OG metadata)
    • Optional: API_PORT, WEB_PORT if you want custom ports
  2. Build and run:

docker compose up --build -d
  1. Open http://localhost:3000.

Local Development

corepack enable
pnpm install
pnpm db:migrate
pnpm dev

Run separately if needed:

pnpm dev:web
pnpm dev:api

Default ports: web :3000, API :4000.

API Endpoints

  • POST /api/auth/login -> JWT access token
  • GET /api/auth/me -> current user
  • GET /api/dashboard -> public dashboard data
  • GET /api/dashboard/admin -> admin dashboard data (auth)
  • PUT /api/dashboard/admin -> update config + categories (auth)
  • GET /api/weather -> current weather + daily data
  • GET /api/weather/locations?query=... -> location search

Notes

  • Docker Compose stores SQLite at ./homedock-data/homedock.db on the host.
  • Admin credentials are synced from .env on API boot (email + password updates).
  • API container applies migrations on startup when prisma/migrations exist.
  • NEXT_PUBLIC_API_BASE_URL is baked into the web build; rebuild when it changes.

Assets & Previews

Brand assets (favicon, app icons, OG preview) are generated from SVG templates. Run this after you tweak the UI or update the preview design:

pnpm assets:generate

Note: the generator uses sharp. If your environment lacks a compatible binary, run it in Linux/macOS or install the proper platform build.

About

HomeDock is a sleek server launcher that turns ports and subdomains into a clean, categorized dashboard.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published