Build from source
Use this guide for local development or to run Windrunner from a checkout.
Requirements
- Git
- Java 25
- Maven 3.9+
- Node.js 25+ and npm
- PostgreSQL with
pg_trgm
Prepare PostgreSQL
Create a database and enable the extension:
createdb -h 127.0.0.1 -U postgres windrunner
psql -h 127.0.0.1 -U postgres -d windrunner \
-c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;'
Use your own PostgreSQL credentials if they differ from these examples.
Build and start
From the repository root:
./server/build.sh
./server/start-local.sh
The build creates the frontend, packages it with the server, and produces the JAR used by the startup script. Flyway applies the schema when the server starts.
The startup defaults are:
URL: http://localhost:8066
Database: jdbc:postgresql://127.0.0.1:5432/windrunner
Username: your operating-system username
Password: test
Login: admin / changeme
Change the password after signing in. Override database settings with
SPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME, and
SPRING_DATASOURCE_PASSWORD.
AI provider
The local script uses OpenAI unless configured otherwise:
export WINDRUNNER_LLM_PROVIDER=openai
export OPENAI_API_KEY=your-api-key
Gemini and Claude are also supported. Use none to run without AI:
export WINDRUNNER_LLM_PROVIDER=none
See Configuration for supported variables.
Common fixes
- JAR not found: run
./server/build.shfirst. - Database connection failed: check PostgreSQL and the
SPRING_DATASOURCE_*values. - Missing AI key: set the key for the selected provider or use
none. - Port in use: stop the process using port
8066.