Initial StartOS package for Station Master (v0.5.1)
Built from source via a git submodule pinned to a tag, not a published image — the Dockerfile, main.ts, and manifest should never need to change for an ordinary version bump, only the submodule pin (see UPDATING.md). One volume, one interface serving the browser client + lobby/intent API + SSE stream from a single origin, no dependencies. The server-wide join secret (D14) is seeded on install, exposed via the Get Join Secret action, and blocks start behind a critical task until retrieved — the same first-set/rotation pattern as actual-budget-startos's admin password. Verified on phoenix.local: installs, the critical task correctly blocks an ordinary start, force-starting confirms the daemon binds its port and serves the client, and store.json correctly holds the install-seeded join secret. Not verified: the Get Join Secret action's execution end-to-end — start-cli's `package action run` fails with a client-side deserialization error that reproduces identically against actual-budget's already-shipped equivalent action, so this looks like a start-cli issue rather than a defect here. icon.svg is still the scaffold's hello-world placeholder — no real Station Master icon exists yet to ship in its place.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { setupManifest } from '@start9labs/start-sdk'
|
||||
import { long, short } from './i18n'
|
||||
|
||||
export const manifest = setupManifest({
|
||||
id: 'station-master',
|
||||
title: 'Station Master',
|
||||
// Not open source — Jesse's own project, packaged for his own StartOS box.
|
||||
license: 'UNLICENSED',
|
||||
packageRepo: 'https://draco.local:53871/Jesse.Markowitz/station-master-startos',
|
||||
upstreamRepo: 'https://draco.local:53871/Jesse.Markowitz/station-master',
|
||||
// No separate marketing site — the repo IS where there is more to learn.
|
||||
marketingUrl: 'https://draco.local:53871/Jesse.Markowitz/station-master',
|
||||
donationUrl: null,
|
||||
description: { short, long },
|
||||
// Everything the server persists — game.json/index.json per game, turn timings,
|
||||
// and this package's own store.json (the join secret) — lives on one volume.
|
||||
volumes: ['data'],
|
||||
images: {
|
||||
// Built from source, not a published image: `main` here is the arbitrary
|
||||
// image id, matched in main.ts's SubContainer.of({ imageId: 'main' }).
|
||||
// The Dockerfile COPYs the pinned `station-master` git submodule — see
|
||||
// UPDATING.md for how that pin is bumped.
|
||||
main: {
|
||||
source: { dockerBuild: { workdir: '.', dockerfile: './Dockerfile' } },
|
||||
arch: ['x86_64', 'aarch64'],
|
||||
},
|
||||
},
|
||||
dependencies: {},
|
||||
})
|
||||
Reference in New Issue
Block a user