All checks were successful
Queue Release Build / prepare (push) Successful in 25s
Deploy Web Apps / deploy (push) Successful in 7m8s
Queue Release Build / build-windows (push) Successful in 28m10s
Queue Release Build / build-linux (push) Successful in 44m38s
Queue Release Build / build-android (push) Successful in 18m36s
Queue Release Build / finalize (push) Successful in 1m40s
Server
Node/TypeScript signaling server for MetoYou / Toju. This package owns the public server-directory API, join-request flows, websocket runtime, and server-side persistence.
Install
- Run
cd server. - Run
npm install.
Commands
npm run devstarts the server withts-node-devreload.npm run buildcompiles TypeScript todist/.npm run startruns the compiled server.- From the repository root,
npm run server:dev,npm run server:build, andnpm run server:startcall the same package commands.
Runtime Config
- The server loads the repository-root
.envfile on startup. SSLcan override the effective HTTP protocol, andPORTcan override the effective port.DB_PATHcan override the SQLite database file location.data/variables.jsonis normalized on startup and storesklipyApiKey,rawgApiKey,releaseManifestUrl,serverPort,serverProtocol,serverHost,serverTag, andlinkPreview. WhenserverTagis empty,GET /api/healthfalls back to the server's public URL.openApiDocs.enabledindata/variables.json, orOPENAPI_DOCS_ENABLED=true, exposes the plugin support OpenAPI document at/api/openapi.jsonand a small docs page at/api/docs. It is disabled by default. Plugin support is metadata-only: the server stores install requirements and event definitions, but arbitrary plugin data persistence is disabled.RAWG_API_KEYcan overriderawgApiKeyfor the/api/games/matchnow-playing metadata resolver. Successful matches include a preferred store link from RAWG store metadata, with Steam selected first when available. Negative game-match results are stored in the SQLitegame_match_missestable so non-game process names do not repeatedly consume RAWG quota.- Mobile push dispatch uses optional credentials from the repository-root
.envfile (see.env.example):FCM_SERVICE_ACCOUNT_PATHorFCM_SERVICE_ACCOUNT_JSONfor Android, andAPNS_KEY_PATH/APNS_KEY_ID/APNS_TEAM_ID(+ optionalAPNS_BUNDLE_ID,APNS_USE_SANDBOX) for iOS. Device tokens are stored in the SQLitedevice_tokenstable viaPOST /api/users/device-tokens. - Packaged server builds store
metoyou.sqlitein the OS app-data directory by default so upgrades do not overwrite runtime data. On first start, the server copies forward legacy packaged databases that still live beside the executable. - When HTTPS is enabled, certificates are read from the repository
.certs/directory.
Structure
| Path | Description |
|---|---|
src/index.ts |
Bootstrap and server startup |
src/app/ |
Express app composition |
src/routes/ |
REST API routes |
src/websocket/ |
WebSocket runtime and signaling transport |
src/cqrs/ |
Command/query handlers |
src/config/ |
Runtime config loading and normalization |
src/db/, src/entities/, src/migrations/ |
Persistence layer |
data/ |
Runtime data files such as variables.json |
Notes
dist/and../dist-server/are generated output.- See AGENTS.md for package-specific editing guidance.