39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
|
|
# Prometheus
|
||
|
|
|
||
|
|
The service behind `prometheus.x` — a standalone website that accepts app
|
||
|
|
listings, scans the binaries, generates APS1 records for publishers to sign,
|
||
|
|
and serves the browse pages.
|
||
|
|
|
||
|
|
The architecture decisions and the reasoning behind them live at
|
||
|
|
[`_coordination/sessions/prometheus-x-architecture.md`](../_coordination/sessions/prometheus-x-architecture.md).
|
||
|
|
Read that before touching the code; it answers the questions this directory
|
||
|
|
otherwise invites ("why isn't this on Sia?", "why isn't the admin on another
|
||
|
|
subdomain?", "why Node?").
|
||
|
|
|
||
|
|
```
|
||
|
|
service/ Node HTTP server, templates, scanner, storage, payments
|
||
|
|
public/ Static assets served under /static/
|
||
|
|
content/ Prose content in a form the templates render into pages
|
||
|
|
```
|
||
|
|
|
||
|
|
## Run it locally
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd Prometheus
|
||
|
|
npm install # none yet; placeholder for when deps show up
|
||
|
|
node service/server.js
|
||
|
|
```
|
||
|
|
|
||
|
|
Opens on `http://127.0.0.1:3700` by default. Override with `PORT=xxxx`.
|
||
|
|
|
||
|
|
## Layout
|
||
|
|
|
||
|
|
The server is one `node:http` listener behind a trivial map-based router.
|
||
|
|
Pages are plain functions that return `{title, description, body}` and
|
||
|
|
`layout()` wraps them in the common document shell. Static files under
|
||
|
|
`public/` are served directly.
|
||
|
|
|
||
|
|
There's no framework and no templating engine on purpose — a site this
|
||
|
|
small does not earn a dependency surface, and the response-rendering path
|
||
|
|
is short enough to read at a glance.
|