Skip to main content

Install the Core

The Core is one Go binary with the React console compiled into it via go:embed. One artifact, one port, one file of state.

:::info Early development image The Core image is private and pre-1.0. Authenticate to GitHub Container Registry and use an explicit version tag such as 0.1.0 or 0.1.0-alpha.1. :::

Docker

docker login ghcr.io
docker pull ghcr.io/jmarzoli/synapsys-core:0.1.0
docker run -p 8080:8080 -v synapsys-data:/app/data ghcr.io/jmarzoli/synapsys-core:0.1.0

The image is built through a multi-stage workflow: Node builds the frontend, Go embeds it and compiles a static binary, and the runtime image is Alpine with just that binary.

What it needs

Port8080
StateSQLite at /app/data/nucleus.db
Volume/app/datarequired if you want your data to survive
External servicesnone

Networking

Workers need to reach the Core's /api/v1/workers/heartbeat endpoint outbound. The Core needs to reach nothing.

If you run the console from a separate origin during development, note that the Core's CORS layer allows exactly one origin — http://localhost:5173, the Vite dev server. In production the console is served by the Core itself and CORS does not apply.

Upgrading

Schema migrations are tracked in a schema_migrations ledger and applied at startup. Migrations that have already been applied are never edited; a change means a new migration. Back up nucleus.db before upgrading anyway.