Installation
OrcFlows runs as three components: a Go API server, a Go Temporal worker (executes workflow steps), and a SvelteKit frontend. A handful of infrastructure services (Postgres, Redis, Temporal, etc.) run in Docker.
Prerequisites
1. Clone and configure
git clone https://github.com/goagents/platform.git
cd platform
cp .env.example .env
Review .env and fill in any provider credentials you have (LLM API keys, OAuth client IDs, etc.) — see Configuration for the full reference. Everything has sensible local defaults, so you can start with an empty .env and add credentials later from the Settings UI.
2. One-command start (recommended)
make start
# or directly:
./start.sh
start.sh will:
- Verify Docker, Go, and Node are installed and Docker is running.
- Copy
.env.example→.envif it doesn't exist yet. - Start infrastructure containers via
docker compose:postgres(port 5433) — primary databaseredis(port 6380)temporal+temporal-ui(ports 7233 / 8081) — durable execution enginesearxng(port 8888) — self-hosted search for agent web-search toolschromium(port 9222) — headless browser for the Playwright agent toolminio(ports 9000/9001) — S3-compatible storage for workspace filesweaviate(port 8082) — optional vector DB for enterprise RAG
- Wait for Postgres to become healthy and run database migrations.
- Start the API server, Temporal worker, and frontend dev server as supervised background processes (auto-restart on crash).
When it finishes, the script prints the URLs for each service. By default:
| Service | URL |
|---|---|
| Frontend (SvelteKit) | http://localhost:5173 |
| API server | http://localhost:3001 |
| Temporal Web UI | http://localhost:8081 |
| MinIO console | http://localhost:9001 |
To stop everything:
make stop
# or:
./stop.sh
3. Manual / development setup
If you'd rather run each component yourself (for example, to attach a debugger):
# 1. Start infrastructure only
docker compose up -d postgres redis temporal temporal-ui searxng chromium minio weaviate
# 2. Run database migrations
go run ./cmd/cli/... migrate up
# 3. In separate terminals:
make api # go run ./cmd/api/... — API server on :3001
make worker # go run ./cmd/worker/... — Temporal worker
make frontend # cd web && npm run dev — SvelteKit on :5173
4. Create your account
Open the frontend URL (http://localhost:5173) and register a new account. The first user to register on a fresh database becomes the owner of a new tenant (workspace) on the Free plan.
Next steps
- Configuration — environment variables for LLM providers, OAuth, billing, and more.
- Quickstart — build and run your first workflow.