From b00cc1a843242543f0eda4971e1f332485039f7d Mon Sep 17 00:00:00 2001 From: Public Source Publisher Date: Thu, 1 Oct 2026 14:29:14 +0000 Subject: [PATCH] Publish curated chimera source from 1978c431dc7a90efc2e8405e8b3c301cc7151895 --- PUBLIC_SOURCE_EXPORT.md | 2 +- PUBLIC_SOURCE_MANIFEST.json | 6 +++--- README.md | 37 +++++++++++++++++++++++++++++++++++-- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/PUBLIC_SOURCE_EXPORT.md b/PUBLIC_SOURCE_EXPORT.md index c516304..cb898ef 100644 --- a/PUBLIC_SOURCE_EXPORT.md +++ b/PUBLIC_SOURCE_EXPORT.md @@ -1,3 +1,3 @@ # Public source export -This source snapshot was generated from the private canonical repository at revision `95e6b4be8a9669686a6241fda6f22034fd8d0b5c`. It contains no private Git history or operational evidence. Changes are published from the canonical repository. +This source snapshot was generated from the private canonical repository at revision `1978c431dc7a90efc2e8405e8b3c301cc7151895`. It contains no private Git history or operational evidence. Changes are published from the canonical repository. diff --git a/PUBLIC_SOURCE_MANIFEST.json b/PUBLIC_SOURCE_MANIFEST.json index 1ff2e6a..addd8ad 100644 --- a/PUBLIC_SOURCE_MANIFEST.json +++ b/PUBLIC_SOURCE_MANIFEST.json @@ -1,6 +1,6 @@ { "schemaVersion": 1, - "sourceRevision": "95e6b4be8a9669686a6241fda6f22034fd8d0b5c", + "sourceRevision": "1978c431dc7a90efc2e8405e8b3c301cc7151895", "files": [ { "path": ".dockerignore", @@ -59,8 +59,8 @@ }, { "path": "README.md", - "sha256": "f8ddee78ee5231a2efa3f3e941a2acab8679107063e98b7acdb64e8455e0f786", - "bytes": 6284 + "sha256": "9afa01877fd56bc06cf7ccdbfe9ae422b5a24e159a7adf6c212d450b886ea721", + "bytes": 8372 }, { "path": "SECURITY.md", diff --git a/README.md b/README.md index 9db512b..fb4270f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Chimera — Public Source +# Chimera - Public Source **A self-hosted PS4/PS5 library and console operations platform.** @@ -34,11 +34,22 @@ Requires **Node.js 24** and **npm 11**. The browser server is the simplest sourc git clone https://gitea.itworx.tech/Jens/chimera-Public.git cd chimera-Public npm ci --ignore-scripts -HOST=127.0.0.1 PORT=6967 npm run start:server +CHIMERA_DATA_DIR="$HOME/.local/share/chimera-evaluation" HOST=127.0.0.1 PORT=6967 npm run start:server ``` Open `http://127.0.0.1:6967`, create the administrator when prompted and use a unique password. Server state is created outside tracked source in the application's configured data directory. For a disposable evaluation set `CHIMERA_DATA_DIR` to an empty directory. Native optional tools and Electron require their separate prerequisites; `--ignore-scripts` intentionally does not install their binaries. +On Windows PowerShell, set the same local boundary explicitly: + +```powershell +$env:CHIMERA_DATA_DIR = Join-Path $env:LOCALAPPDATA "Chimera-evaluation" +$env:HOST = "127.0.0.1" +$env:PORT = "6967" +npm run start:server +``` + +The configured directory is persistent application state. Keep it outside Git and retain it when restarting the server. + ### Source-only container Create the external secret files and configure the HTTPS origin before starting the container: @@ -54,12 +65,34 @@ sudo chmod 600 /secure/chimera/master.key /secure/chimera/bootstrap.token docker compose up --build -d ``` +Open the configured HTTPS origin, enter the contents of the external bootstrap-token file in the first-run form, create the administrator and select the permitted storage roots. Compose maps `CHIMERA_BOOTSTRAP_TOKEN_PATH` to the container’s `CHIMERA_BOOTSTRAP_TOKEN_FILE`. Local loopback evaluation does not require this remote bootstrap token. + Local Compose file secrets keep host permissions. The image runs as UID 1000, so ensure it can read both mounted secret files; adapt the ownership/ACL for rootless Docker. The public Compose example exposes only `127.0.0.1:6967`, persists application state in a named volume and runs as an unprivileged user. The container binds internally to all interfaces so that Docker port forwarding works; HTTPS origin, host and secret settings remain required. It does not mount your host libraries or bundle console payloads/native conversion tools. Start with an empty instance before configuring read-only library mounts. For network access, use an HTTPS reverse proxy and configure `CHIMERA_PUBLIC_ORIGIN`, `CHIMERA_ALLOWED_HOSTS`, `CHIMERA_COOKIE_SECURE=1`, `CHIMERA_TRUST_PROXY=1`, a high-entropy master key file and a separate bootstrap-token file. Keep those files outside the repository. The server rejects an incomplete security boundary on non-loopback binds. Do not expose the plain HTTP evaluation port directly to the internet. +## Verify startup and preserve state + +```bash +docker compose config +docker compose ps +docker compose logs --tail=100 chimera +curl http://127.0.0.1:6967/health/live +curl http://127.0.0.1:6967/health/ready +``` + +`/health/live` checks the responding HTTP process. Before administrator setup, `/health/ready` returns HTTP 503 with `setup-required`. After setup, inspect its JSON status and volume details: HTTP 200 can still report `attention`. Neither endpoint proves console connectivity. + +Back up persistent application state and the external master-key file together before upgrading. The public `chimera-data` volume stores configuration, the database, encrypted secrets, logs, caches and application backups. Retain the previous source revision or image for rollback. Removing a named volume with `docker compose down -v` erases its state. + +## What works without a console? + +You can evaluate administrator setup, navigation, configuration and local state without a console. Console inventory, FTP transfers, media retrieval and console operations need separately configured compatible services. The public container excludes payload binaries and native conversion tools. + +Remote Play runs through a separately installed native client on the paired computer. Chimera coordinates that companion; it does not stream console video inside the browser. + ## Usage 1. Create an administrator and review settings.