Getting Started
Prerequisites
- Rust 1.85+ (edition 2024)
- Docker and Docker Compose
- PostgreSQL 16+
Quick Start
1. Clone and set up
git clone <repo-url> ryuki-platform
cd ryuki-platform
cp .env.example .env
Edit .env — set RYUKI_DATABASE_URL to match your local PostgreSQL.
2. Start the database
docker compose up -d
3. Build the workspace
cargo build --workspace
4. Run the API server
cargo run -p ryuki-api
The API starts at http://localhost:18080.
5. Run tests
cargo test --workspace
6. Run validators
cargo run --manifest-path scripts/validator-rs/Cargo.toml -- run-all
Authentication Modes
Default is mock-dry-run — no real Entra ID, all operations are simulated.
To enable live Entra ID authentication:
- Register an Entra ID application (see
docs/configuration.md) - Set
RYUKI_AUTH_MODE=entra-idin.env - Set
RYUKI_ENTRA_TENANT_IDandRYUKI_ENTRA_CLIENT_ID - Restart the API
Project Structure
ryuki.io/
├── sources/
│ ├── ryuki-core/ # Shared types, YAML, secret scanning
│ ├── ryuki-api/ # Axum HTTP API server
│ └── ryuki-engine/ # Business logic, auth, adapters
├── portal/
│ └── portal-ui/ # Leptos SPA frontend
├── scripts/
│ └── validator-rs/ # Rust validators
├── tests/ # Integration tests
└── docs/ # Documentation