s3d is driven entirely by a CLI and a two-route admin API, which keeps Sia storage out of reach for anyone who does not live in a terminal. Pithos wraps it: install the pinned s3d release (checksum verified), start/stop and logs, indexer login, users and access keys, a bucket and object browser with share links and public-read policies, and the upload pipeline stats. One control server (core/) serves one UI (ui/), and three hosts run it: a web console, an Electron desktop window and a Theseus add-on, so a feature lands everywhere at once. The server binds loopback, rejects foreign Host headers, and signs views in with a one-time secret that becomes a SameSite=Strict cookie. s3d login reads the recovery phrase with term.ReadPassword, so it is driven through a pty, with a console window fallback where the pty module is not shipped.
24 lines
628 B
JSON
24 lines
628 B
JSON
{
|
|
"name": "pithos",
|
|
"version": "0.1.0",
|
|
"description": "A control panel for s3d, the Sia S3 gateway: daemon, users and keys, buckets, upload pipeline.",
|
|
"license": "MPL-2.0",
|
|
"type": "module",
|
|
"main": "core/server.js",
|
|
"bin": { "pithos-web": "bin/pithos-web.js" },
|
|
"scripts": {
|
|
"web": "node bin/pithos-web.js",
|
|
"desktop": "electron desktop/main.cjs",
|
|
"test": "node --test test/*.test.js"
|
|
},
|
|
"engines": { "node": ">=20" },
|
|
"dependencies": {
|
|
"yaml": "^2.9.1"
|
|
},
|
|
"optionalDependencies": {
|
|
"@lydell/node-pty": "1.2.0-beta.15"
|
|
},
|
|
"devDependencies": {
|
|
"electron": "^44.5.1"
|
|
}
|
|
}
|