mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 18:31:52 +00:00
- Add HostnameMetadata::Mdns variant to distinguish mDNS from private domains - Mark mDNS addresses as private (public: false) since mDNS is local-only - Fall back to null SNI entry when hostname not found in vhost mapping - Simplify public detection in ProxyTarget filter - Pass hostname to update_addresses for mDNS domain name generation
1.6 KiB
1.6 KiB
Container Runtime — Node.js Service Manager
Node.js runtime that manages service containers via JSON-RPC. See RPCSpec.md in this directory for the full RPC protocol.
Architecture
LXC Container (uniform base for all services)
└── systemd
└── container-runtime.service
└── Loads /usr/lib/startos/package/index.js (from s9pk javascript.squashfs)
└── Package JS launches subcontainers (from images in s9pk)
The container runtime communicates with the host via JSON-RPC over Unix socket. Package JavaScript must export functions conforming to the ABI type defined in sdk/base/lib/types.ts.
/media/startos/ Directory (mounted by host into container)
| Path | Description |
|---|---|
volumes/<name>/ |
Package data volumes (id-mapped, persistent) |
assets/ |
Read-only assets from s9pk assets.squashfs |
images/<name>/ |
Container images (squashfs, used for subcontainers) |
images/<name>.env |
Environment variables for image |
images/<name>.json |
Image metadata |
backup/ |
Backup mount point (mounted during backup operations) |
rpc/service.sock |
RPC socket (container runtime listens here) |
rpc/host.sock |
Host RPC socket (for effects callbacks to host) |
S9PK Structure
See ../core/s9pk-structure.md for the S9PK package format.