← Singularity

Aether

A self-hosted infrastructure control plane designed for safe agent-driven operations.

Aether gives the dashboard, human CLI, automation, and future infrastructure agent one typed Resource API. Plans, policy, approvals, operations, and audit remain in the path between intent and execution.

System overview

Typed control boundary

RESOURCE API

Ready

OPERATIONS

Ready

NODE EXECUTION

Roadmap

Operation model

explicit states

PENDING→
PLANNING→
WAITING_APPROVAL→
RUNNING→
VERIFYING

Boundary rule

The future agent uses the same Resource API as every client. No direct infrastructure shortcut.

Docker quick start

Run the complete local control plane.

Docker with Compose is enough for the normal local stack. The command builds and starts PostgreSQL, `aetherd`, and the Next.js dashboard.

$ git clone https://github.com/SingularityCoLabs/Aether.git
cd Aether
cp .env.example .env
docker compose up --build

Dashboard

http://localhost:3000

Next.js web interface

Control plane

http://localhost:8080

ConnectRPC and health endpoints

PostgreSQL

localhost:5432

Persistent control-plane state

Verify health

Check liveness and readiness

Both endpoints should return successfully after the Compose health checks complete.

$ curl --fail http://localhost:8080/livez
curl --fail http://localhost:8080/readyz

Optional source CLI

Ask the control plane for system info

This command requires the repository's Go toolchain and uses the same API boundary as the dashboard.

$ go run ./cmd/aetherctl system info --server http://localhost:8080
Important: Docker Compose runs Aether's own development services. It does not yet enroll managed nodes or deploy your application containers; those capabilities remain on the roadmap.

System architecture

One boundary for every client.

The intended execution path is dashboard, CLI, automation, or agent → typed Resource API → modular control plane → outbound managed-node channel → Docker provider.

01 · aetherd

Control plane

Owns the typed API, persistence, resources, policy, operations, and audit history.

02 · web

Dashboard

A Next.js interface that consumes the same generated API contracts as every other client.

03 · aetherctl

Human CLI

Calls the control plane through the shared contract instead of bypassing it.

04 · aether-node

Managed-node daemon

The planned outbound execution boundary for approved typed operations on managed machines.

Control path

Intent→
Resource→
Plan→
Policy→
Approval→
Operation→
Verify→
Audit

Current development foundations

What exists now.

Docker Compose stack

Dashboard, Go control plane, and PostgreSQL run together for local development.

Identity and projects

The current development tree includes users, organizations, memberships, projects, authentication, and RBAC foundations.

Resources

Persistent resources, revisions, relations, generation handling, and typed API contracts are in development.

Operations

Durable operations, steps, events, retries, cancellation, verification, rollback states, and timeline UI are represented.

Roadmap to agent execution

What comes next.

Node enrollment

Single-use enrollment, outbound mutual authentication, heartbeat, and runtime inventory.

Docker provider

Typed image, container, network, volume, logs, and inspect capabilities without a general shell surface.

Application deployment

Deploy, observe, restart, inspect logs, and delete one Docker-backed application with audit history.

Agent execution

Resource-grounded assistance, structured plan generation, policy validation, approval, execution, and audit.

Develop from source

Pinned tools, generated contracts, complete checks.

The repository currently expects Go 1.27, Node.js 24.19 LTS, pnpm 10.32, and Docker with Compose. Buf is project-local; bootstrap downloads the pinned sqlc binary.

$ make bootstrap
make generate
$ make test
make test-integration
make test-e2e
make check
$ docker compose down

Run the control plane locally. Follow the agent roadmap openly.

$ git clone https://github.com/SingularityCoLabs/Aether.git
cd Aether
cp .env.example .env
docker compose up --build