Prerequisites
Before you begin, make sure you have:- Docker and Docker Compose installed
- An OpenAI API key — required for embeddings (
text-embedding-3-small) - At least one LLM provider: an Anthropic API key, an OpenAI API key, or Ollama running locally
- A GitHub OAuth app for repository connection (create one at github.com/settings/developers)
- A Jira OAuth app or API token if you plan to use Jira (create one at developer.atlassian.com)
Setup
Clone the repository and run setup
Clone the Waterline repository and run
make setup to create your .env file:make setup copies .env.example to .env. Open .env in your editor before continuing.Configure your .env file
At minimum, set the following variables. The comments explain what each does.
Start the stack
Start all services with:This starts four containers:
To confirm everything started cleanly, tail the logs:Wait until all services show as healthy before proceeding.
| Service | URL |
|---|---|
| API (FastAPI) | http://localhost:8000 |
| Frontend (Next.js) | http://localhost:3001 |
| Redis | localhost:6379 |
| Postgres | localhost:5433 |
Initialize the database
When
BACKEND=postgres, the database is initialized automatically from the bundled schema on first start. You don’t need to run any SQL manually.If you’re using
BACKEND=supabase instead, open your Supabase project’s SQL Editor, paste the contents of schemas/schema.sql, and run it before proceeding.Create your account
Open http://localhost:3001 and sign up with an email and password.
Connect a GitHub repository
In the Waterline UI, go to Settings → Integrations → GitHub and click Connect GitHub. You’ll be redirected to GitHub to authorize the OAuth app you created.After authorization, select the repository you want to analyze. Waterline will register a webhook on that repo and begin indexing in the background.For a repository with around 500 files, expect indexing to take 3–10 minutes depending on your LLM provider’s throughput. You can watch progress in the UI.
Connect your issue tracker
Choose the issue tracker you use:
- Jira
- GitHub Issues
Go to Settings → Integrations → Jira and click Connect Jira. You’ll be redirected through the Atlassian OAuth flow. Waterline requests read-only access to your Jira projects — no admin permissions are needed.
Analyze your first ticket
Once indexing is complete, click Analyze in the sidebar:
- Enter a Jira ticket key (e.g.
PROJ-42) or a GitHub Issue number - Select the repository to search against
- Click Analyze