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
- 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.
- Node.js 18+
- pnpm 9+ (via Corepack)
- Docker (optional, for Compose deployment)
- Clone and enter the repo:
git clone https://github.com/BeomSeokYu/HomeDock.git
cd HomeDock- Copy the environment template:
cp .env.example .env-
Edit
.envand set:ADMIN_EMAIL,ADMIN_PASSWORD,JWT_SECRETWEB_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_PORTif you want custom ports
-
Build and run:
docker compose up --build -d- Open
http://localhost:3000.
corepack enable
pnpm install
pnpm db:migrate
pnpm devRun separately if needed:
pnpm dev:web
pnpm dev:apiDefault ports: web :3000, API :4000.
POST /api/auth/login-> JWT access tokenGET /api/auth/me-> current userGET /api/dashboard-> public dashboard dataGET /api/dashboard/admin-> admin dashboard data (auth)PUT /api/dashboard/admin-> update config + categories (auth)GET /api/weather-> current weather + daily dataGET /api/weather/locations?query=...-> location search
- Docker Compose stores SQLite at
./homedock-data/homedock.dbon the host. - Admin credentials are synced from
.envon API boot (email + password updates). - API container applies migrations on startup when
prisma/migrationsexist. NEXT_PUBLIC_API_BASE_URLis baked into the web build; rebuild when it changes.
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:generateNote: the generator uses sharp. If your environment lacks a compatible binary,
run it in Linux/macOS or install the proper platform build.



