Local development workflow for OrbyNode.
Do not use Next.js or another React meta-framework.
crates/core shared config and paths
crates/daemon binary entry point
crates/api Axum routes, auth, gateway, embedded UI
crates/terminal real PTY runtime
crates/realtime event bus, replay, bounded sessions
crates/database SQLite migrations and repositories
crates/auth Argon2id, sessions, throttling, permissions
crates/agents agent detection and Attention Center
crates/files files, Git and worktrees
crates/services ports, services and process snapshots
crates/nodes remote-node identity and pairing
crates/notifications browser events and webhooks
crates/workflows configuration-driven orchestration
web Vite + React + TypeScript client
docs project documentation and ADRs
git clone https://github.com/PotenFYR-Studios/OrbyNode.git
cd OrbyNode
(cd web && bun install)
cargo build
cargo run -p orbynode-daemon
Defaults:
127.0.0.1:7676~/.orbynode(cd web && bun run build)
cargo run -p orbynode-daemon
(cd web && bun run build)
ORBYNODE_STATIC_DIR="$PWD/web/dist" cargo run -p orbynode-daemon
(cd web && bun run dev)
Use the Vite proxy for local daemon requests.
Required before every PR:
cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
(cd web && bun run check)
(cd web && bun run build)
Equivalent:
scripts/check.sh
sqlite::memory: for database tests.Migrations live in crates/database/src/lib.rs. Add a new numbered migration;
do not edit an applied migration.
Local test database:
rm -rf /tmp/orbynode-dev
ORBYNODE_DATA_DIR=/tmp/orbynode-dev cargo run -p orbynode-daemon
Use structured logs:
ORBYNODE_LOG_FORMAT=json RUST_LOG=debug cargo run -p orbynode-daemon
Inspect:
curl -fsS http://127.0.0.1:7676/health
curl -fsS http://127.0.0.1:7676/version
(cd web && bun install)
(cd web && bun run build)
cargo build --release --locked -p orbynode-daemon
Local release archive, checksum and SBOM:
scripts/release.sh <rust-target-triple>
crates/core small.prefers-reduced-motion.Fix session revocation.