Skip to content

Installation & Prerequisites

This guide covers cloning, installing, and preparing the Muljax ID repository on your local workstation.

Before getting started, verify that your local environment has the required toolchains:

Bun (>= 1.1.0)

Primary TypeScript runtime, package manager, and test runner.

Terminal window
curl -fsSL https://bun.sh/install | bash

Terraform (>= 1.5.0)

Infrastructure-as-code deployment engine for Cloudflare.

Terminal window
brew install terraform # macOS

Cloudflare Account

Active account with API token permissions for Workers, D1, and Pages.

OpenSSH Client

Standard ssh and ssh-keygen tools for managing Ed25519 keys and certs.


  1. Clone the repository:

    Terminal window
    git clone https://github.com/muljax/id.git
    cd id
  2. Install monorepo dependencies: Install all dependencies across apps/api, apps/dashboard, and apps/docs:

    Terminal window
    bun install
  3. Verify type safety and linting:

    Terminal window
    bun run check
    bun run typecheck

  • Directoryapps/
    • Directoryapi/ Cloudflare Worker API (Hono, D1 SQLite, Drizzle ORM)
    • Directorydashboard/ SPA console (React 19, TanStack Router, Vite)
    • Directorydocs/ Documentation site (Astro Starlight)
  • Directoryscripts/
    • generate-tfvars.ts Generates terraform.tfvars from .env
    • oidc-key.ts Generates or rotates OIDC ES256 signing key
    • ssh-ca-key.ts Generates or rotates Ed25519 SSH CA key
    • seed-d1.ts D1 database seeder for standard permissions, roles, and clients
  • Directoryterraform/ Cloudflare infrastructure declarations
  • biome.json Monorepo linter and formatter configuration
  • package.json Workspace definitions and unified scripts