Skip to content

Quick Start

The fastest way to get KubeOrch running is with orchcli, the official developer CLI. It handles Docker Compose orchestration, repository cloning, dependency installation, and configuration automatically.

  • Docker and Docker Compose (v2) installed and running
  • Git installed (orchcli can auto-install it on Linux/macOS)

Depending on your setup path, you may also need:

SetupAdditional Requirements
Production ModeNone — everything runs in Docker
Frontend DevelopmentNode.js 20+
Backend DevelopmentNone — Go runs inside Docker via Air
Full Stack DevelopmentNode.js 20+ and Go 1.25+
Manual SetupNode.js 20+ and Go 1.25+

macOS, Linux, WSL:

Terminal window
curl -sfL https://kubeorch.dev/install.sh | sh

Windows PowerShell:

Terminal window
irm https://kubeorch.dev/install.ps1 | iex

Windows CMD:

Terminal window
curl -fsSL https://kubeorch.dev/install.cmd -o install.cmd && install.cmd && del install.cmd

Verify installation:

Terminal window
orchcli --version

Quick Start: Try KubeOrch (Production Mode)

Section titled “Quick Start: Try KubeOrch (Production Mode)”

Run the full platform from pre-built Docker images — no source code needed.

Terminal window
# Create a project directory
mkdir kubeorch && cd kubeorch
# Initialize and start
orchcli init
orchcli start -d

That’s it. Open your browser:

ServiceURL
UIhttp://localhost:3001
APIhttp://localhost:3000
MongoDBlocalhost:27017
  1. Register — Go to http://localhost:3001/signup. The first user automatically becomes admin.
  2. Add a Cluster — Dashboard > Clusters > Add Cluster. Connect using kubeconfig, bearer token, or another supported auth method.
  3. Create a Workflow — Workflows > New Workflow. Select your cluster, then drag resources onto the canvas.
  4. Deploy — Click the Run button to deploy your workflow to Kubernetes.
Terminal window
orchcli status # Check health of all services
orchcli logs -f # Follow all logs
orchcli logs core # View only Core API logs
orchcli stop # Stop everything
orchcli stop -v # Stop and remove volumes (clean slate)

For contributing to both frontend and backend. Requires Node.js 20+ and Go 1.25+.

Terminal window
mkdir kubeorch && cd kubeorch
# Clone both repos, install deps, and generate config files
orchcli init --fork-ui --fork-core
# Start MongoDB in Docker
orchcli start -d

Then in separate terminals:

Terminal window
# Terminal 1: Start Core backend (hot reload with Air)
cd core && air
# Terminal 2: Start UI frontend (hot reload with Next.js)
cd ui && npm run dev

In this mode, orchcli start -d only runs MongoDB in Docker. Both Core and UI run on your host machine with hot reload.

orchcli init automatically generates:

  • core/config.yaml — with random JWT secret, encryption key, and MongoDB URI pointing to localhost:27017
  • ui/.env.local — with NEXT_PUBLIC_API_URL pointing to the Core API

Edit files in core/ or ui/ — changes hot-reload automatically.


For UI development without needing Go installed. Requires Node.js 20+.

Terminal window
mkdir kubeorch && cd kubeorch
# Clone UI repo, install deps, and generate .env.local
orchcli init --fork-ui
# Start MongoDB + Core API in Docker
orchcli start -d
# Start UI locally with hot reload
cd ui && npm run dev

In this mode, orchcli start -d runs MongoDB and Core API in Docker. The Core API is available at localhost:3000. You only need Node.js.

orchcli init automatically generates ui/.env.local with the API URL.


For backend development without needing Node.js installed. No Go installation required on the host either — the Core code is volume-mounted into a Docker container running Air for hot reload.

Terminal window
mkdir kubeorch && cd kubeorch
# Clone Core repo, install deps, and generate config.yaml
orchcli init --fork-core
# Start everything (Core with mounted code + hot reload via Air)
orchcli start -d

In this mode, orchcli start -d runs MongoDB, Core (via Air), and UI all in Docker. Your Core source code is volume-mounted, so edits on the host hot-reload inside the container.

orchcli init automatically generates core/config.yaml with default values.


External contributors can clone from their own forks:

Terminal window
mkdir kubeorch && cd kubeorch
# Clone from your fork (config files are auto-generated)
orchcli init --fork-ui=youruser/ui --fork-core=youruser/core
# Upstream remote is auto-configured
cd ui && git remote -v
# origin https://github.com/youruser/ui (fetch)
# upstream https://github.com/KubeOrch/ui (fetch)
orchcli start -d

If something isn’t working:

Terminal window
# Check service status and health
orchcli status
# Debug network connectivity between containers
orchcli debug
# Execute a command inside a container
orchcli exec core sh
orchcli exec ui sh
orchcli exec mongodb mongosh kubeorch
# View recent logs for a specific service
orchcli logs --tail 50 core

If you prefer manual setup without the CLI. Requires Node.js 20+ and Go 1.25+.

Terminal window
docker run -d --name kubeorch-mongo \
-p 27017:27017 \
-e MONGO_INITDB_DATABASE=kubeorch \
mongo:8.0
Terminal window
git clone https://github.com/KubeOrch/core.git && cd core
cp config.yaml.example config.yaml

Edit config.yaml with these minimal values for local development:

MONGO_URI: "mongodb://localhost:27017/kubeorch"
JWT_SECRET: "any-secret-key-for-local-dev"
ENCRYPTION_KEY: "any-encryption-key-for-local-dev"
PORT: 3000
GIN_MODE: debug

Then start the server:

Terminal window
go run main.go
Terminal window
git clone https://github.com/KubeOrch/ui.git && cd ui
npm install

Create a .env.local file:

NEXT_PUBLIC_API_URL=http://localhost:3000/v1/api

Then start the dev server:

Terminal window
npm run dev

The UI will be available at http://localhost:3001.

These are the key settings. For the full reference including authentication providers (OIDC, OAuth2), CORS, and all available options, see the Configuration Reference.

VariableRequiredDescription
MONGO_URIYesMongoDB connection string (e.g., mongodb://localhost:27017/kubeorch)
JWT_SECRETYesSecret key for signing JWT tokens
ENCRYPTION_KEYYesKey for encrypting cluster credentials at rest
PORTNoServer port (default: 3000)
GIN_MODENodebug or release (default: debug)
BASE_URLNoBackend URL for OAuth callbacks (default: http://localhost:3000)
FRONTEND_URLNoFrontend URL for OAuth redirects (default: http://localhost:3001)