Skip to main content

Installation

Clone the Repository​

git clone https://github.com/destacey/Wayd.git
cd Wayd

Enable the Git Hooks​

Once per clone:

git config core.hooksPath .githooks
  • pre-commit warns when a change to an AGENTS.md leaves the guidance an agent loads for a directory larger than Codex reads (32 KiB).
  • commit-msg warns about a commit message that breaks the convention, without blocking it.
  • pre-push refuses a branch whose name breaks that convention, and a push that changes the @wayd/mcp package without a changeset, the same check CI runs on the pull request. See MCP Server.

Build the Backend​

dotnet build Wayd.slnx

Install Frontend Dependencies​

cd Wayd.Web/src/wayd.web.reactclient
npm install

Set Up the Database​

Wayd uses SQL Server. The default configuration points at the mssql service in docker-compose.yml, which works on Windows, Linux and macOS. A full SQL Server instance also works, as does LocalDB on Windows - see Prerequisites.

Apply Migrations​

The API applies pending migrations on startup, so this step is optional. To apply them without starting the API, run from the repository root (after dotnet tool restore):

dotnet ef database update \
--project "Wayd.Infrastructure/src/Wayd.Infrastructure.Migrators.MSSQL" \
--startup-project "Wayd.Web/src/Wayd.Web.Api"

Run the Application​

cd Wayd.AppHost
dotnet run

The Aspire dashboard opens at https://localhost:17153 (http://localhost:15206 with the http launch profile) for telemetry, logs, and service URLs. The client is at http://localhost:3000. See Local Development.

Option 2: Run Services Individually​

# Terminal 1 - API
cd Wayd.Web/src/Wayd.Web.Api
dotnet run

# Terminal 2 - Frontend
cd Wayd.Web/src/wayd.web.reactclient
npm run dev

Option 3: Docker Compose​

docker compose up

Access points:

  • API: https://localhost:5001 (http://localhost:5000)
  • Client: http://localhost:5002
  • Seq (logs): http://localhost:8081
  • SQL Server: localhost:1433 (MSSQL_PORT in .env)

The API container mounts your user secrets and HTTPS development certificate from the host; their paths differ per OS, so copy .env.example to .env and set USER_SECRETS_DIR and HTTPS_CERT_DIR as it describes. Changing an environment variable needs docker compose down and up, not a restart.

First-Run Setup​

On first boot with an empty database, Wayd prints a one-time bootstrap token to the log. Navigate to /setup in your browser and use the token to create the first administrator account.

See First-Run Setup for the full walkthrough.