s3d binds one Sia account per process, so the server runs one s3d per person (pithos-hosted), started on demand and flushed and stopped when idle. Only the connected s3d data folder moves between PC and server; the Sia recovery phrase never leaves the PC and nothing is re-uploaded to Sia. Because the server holds the connection key, local Pithos encrypts names and contents before they leave the machine, with keys from the Theseus vault (or a local key file elsewhere). What s3d cannot do on its own, the gateway now enforces: public folders, expiring share links and S3 keys for other people limited to one folder with read, add-only or edit rights. Files those reach are stored readable, since visitors have no key, and go back to encrypted when the rule is removed. Sign-up needs a BNS name signature, a deposit or an invite, with a per-IP limit.
31 lines
922 B
Text
31 lines
922 B
Text
# s3.silentmode.st -> pithos-hosted. Bodies stream straight through: uploads
|
|
# can be gigabytes, and SigV4 signs the exact bytes and headers.
|
|
server {
|
|
listen 443 ssl;
|
|
http2 on;
|
|
server_name s3.silentmode.st;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/s3.silentmode.st/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/s3.silentmode.st/privkey.pem;
|
|
|
|
client_max_body_size 5g;
|
|
proxy_request_buffering off;
|
|
proxy_buffering off;
|
|
proxy_read_timeout 1h;
|
|
proxy_send_timeout 1h;
|
|
|
|
location / {
|
|
proxy_pass http://127.0.0.1:8720;
|
|
proxy_http_version 1.1;
|
|
# s3d checks the signature against the Host the client signed.
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
proxy_set_header Connection "";
|
|
}
|
|
}
|
|
|
|
server {
|
|
listen 80;
|
|
server_name s3.silentmode.st;
|
|
return 301 https://$host$request_uri;
|
|
}
|