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:
Jesse
2026-08-21 08:44:07 -04:00
commit de28b30eea
40 changed files with 2540 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
import { LangDict } from './default'
export default {
es_ES: {
0: '¡Iniciando Station Master!',
1: 'Servidor multijugador',
2: 'El servidor multijugador está listo',
3: 'El servidor multijugador no está listo',
4: 'Mesa multijugador',
5: 'Crea o únete a una partida, y juega en el navegador',
6: 'Obtener el secreto de acceso',
7: 'Recuperar o rotar el secreto que los jugadores necesitan para crear o unirse a una partida',
8: 'Obtén el secreto de acceso para compartirlo con los jugadores',
},
de_DE: {
0: 'Starte Station Master!',
1: 'Mehrspieler-Server',
2: 'Der Mehrspieler-Server ist bereit',
3: 'Der Mehrspieler-Server ist nicht bereit',
4: 'Mehrspielertisch',
5: 'Spiel erstellen oder beitreten und im Browser spielen',
6: 'Beitrittsgeheimnis abrufen',
7: 'Das Geheimnis abrufen oder erneuern, das Spieler zum Erstellen oder Beitreten einer Partie benötigen',
8: 'Hole das Beitrittsgeheimnis, um es mit Spielern zu teilen',
},
pl_PL: {
0: 'Uruchamianie Station Master!',
1: 'Serwer wieloosobowy',
2: 'Serwer wieloosobowy jest gotowy',
3: 'Serwer wieloosobowy nie jest gotowy',
4: 'Stół wieloosobowy',
5: 'Utwórz lub dołącz do gry i graj w przeglądarce',
6: 'Pobierz sekret dołączania',
7: 'Pobierz lub wymień sekret potrzebny graczom do tworzenia gier i dołączania do nich',
8: 'Pobierz sekret dołączania, aby udostępnić go graczom',
},
fr_FR: {
0: 'Démarrage de Station Master !',
1: 'Serveur multijoueur',
2: 'Le serveur multijoueur est prêt',
3: "Le serveur multijoueur n'est pas prêt",
4: 'Table multijoueur',
5: 'Créez ou rejoignez une partie, et jouez dans le navigateur',
6: 'Obtenir le secret de connexion',
7: 'Récupérer ou renouveler le secret dont les joueurs ont besoin pour créer une partie ou la rejoindre',
8: 'Obtenez le secret de connexion à partager avec les joueurs',
},
} satisfies Record<string, LangDict>