Nest uses Docker for both development and production, so the setup is consistent across operating systems. Follow the steps below to get the full stack running locally.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/owasp/nest/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Install the following tools before you begin:Docker
Required to run the Nest containers. Docker Desktop is recommended on macOS and Windows.
pre-commit
Runs linters and formatters automatically before each commit.
Terraform
Required for infrastructure-as-code tasks.
tflint
Linter for Terraform files.
Windows notes
- Install WSL and enter the Linux environment with
wslbefore running any Nest commands. - Enable WSL integration in Docker Desktop under Resources → WSL integration.
- Clone the repository inside WSL, not under
/mnt/c(the Windows C: drive). Running from/mnt/ccauses significant performance degradation and Docker permission issues.
Setup
Create environment files
Copy the example environment files for both backend and frontend:Open
backend/.env and set the Django configuration to local mode:Configure Algolia
Nest uses Algolia for search. Create a free account, then add your application credentials to The write API key must have
backend/.env:addObject permission.Start the application
From the project root directory (not Leave this terminal running. The application is ready when
backend/ or frontend/), run:http://localhost:8000/api/v0 responds. Open a second terminal for subsequent commands.Environment variable overview
Full descriptions of all environment variables are in the backend and frontend READMEs:backend/README.md— Django settings, Algolia keys, Slack tokens, GitHub token, and more.frontend/README.md— Next.js settings, NextAuth config, and Algolia read key.
make run after changing any .env file.
Key Makefile commands
Runmake help to see all available commands. The most commonly used ones are:
| Command | Description |
|---|---|
make run | Start all containers |
make check | Run all linters and static analysis |
make check-test | Run checks and tests |
make test | Run all tests |
make load-data | Load database fixtures |
make index-data | Index data into Algolia |
make sync-data | Sync data from GitHub |
make create-superuser | Create a Django superuser |
make security-scan | Run Semgrep and Trivy scans |
Optional setup
GitHub OAuth
To enable the Sign in with GitHub feature locally:- Go to GitHub Developer Settings → OAuth Apps and click New OAuth App.
-
Set the callback URL to
http://localhost:3000/api/auth/callback/github. - Copy the Client ID and generate a Client Secret.
-
Generate a
NEXTAUTH_SECRET: -
Add the values to
frontend/.env:
NestBot development
To run NestBot locally you need a public HTTPS endpoint. Use ngrok with a static domain:Configure ngrok
Create a free ngrok account, get an auth token, and create a static domain at ngrok domains. Then configure ngrok:Start the tunnel:
Add Slack credentials to backend/.env
Access role-gated features
Some UI sections require specific backend roles. To grant yourself access during development:- Project Health Dashboard
- Mentorship Portal
The dashboard is visible only to users with the
is_owasp_staff flag.- Create a superuser with
make create-superuser. - Open Django Admin at
http://localhost:8000/aand log in. - Navigate to GitHub Users and open your user record.
- Tick the
is_owasp_staffcheckbox and save. - Clear your browser cookies for
localhost:3000and sign in again.
http://localhost:3000/projects/dashboard.