TruthGate is an edge and management layer around Kubo.
The ASP.NET application provides:
- account and session authentication;
- API-key management;
- Blazor management UI;
- TLS and certificate selection;
- domain routing;
- publishing and pinning orchestration;
- request protection;
- metadata endpoints;
- Kubo proxy endpoints.
Kubo provides:
- content addressing;
- block storage and exchange;
- DHT routing;
- IPNS publication and resolution;
- repository and key management;
- the native WebUI;
- local RPC and gateway services.
The entrypoint:
- creates required directories;
- validates paths;
- handles the first-run administrator password;
- migrates an existing Kubo repository;
- applies managed Kubo settings;
- starts Kubo;
- waits for the loopback RPC API;
- starts TruthGate;
- supervises both processes.
If either managed process exits, the entrypoint stops the other and exits so Docker can restart the appliance.
Only TruthGate is published as the HTTP edge.
Kubo RPC and gateway listeners remain on loopback. TruthGate calls them from inside the container and decides which behavior is available to an authenticated operator, API key, mapped site domain, or public metadata request.
The management application uses interactive Blazor Server and WebAssembly components. The production publish must include the blazor.web.js bootstrap asset; CI validates that the deployed asset is nontrivial.
The image is disposable. Persistent state lives under /data/truthgate and /data/ipfs.
See Persistence.