Getting Started
Start Bitstride locally, sign in, and make your first inference request.
Getting started
This quickstart reflects the current monorepo setup and auth model.
Prerequisites
- Node 24+
- pnpm 10+
- Rust 1.94+
- Docker and Docker Compose
1. Install dependencies
pnpm install
2. Configure local environment
cp .env.example .env
Bitstride uses shared local domains for cookie-based auth:
sudo sh -c 'echo "127.0.0.1 bitstride.local app.bitstride.local docs.bitstride.local api.bitstride.local og.bitstride.local" >> /etc/hosts'
3. Start infrastructure and apps
# Start PostgreSQL and Redis
docker compose up -d
# Run database migrations
pnpm db:migrate
# Start all services in parallel
pnpm dev
Expected local URLs:
| Service | URL |
|---|---|
| Web | http://bitstride.local:3000 |
| Docs | http://docs.bitstride.local:3001 |
| OG | http://og.bitstride.local:3002 |
| Console | http://app.bitstride.local:3003 |
| API | http://api.bitstride.local:8080 |
You can also start services individually:
# Frontend only
pnpm --filter @bitstride/web dev
# Rust API only (with hot reload)
pnpm api:dev
# Auth service only (with hot reload)
pnpm auth:dev
4. Sign in or create an API key
For browser flows, use the web or console app and authenticate with the current auth routes.
For programmatic calls, create an API key from the console and keep the returned secret once.
5. Send an inference request
Deployment-scoped chat inference is currently exposed through the control plane and gateway surfaces:
curl -X POST http://api.bitstride.local:8080/v1/inference/<deployment-id>/chat \
-H "Authorization: Bearer $BITSTRIDE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.1-8b",
"messages": [
{
"role": "user",
"content": "Explain quantum entanglement in one sentence."
}
]
}'
If your deployment is exposed on a deployment hostname, you can also use the OpenAI-compatible chat route:
curl -X POST http://<deployment-host>/v1/chat/completions \
-H "Authorization: Bearer $BITSTRIDE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.1-8b",
"messages": [
{
"role": "user",
"content": "Explain quantum entanglement in one sentence."
}
]
}'