This project uses a mix of Rust, Python, JavaScript, and Infrastructure-as-Code tooling. The Makefile (Makefile) is the canonical build entrypoint; these docs summarize the required tools and provide cross-platform scripts to "run everything" end-to-end.
- Linux: Native Linux (Ubuntu, Debian, etc.) is the primary supported platform.
- Windows: Strongly recommended to use WSL 2 (Windows Subsystem for Linux). The project relies on Unix tooling (
make, shell scripts, etc.) and assumes a POSIX-like environment.
git(version control)make(build orchestrator)python3(3.8+ recommended)pip(Python package installer)rustup+cargo(Rust toolchain)cargo-lambda(installed viamake setup)node(Node.js, 18+ recommended)npm(Node package manager)pnpm(monorepo package manager)tofu(OpenTofu CLI; equivalent to Terraform)aws(AWS CLI v2)psql(PostgreSQL client)
openssldevelopment libraries (often required for building Rust crates that use OpenSSL)jq(JSON CLI tool, handy for debugging outputs)
Run the helper script to install system packages needed to build and run OnboardYou:
sudo ./scripts/install-deps.shRun this script in an elevated PowerShell window:
./scripts/install-deps.ps1
⚠️ The PowerShell installer useswingetand installs Git, Node.js, Python, Rust, PostgreSQL client, AWS CLI, and make.
The scripts perform the following high-level steps:
- Create a Python virtualenv and install
cargo-lambda(make setup). - Build all Rust Lambda binaries (
make build-lambdas). - Plan and apply infrastructure via OpenTofu (
make plan+make apply). - Build the frontend packages and upload them (S3/CloudFront or GitHub Pages depending on infra mode).
- Build the MCP server binary and sync environment files.
- Run smoke tests.
Use the Makefile targets directly:
make setup— create venv, install cargo-lambda, configure git hooksmake build-lambdas— build all Lambda binariesmake plan— terraform planning (OpenTofu)make apply— deploy the current planmake deploy— full end-to-end deploy (plan + apply + build-mcp + smoke-test + openapi + sync-env-mcp + upload-frontend)
- The project expects
awscredentials in the environment (e.g.,AWS_PROFILE,AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, etc.). - If you hit OpenSSL build errors while compiling Rust, set
OPENSSL_DIRandOPENSSL_LIB_DIR(seeMakefilecomments). - Running
make deploywill incur AWS resource creation; be sure you want to deploy before running it in a production account.