Start with what you have
Connect a Git repository, use a container image, or start from YAML and application templates.
Bring your cloud and home servers into one workspace. Deploy applications, trace their routes, and understand how they run.
Open source · Self-hosted · Built on Nomad
Place by region. Connect by exposure.
Manage applications, service instances and releases.
| Application | Status | Access address | Region | Node | Replicas | Actions |
|---|---|---|---|---|---|---|
| website1 service | Running | www.example.com | global | global-edge | 2/2 | |
| api1 service | Running | api.example.com | global | global-edge | 2/2 | |
| worker1 service | Running | Internal | cn | cn-edge | 1/1 | |
| storage1 service | Running | Internal | home | home-worker | 1/1 | |
| No matching applications | ||||||
Follow a service from its domain to its destination.
Configuration and instance relationships. Not a live connectivity probe.
A little context for every resource trend.
Follow source, build and deployment results in one place.
8d2a4f1Locate affected services, inspect logs and track notifications.
86% · Sustained for 5 minutes · Notification sent
12:15:03 worker [info] Processing batch 128
12:15:04 worker [warn] Memory usage above thresholdA view of your cluster, applications and releases.
| Resource | Status | Details |
|---|---|---|
| Applications | 4 running | 6 ready replicas |
| Nodes | 3 ready | cn · global · home |
| Latest delivery | Completed | website · main · 1 min |
Follow active incidents, recovery and notification results.
| Object | Alert | Status |
|---|---|---|
| worker | Memory 86% · sustained for 5 min | Firing |
| api | Response latency returned to normal | Resolved |
Connect service health, latency and error rates to applications.
| Application | Latency | Error rate | Status |
|---|---|---|---|
| website | 28 ms | 0.0% | Healthy |
| api | 64 ms | 0.1% | Healthy |
| worker | — | 0.0% | Memory alert |
Inspect service output with instance and timestamp context.
12:15:01 [info] Worker ready 12:15:02 [info] Connected to queue 12:15:03 [info] Processing batch 128 12:15:04 [warn] Memory usage above threshold 12:15:05 [info] Batch completed in 1.2s 12:15:06 [info] Waiting for next batch
Define sustained conditions for resource usage and service health.
| Rule | Condition | Duration | Status |
|---|---|---|---|
| Memory usage | > 80% | 5 min | Enabled |
| CPU usage | > 85% | 5 min | Enabled |
| Service unavailable | Ready replicas = 0 | 1 min | Enabled |
Review notification configuration and recent delivery results.
| Channel | Configuration | Latest notification | Status |
|---|---|---|---|
| Operations | Feishu · App Secret configured | worker memory alert | Delivered |
Explore nodes, networking and storage across regions.
| Region | Node | Ingress | Storage |
|---|---|---|---|
| cn | cn-edge | HTTPS | Local volumes |
| global | global-edge | HTTPS | Local volumes |
| home | home-worker | Private relay | Local volumes |
Node roles, resource usage and latest heartbeats.
| Node | Region | Role | CPU | Status |
|---|---|---|---|---|
| cn-edge | cn | Manager · Edge | 24% | Ready |
| global-edge | global | Worker · Edge | 42% | Ready |
| home-worker | home | Worker | 18% | Ready |
Install node components, connect to Control and await the first heartbeat.
Regions define placement and their available nodes.
| Region | Nodes | Applications | Access |
|---|---|---|---|
| cn | 1 | worker | Internal |
| global | 1 | website · api | Public HTTPS |
| home | 1 | storage | Private relay |
Follow Control upgrades, node updates and route checks.
| Check | Result | Details |
|---|---|---|
| Public routes | Passed | 2 / 2 routes healthy |
| Control | Ready | Health check passed |
| Node versions | Aligned | 3 / 3 synchronized |
Persistent volumes retain their owning node across updates.
| Volume | Application | Node | Mount path |
|---|---|---|---|
| storage-data | storage | home-worker | /srv/luma/data/storage/data |
| worker-data | worker | cn-edge | /srv/luma/data/worker/data |
Inspect application images and built revisions.
| Application | Image | Source |
|---|---|---|
| website | registry.example.com/website:8d2a4f1 | Git build |
| api | registry.example.com/api:3b7c912 | Git build |
| worker | registry.example.com/worker:stable | Container image |
Start with configuration and check deployment dependencies.
| Setting | Example value | Status |
|---|---|---|
| Cluster domain | example.com | Configured |
| DNS | Cloudflare | Connected |
| Certificates | ACME | Configured |
| Private network | Tailscale | Connected |
Manage deployment credentials and platform configuration.
| Configuration | Count | Purpose |
|---|---|---|
| Secrets | 3 | Environment references |
| Registry credentials | 1 | Private image pulls |
| Git accounts | 1 | Repositories and builds |
Inspect names and usage; sensitive values are never displayed.
| Name | Reference | Applications |
|---|---|---|
| DATABASE_PASSWORD | ${DATABASE_PASSWORD} | api |
| SESSION_SECRET | ${SESSION_SECRET} | website |
| WORKER_TOKEN | ${WORKER_TOKEN} | worker |
Store pull credentials for private container registries.
| Registry | Username | Credential | Purpose |
|---|---|---|---|
| registry.example.com | deploy-bot | Configured | Application image pulls |
Connect source providers and select repositories for delivery.
| Provider | Account | Repository | Connection |
|---|---|---|---|
| GitHub | example-team | website · api | Connected |
| Gitea | example-team | worker | Connected |
Review local storage conventions and data ownership policy.
| Setting | Policy |
|---|---|
| Default backend | Local storage |
| Data directory | /srv/luma/data/<application>/<volume> |
| Placement | Pinned to the data owner |
| Application removal | Retain data by default |
Use System maintenance under Infrastructure for maintenance operations.
Check the route baseline, then follow image preparation and updates.
Connect a Git repository, use a container image, or start from YAML and application templates.
Keep DNS, HTTPS ingress and private relays connected to the application they serve.
Inspect instances, resource history and logs. Manage alert rules and notification channels in the same console.
Give your coding assistant Luma configuration rules, deployment workflows and troubleshooting guidance.
luma-deployment-yamlGenerate and validate YAML, review Compose configuration, and follow the application’s recorded build and deployment workflow.
Review this Compose project, generate its Luma sidecar, and validate it.View skill →
luma-observeDeploy and operate the independent observability stack, checking application metrics, allocation alerts and notifications.
Set up luma-observe for this cluster and verify alerts and notifications.View skill →
Luma coordinates established tools. Control holds configuration and orchestrates deployments; your nodes run the workloads.
Explore the architectureConfiguration, credentials and deployment coordination
CONTROLScheduling and workload lifecycle
COMPUTEHTTP/HTTPS routing and DNS records
INGRESSPrivate node connectivity and home relays
AS NEEDEDPrepare a Linux manager, a domain and a Cloudflare DNS token. Add private networking when your topology needs it.
Requirements & full setup guideRun on the manager first. The installer creates an isolated Python environment.
curl -fsSL https://raw.githubusercontent.com/LiuTianjie/luma/main/scripts/install-luma.sh | sh
~/.local/bin/luma preflightConfigure DNS credentials first, then bootstrap the control plane.
luma bootstrap manager --domain luma.example.comUse a management token from a trusted client. Choose a manifest or use the console.
luma login https://luma.example.com --token <management-token>
luma deploy service.yamlDeploy, inspect and operate from one workspace.
Read guidePrepare the manager and join your first nodes.
Read guideRegions, ingress, resources and service manifests.
Read guideRun multi-service apps with persistent data.
Read guideUnderstand what is running and investigate issues.
Read guideBring the same operations to your terminal and CI.
Read guideStart with a single manager. Grow your cluster when you need to.