This repository contains the homectl home automation platform split into two packages:
server/(Rust) – core automation engine and HTTP/WebSocket APIui/(Next.js / React) – web interface consuming the server API
See server/README.md for detailed usage, configuration, and integration docs.
Key technologies:
- Rust (edition 2021)
- warp, tokio, sqlx, mqtt, etc.
- PostgreSQL (optional) for persistence
Build & run (development):
cd server
cargo run
See ui/README.md for UI specific documentation.
Development:
cd ui
pnpm install # or npm / yarn
pnpm dev
Root GitHub Workflows:
server-ci.yml– Lints/tests/builds and publishes the server image (ghcr.io/<owner>/<repo>-server).ui-ci.yml– Builds and publishes the UI image (ghcr.io/<owner>/<repo>-ui).release-please.yml– Uses manifest mode to create independent releases forserverandui.
Legacy per-package workflows were deprecated in-place and converted to no-op callable workflows.
release-please manages versions independently using:
.release-please-manifest.json– current versionsrelease-please-config.json– package metadata
Unified formatting via root .editorconfig.
server/ Rust backend source, migrations, scripts
ui/ Next.js frontend, generated TypeScript bindings
.github/ Workflows (monorepo aware)
- Create a feature branch.
- Ensure server tests pass:
cargo test. - Ensure UI builds:
pnpm build(ornpm run build). - Commit using conventional commit messages for automated release PRs.
MIT – see LICENSE.