Skip to content

Core as a container: process model, config, pairing, state #9

Description

@qcentic-adm

Part of #6

Question

How does a Core run as a container rather than as a machine?

Everything about the Core today assumes a real host: actana setup writes a systemd user unit, enables lingering, and the daemon is supervised by systemd. The published "Core image" sidesteps this by running full systemd under --privileged with a hardcoded hostname — which is exactly what we are killing.

Settle:

  • PID 1. Does the daemon run directly as PID 1, or under a minimal supervisor? What handles signals and zombie reaping, given the daemon forks PTYs?
  • Configuration. On a real machine actana setup is interactive and writes state. In a container, config should arrive as environment variables and a mounted volume. Which env vars, and what is the minimum set to bring up a working Core?
  • Pairing. How does a containerised Core get its pairing token and register with the Panel — pre-seeded env var, a token file in the volume, or a first-run flow? What happens on container restart?
  • State. What lives in the volume, and what is safe to lose.
  • Repos. How does a user's actual work get in — bind mount, named volume, or clone-on-demand inside the container?
  • actana setup in a container. Does it still run (in a degraded, no-systemd mode), or does the container image bypass the CLI's lifecycle verbs entirely? These are two quite different designs; pick one.
  • The deploy/dev/core.Dockerfile fixture. Does it survive as a local-only test fixture, or is it deleted once the real image can be smoke-tested?

Also decide the shape of the reference docker-compose.yml that runs a Panel and a Core together on one machine — the "people who want both" case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wayfinder:grillingWayfinder ticket: HITL, resolved by conversation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions