Bygga
Type the product name from the box. Bygga shows every assembly step in 3D, with the parts, screws and tools for each one, and reads it out loud.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Calm, self-hosted home dashboard for a wall-mounted e-paper frame.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A calm, self-hosted home dashboard for a wall-mounted e-paper frame and any browser in the house.
Project site: hearth.lucas-vertrees.me — a tour of the frame, the dashboard and how to build one (source in site/).
/ dashboard, /calendar month grid, /ambient photo slideshow, /settings, /frame e-paper render target, and an optional /logs (Dozzle).One host runs everything behind Caddy. The Display service has the renderer screenshot /frame on a schedule, and the frame pulls the finished, dithered picture.
flowchart LR
browser["Phone / browser<br/>dashboard · settings"]
frame["E-paper frame<br/>Pi Zero 2 W + Inky 13.3″<br/>runs inkypull"]
apis["Upstream APIs<br/>Open-Meteo · Unsplash · Google Calendar<br/>Spotify · eBird · Transitland · ESPN · ZenQuotes<br/>Wikipedia · RSS"]
subgraph host["Host — Docker Compose"]
caddy["Caddy<br/>one origin"]
web["SvelteKit app<br/>dashboard + /frame page"]
services["13 .NET services<br/>Tasks · Calendar · Weather · Photos<br/>Almanac · Birds · Quote · History · RSS<br/>Trains · Sports · Spotify · Display<br/>(own SQLite each)"]
renderer["Renderer<br/>headless Chromium → 6-ink dither"]
end
browser -->|HTTPS| caddy
frame -->|"GET /display/frame (PNG)"| caddy
caddy -->|pages| web
caddy -->|"/tasks, /weather, …"| services
services -->|fetch + cache| apis
services -->|"Display, on a schedule"| renderer
renderer -->|"loads /frame"| caddy
You need Docker Engine 25+ and Compose v2.22+. Compose expects each service's .env file to exist, even if it's empty:
touch apps/services/{Almanac,Birds,Calendar,Photos,Spotify,Trains,Weather}/.env
cd infra && docker compose up --build
Open http://localhost and set the home location and time zone in Settings → Home. Tasks, quotes and news work with no keys.
Add keys only for the integrations you want. Each file is read by one service:
| Integration | File | Keys | Get a key |
|---|---|---|---|
| Unsplash photos | apps/services/Photos/.env | UNSPLASH_ACCESS_KEY | Unsplash developers |
| Spotify | apps/services/Spotify/.env | SPOTIFY_CLIENT_ID, SPOTIFY_CLIENT_SECRET, SPOTIFY_REDIRECT_URI | Spotify dashboard |
| Google Calendar | apps/services/Calendar/.env | GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REDIRECT_URI | Google Cloud console |
| eBird | apps/services/Birds/.env | EBIRD_API_KEY | eBird API key |
| Transitland | apps/services/Trains/.env | TRANSITLAND_API_KEY | Transitland |
| Frost dates (optional) | apps/services/Almanac/.env | FIRST_FROST, LAST_FROST (MM-DD) | — |
LATITUDE, LONGITUDE and TZ in these files are only fallbacks until a home location is saved in Settings → Home. Every variable, including the redirect URIs to register, is listed per service in docs/SOFTWARE-DESIGN.md: Photos, Spotify, Calendar, Birds, Trains, Almanac, Weather.
docker compose watch (from infra/) runs the stack with hot reload. To run pieces natively instead (needs the .NET 10 SDK and Node.js 20+), start any service with dotnet run --project apps/services/<Service> and the frontend with cd apps/frontend && npm run dev. The ports Vite proxies to are in apps/frontend/vite.config.ts.
Before a PR, run dotnet build Hearth.slnx && dotnet test Hearth.slnx, and npm run check && npm run test in apps/frontend/. More in Development workflow.
CI publishes amd64 and arm64 images to GHCR on every green push to main. A host pulls them with infra/deploy/update.sh, run by a systemd timer. See Deploying to a host.
To build the frame itself, see docs/HARDWARE.md and the companion client inky-pull.
docs/PRODUCT.md — what Hearth is for and what's planneddocs/SOFTWARE-DESIGN.md — architecture, services, endpoints and environment variablesdocs/HARDWARE.md — the e-paper frame buildHearth is built on these open-source projects and data providers:
@lucide/svelte (ISC), DOMPurify (MPL-2.0 or Apache-2.0), svelte-dnd-action (MIT), Vitest (MIT), Prettier (MIT)AGPL-3.0 — see LICENSE.