start
March 11, 2026 · View on GitHub
Brings up stopped or exited DevLake services for an existing deployment.
Usage
gh devlake start [flags]
Auto-detects deployment type from state files in the current directory.
Flags
| Flag | Default | Description |
|---|---|---|
--service <name> | (all) | Start only a specific service (e.g., config-ui) |
--no-wait | false | Skip health polling after start |
--local | false | Force local (Docker Compose) start mode |
--azure | false | Force Azure start mode |
--state-file <path> | (auto-detected) | Path to state file |
Auto-Detection
Without --local or --azure, the command checks:
--state-filepath (if provided).devlake-azure.json→ Azure mode.devlake-local.json→ Local modedocker-compose.ymlin current directory → Local mode
If no deployment is detected, an error is returned — use gh devlake deploy to create a new deployment.
Local Deployments (Docker Compose)
Runs docker compose up -d from the current directory. This is idempotent:
- Running containers are unaffected
- Stopped containers are started
- Crashed or exited containers are restarted
gh devlake start
gh devlake start --service config-ui
gh devlake start --no-wait
What it does:
- Checks Docker availability
- Runs
docker compose up -d(with optional service filter) - Polls the backend
/pingendpoint until healthy (up to 60s) - Prints service URLs
Shorter health timeout:
startuses a 60-second health timeout (vs 6 minutes fordeploy) because databases and volumes are already initialized.
Azure Deployments (Container Instances)
Reads container names and resource group from .devlake-azure.json and starts any stopped resources.
gh devlake start --azure
gh devlake start --azure --service backend
What it does:
- Reads resource group and container names from
.devlake-azure.json - Checks Azure CLI login
- Starts the MySQL flexible server (if present)
- Starts each Container Instance via
az container start - Polls the backend endpoint until healthy (up to 60s)
- Prints endpoints
JSON Output
gh devlake start --json
Returns:
{"status": "started", "mode": "local"}
Examples
# Auto-detect and start all services
gh devlake start
# Start only config-ui (local)
gh devlake start --service config-ui
# Start without waiting for health check
gh devlake start --no-wait
# Force Azure mode
gh devlake start --azure
# Use a specific state file
gh devlake start --state-file /path/to/.devlake-azure.json
Motivating Scenario
After a machine reboot, gh devlake status shows ❌ for one or more services. Instead of manually finding the docker-compose directory and running raw Docker commands, run:
gh devlake start
Related
- stop.md — pause services (non-destructive counterpart to start)
- status.md — check service health
- cleanup.md — tear down all resources
- deploy.md — initial deployment
- day-2.md — day-2 operations overview