pithos-site/index.html
Local Dev 4529841bf4 pithos.sia: the feature list catches up with Pithos 0.3.15
The page described Pithos as of 0.3.6. It now covers the account
switcher with free space, the three views and instant renames, the music
player, automatic upload of leftovers, drives on Silent Mode with public
folders at navigate.st/s3, the pithos.sia/<user>/<drive> address and the
self-updating footer, and no longer pins an old Theseus version.
2026-10-04 16:26:10 +02:00

318 lines
23 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Pithos — a control panel for your Sia storage</title>
<meta name="description" content="Pithos runs s3d, the Sia S3 gateway, for you: connect it to Sia, create S3 users and keys, browse and share your drives, and watch uploads land on the network. In Theseus, on the desktop, or in a browser.">
<link rel="icon" href="assets/favicon.svg" type="image/svg+xml">
<meta property="og:type" content="website">
<meta property="og:site_name" content="pithos.sia">
<meta property="og:title" content="Pithos — a control panel for your Sia storage">
<meta property="og:description" content="Run s3d without the command line: Sia connection, S3 users and keys, drives and files, live upload pipeline.">
<meta property="og:image" content="assets/logo.svg">
<meta name="twitter:card" content="summary">
<style>
:root{
--bg:#0b100e; --panel:#121a17; --panel2:#17211d; --line:rgba(255,255,255,.08);
--ink:#e6ece9; --mut:#8e9c96; --dim:#5f6b66; --acc:#3ddc97; --acc-deep:#1e9e72;
--sia:#b39ddb; --warn:#ffc75f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(1100px 560px at 50% -12%,#14271f,var(--bg));
color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100vh;padding-top:52px}
a{color:var(--acc)}
code{font-family:ui-monospace,"Cascadia Mono","SF Mono",Consolas,monospace;font-size:.88em;background:var(--panel2);padding:.12em .4em;border-radius:5px}
.wrap{max-width:980px;margin:0 auto;padding:0 1.2rem}
.topnav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;gap:2px;align-items:center;
padding:10px 1.2rem;background:rgba(11,16,14,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topnav .brand{font-weight:600;color:var(--ink);text-decoration:none;margin-right:14px;font-size:15px;display:flex;align-items:center;gap:8px}
.topnav .brand img{width:20px;height:20px}
.topnav .brand .g{color:var(--acc)}
.topnav a{color:var(--mut);text-decoration:none;padding:6px 12px;border-radius:8px;font-size:14px}
.topnav a:hover{color:var(--ink);background:var(--panel)}
.topnav a.get{margin-left:auto;background:rgba(61,220,151,.10);color:var(--acc);font-weight:500}
.topnav a.get:hover{background:rgba(61,220,151,.18)}
.topnav .menu{display:none}
@media (max-width:720px){
.topnav{padding:10px 1rem}
.topnav > a:not(.brand){display:none}
.topnav .menu{display:block;margin-left:auto;position:relative}
.topnav .menu > summary{list-style:none;cursor:pointer;padding:8px 10px;border-radius:8px;color:var(--mut);display:inline-flex}
.topnav .menu > summary::-webkit-details-marker{display:none}
.topnav .menu > summary svg{width:22px;height:22px}
.topnav .menu[open] > summary{color:var(--ink);background:var(--panel)}
.topnav .menu-panel{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg);border:1px solid var(--line);
border-radius:12px;padding:6px;min-width:200px;display:flex;flex-direction:column;gap:2px;box-shadow:0 10px 32px rgba(0,0,0,.55)}
.topnav .menu-panel a{display:block;padding:10px 14px;font-size:14.5px}
}
header.hero{text-align:center;padding:4.5rem 1.2rem 1.5rem}
header.hero img{width:84px;height:84px;filter:drop-shadow(0 6px 28px rgba(61,220,151,.22))}
h1{font-size:clamp(2rem,5.5vw,2.9rem);margin:.9rem 0 .3rem;letter-spacing:-.5px}
h1 .g{color:var(--acc)}
.tag{color:var(--mut);font-size:1.08rem;max-width:640px;margin:0 auto}
.cta{margin-top:1.8rem;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:.7rem 1.2rem;border-radius:10px;text-decoration:none;font-weight:600;font-size:15px;border:1px solid var(--line);color:var(--ink);background:var(--panel)}
.btn:hover{background:var(--panel2)}
.btn.primary{background:var(--acc);border-color:var(--acc);color:#06231a}
.btn.primary:hover{filter:brightness(1.07);background:var(--acc)}
section{padding:3rem 0 1rem}
section > .wrap > h2{font-size:1.55rem;margin:0 0 .4rem;letter-spacing:-.2px}
section > .wrap > p.lead{color:var(--mut);margin:0 0 1.6rem;max-width:720px}
.shot{margin:2.2rem auto 0;max-width:900px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.shot .bar{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}
.shot .bar i{width:10px;height:10px;border-radius:50%;background:#2a3430}
.shot .body{display:grid;grid-template-columns:170px 1fr;min-height:300px;text-align:left}
.shot nav{border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:3px;font-size:13px}
.shot nav span{padding:6px 10px;border-radius:7px;color:var(--mut)}
.shot nav span.on{background:rgba(61,220,151,.12);color:var(--acc);font-weight:600}
.shot .main{padding:18px 20px}
.shot .main h3{margin:0 0 12px;font-size:17px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat{background:var(--panel2);border-radius:9px;padding:10px 12px}
.stat b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.stat small{color:var(--mut);font-size:12px}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--acc);background:rgba(61,220,151,.1);padding:3px 10px;border-radius:999px;margin-bottom:12px}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--acc)}
@media (max-width:640px){ .shot .body{grid-template-columns:1fr} .shot nav{display:none} .stats{grid-template-columns:repeat(2,1fr)} }
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem}
.card h3{margin:.1rem 0 .4rem;font-size:1.05rem}
.card p{margin:0;color:var(--mut);font-size:.95rem}
.card .ic{font-size:1.4rem;line-height:1;margin-bottom:.5rem}
.card .status{display:inline-block;margin-top:.8rem;font-size:12.5px;padding:2px 9px;border-radius:999px;background:var(--panel2);color:var(--mut)}
.card .status.ok{background:rgba(61,220,151,.12);color:var(--acc)}
.card .status.soon{background:rgba(255,199,95,.12);color:var(--warn)}
.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:10px;margin:1rem 0 .4rem}
.flow .node{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;text-align:center}
.flow .node b{display:block}
.flow .node small{color:var(--mut)}
.flow .node.sia{border-color:rgba(179,157,219,.35)}
.flow .node.sia b{color:var(--sia)}
.flow .node.s3d b{color:var(--acc)}
.flow .arr{color:var(--dim);font-size:1.3rem}
.ctl{margin:6px auto 0;max-width:520px;text-align:center;color:var(--mut);font-size:.93rem;border:1px dashed rgba(61,220,151,.35);border-radius:12px;padding:.7rem 1rem}
.ctl b{color:var(--acc)}
@media (max-width:720px){ .flow{grid-template-columns:1fr} .flow .arr{transform:rotate(90deg);text-align:center} }
ol.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
ol.steps li{counter-increment:s;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem 1rem 3.4rem;position:relative}
ol.steps li::before{content:counter(s);position:absolute;left:1.1rem;top:1rem;width:1.6rem;height:1.6rem;border-radius:50%;
background:rgba(61,220,151,.14);color:var(--acc);display:grid;place-items:center;font-weight:700;font-size:.9rem}
ol.steps li b{display:block;margin-bottom:.15rem}
ol.steps li span{color:var(--mut);font-size:.95rem}
pre{background:var(--panel2);border-radius:10px;padding:.8rem 1rem;overflow:auto;font-size:13px;margin:.6rem 0 0}
pre code{background:none;padding:0}
ul.checks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
ul.checks li{padding-left:1.7rem;position:relative;color:var(--mut)}
ul.checks li::before{content:"✓";position:absolute;left:0;color:var(--acc);font-weight:700}
ul.checks li b{color:var(--ink);font-weight:600}
details.faq{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.9rem 1.2rem;margin-bottom:10px}
details.faq summary{cursor:pointer;font-weight:600}
details.faq p{color:var(--mut);margin:.6rem 0 0}
footer{margin-top:3rem;border-top:1px solid var(--line);padding:2rem 0 3rem;color:var(--dim);font-size:.9rem}
footer .cols{display:flex;gap:2rem;flex-wrap:wrap;justify-content:space-between}
footer a{color:var(--mut);text-decoration:none}
footer a:hover{color:var(--ink)}
footer ul{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:4px}
footer h4{margin:0;color:var(--ink);font-size:.9rem}
</style>
</head>
<body>
<nav class="topnav">
<a class="brand" href="./"><img src="assets/favicon.svg" alt=""><span>pithos<span class="g">.sia</span></span></a>
<a href="#features">Features</a>
<a href="#how">How it works</a>
<a href="#get">Get Pithos</a>
<a href="#security">Security</a>
<a href="#faq">FAQ</a>
<a href="docs">Docs</a>
<a class="get" href="#get">Get started</a>
<details class="menu">
<summary aria-label="Menu"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg></summary>
<div class="menu-panel">
<a href="#features">Features</a>
<a href="#how">How it works</a>
<a href="#get">Get Pithos</a>
<a href="#security">Security</a>
<a href="#faq">FAQ</a>
<a href="docs">Docs</a>
</div>
</details>
</nav>
<header class="hero">
<img src="assets/logo.svg" alt="Pithos">
<h1>Your own S3, <span class="g">stored on Sia</span></h1>
<p class="tag">Pithos runs <a href="https://github.com/SiaFoundation/s3d">s3d</a>, the Sia Foundation's S3 gateway, without the command line. Connect it to Sia, hand out access keys, manage your drives and watch your files reach the network.</p>
<div class="cta">
<a class="btn primary" href="#get">Get Pithos</a>
<a class="btn" href="#how">How it works</a>
</div>
<div class="shot" aria-hidden="true">
<div class="bar"><i></i><i></i><i></i></div>
<div class="body">
<nav><span>Get started</span><span class="on">Overview</span><span>Drives</span><span>Users &amp; keys</span><span>Sia connection</span><span>Settings</span><span>Logs</span></nav>
<div class="main">
<div class="pill">s3d running</div>
<h3>Upload pipeline</h3>
<div class="stats">
<div class="stat"><b>12</b><small>pending · 48 MiB</small></div>
<div class="stat"><b>3,204</b><small>on Sia · 21.4 GiB</small></div>
<div class="stat"><b>0</b><small>failed uploads</small></div>
<div class="stat"><b>2</b><small>awaiting pin</small></div>
<div class="stat"><b>1</b><small>open multipart</small></div>
<div class="stat"><b>0</b><small>orphaned</small></div>
</div>
</div>
</div>
</div>
</header>
<section id="features">
<div class="wrap">
<h2>Everything s3d does, on one screen</h2>
<p class="lead">s3d is a great piece of plumbing that you drive with a CLI and config files. Pithos keeps the plumbing and gives you the controls.</p>
<div class="grid">
<div class="card"><div class="ic">🔗</div><h3>Guided setup</h3><p>A step-by-step guide takes you from a free Sia Storage account to a working S3 key. Pithos opens the approval page for you and carries on by itself the moment you approve.</p></div>
<div class="card"><div class="ic">🔒</div><h3>Locked with your PIN</h3><p>In Theseus, Pithos opens with your vault PIN. Three wrong tries and Theseus asks for your master password instead. Lock the vault and Pithos locks with it.</p></div>
<div class="card"><div class="ic">🔑</div><h3>Users &amp; access keys</h3><p>Create a user per app or person. Issue and revoke keys, copy ready-made config for the aws CLI, rclone or environment variables, and save keys to an encrypted file protected by a password or your Theseus vault.</p></div>
<div class="card"><div class="ic">🔁</div><h3>Your Sia accounts</h3><p>All your Sia accounts side by side at the top of Accounts, with the free space on the one in use. Add another account or switch back any time: the old one's users, keys and drives are set aside on your computer, never deleted.</p></div>
<div class="card"><div class="ic">💽</div><h3>Drives, folders &amp; files</h3><p>Your storage looks like a computer: drives, folders that stay put even while empty, and files you drag in, shown as icons with picture previews, a list or a detailed table. Rename files, folders and whole drives in an instant, since nothing is uploaded again.</p></div>
<div class="card"><div class="ic">🖼️</div><h3>Viewer &amp; music player</h3><p>Open pictures, video and text right in Pithos. Music plays in a player docked at the bottom that keeps going while you browse, moves on through the folder, and answers your keyboard's media keys.</p></div>
<div class="card"><div class="ic">📤</div><h3>Share links</h3><p>Signed links that work without a key and expire after an hour, a day or a week.</p></div>
<div class="card"><div class="ic">📈</div><h3>Upload pipeline &amp; free space</h3><p>See what is still waiting on your computer, what is already on Sia, and how much room your Sia account has left. Small leftovers go up by themselves after a few quiet minutes, or right away with Upload now.</p></div>
<div class="card"><div class="ic">☁️</div><h3>Drives on Silent Mode</h3><p>Move s3d to Silent Mode's server to keep it running with your computer off. Files are encrypted on your computer first, and public folders get a page anyone can open at navigate.st/s3/<i>your-name</i>/<i>drive</i>/.</p></div>
<div class="card"><div class="ic">🧭</div><h3>Its own address</h3><p>In Theseus, Pithos opens full-size at pithos.sia/<i>user</i>/<i>drive</i>/<i>folder</i>, signed in while your vault is unlocked, or stays in the sidebar with everything one tap away.</p></div>
<div class="card"><div class="ic">⬆️</div><h3>Updates itself</h3><p>The version sits in the footer. When a new one is out, one click installs it; newer Theseus versions swap it in without a restart.</p></div>
<div class="card"><div class="ic">⚙️</div><h3>Daemon &amp; settings</h3><p>Install the official s3d release with its checksum verified, and Pithos keeps it running: it comes back after a restart and recovers from a crash by itself. Follow its logs and edit its settings, including redundancy and upload threads.</p></div>
</div>
</div>
</section>
<section id="how">
<div class="wrap">
<h2>How it works</h2>
<p class="lead">Your apps talk plain S3. s3d encrypts and erasure-codes the data and spreads it across independent Sia hosts. Pithos sits beside s3d and runs it for you.</p>
<div class="flow">
<div class="node"><b>Your apps</b><small>aws, rclone, backups, any S3 SDK</small></div>
<div class="arr">→</div>
<div class="node s3d"><b>s3d</b><small>S3 API on your machine · encrypts locally</small></div>
<div class="arr">→</div>
<div class="node sia"><b>Sia network</b><small>independent hosts, 3× redundancy by default</small></div>
</div>
<div class="ctl"><b>Pithos</b> starts and watches s3d, holds the Sia connection, issues keys and shows you the pipeline.</div>
<p class="lead" style="margin-top:1.4rem">Files are encrypted before they leave your computer. Sia hosts store pieces they cannot read, and no single host holds enough to rebuild a file.</p>
</div>
</section>
<section id="get">
<div class="wrap">
<h2>Three ways to run it</h2>
<p class="lead">The same Pithos everywhere: one engine, one interface, three homes.</p>
<div class="grid">
<div class="card">
<div class="ic">🧭</div><h3>In Theseus Navigator</h3>
<p>Built into the Theseus browser. It lives in the left sidebar beside your quick links, opens with your vault PIN, and widens to full window when you need room.</p>
<span class="status ok">Built into Theseus</span> <a class="status ok" style="text-decoration:none" href="https://dl.silentmode.st/latest/TheseusNavigator-Setup.exe">Download Theseus</a>
</div>
<div class="card">
<div class="ic">🖥️</div><h3>Desktop app</h3>
<p>A standalone window for Windows, macOS and Linux. Quitting stops s3d cleanly, so your upload buffer is always flushed to disk.</p>
<span class="status soon">Installers coming</span>
</div>
<div class="card">
<div class="ic">🌐</div><h3>Web console</h3>
<p>Run it next to s3d on a server and open it in any browser. Loopback-only by default; password plus a TLS proxy for remote access.</p>
<span class="status soon">Source release coming</span>
</div>
</div>
</div>
</section>
<section id="start">
<div class="wrap">
<h2>From zero to S3 in five steps</h2>
<p class="lead">Open Pithos and press <b>Get started</b>. The guide walks you through every step with Back and Next.</p>
<ol class="steps">
<li><b>Create a free Sia Storage account</b><span>Sign up at <a href="https://sia.storage">sia.storage</a>: 50 GB free. You sign up with Sia Storage directly; Pithos never sees that password. Or use your own indexer.</span></li>
<li><b>Install s3d</b><span>Pithos downloads the official s3d release from the Sia Foundation and checks its SHA-256 before using it.</span></li>
<li><b>Choose your recovery phrase</b><span>In Theseus, let Pithos take it from your password vault: nothing to write down, and your vault backup restores your storage. Or create one and write it down.</span></li>
<li><b>Approve Pithos</b><span>The approval page opens by itself. Approve the app on Sia Storage and Pithos starts your gateway and creates your first access key.</span></li>
<li><b>Point your tools at it</b><span>Anything that speaks S3 now stores on Sia.</span>
<pre><code>aws --profile backups --endpoint-url http://127.0.0.1:8000 s3 cp ./photos s3://family/ --recursive</code></pre></li>
</ol>
</div>
</section>
<section id="security">
<div class="wrap">
<h2>Built to be boring about security</h2>
<p class="lead">A storage control panel holds the keys to your data, so Pithos is strict by default.</p>
<ul class="checks">
<li><b>Your recovery phrase stays local.</b> It goes straight to the s3d process on your machine and is never stored, logged or uploaded. Taken from your Theseus vault, it is built inside Pithos and never shown on screen.</li>
<li><b>PIN-locked in Theseus.</b> Theseus asks for the PIN in its own prompt, so Pithos never sees it or your master password. Three wrong PINs require the master password.</li>
<li><b>Loopback only by default.</b> The control panel listens on 127.0.0.1 and rejects requests that arrive under any other host name.</li>
<li><b>One-time sign-in.</b> Theseus and the desktop app open the panel with a single-use secret that becomes a strict, HttpOnly session cookie.</li>
<li><b>No cross-site tricks.</b> Every change needs a custom header that other websites cannot send.</li>
<li><b>Verified downloads.</b> s3d binaries are checked against the Sia Foundation's published SHA-256 before they are installed.</li>
<li><b>Untrusted files stay inert.</b> Downloads are served sandboxed, so a stored HTML file cannot run inside the panel.</li>
</ul>
</div>
</section>
<section id="faq">
<div class="wrap">
<h2>Questions</h2>
<details class="faq"><summary>Is Pithos a storage provider?</summary><p>No. Pithos is a control panel. Your data goes from s3d on your machine straight to Sia hosts, paid through your indexer account. Silent Mode never sees or holds your files.</p></details>
<details class="faq"><summary>What does it cost?</summary><p>Pithos is free and open source. Storage is billed by your Sia indexer, for example sia.storage.</p></details>
<details class="faq"><summary>Which s3d version do I need?</summary><p>v0.2.0 or newer. Pithos offers to install the right one for you and tells you when yours is too old.</p></details>
<details class="faq"><summary>I already run s3d as a service. Can Pithos manage it?</summary><p>Yes. Pithos uses the same config file a hand-run s3d uses. If s3d is already running, Pithos shows it as external, reads its stats and leaves the process alone.</p></details>
<details class="faq"><summary>What is the difference between a Sia account, an S3 user and a drive?</summary><p>The <b>Sia account</b> (for example on sia.storage) pays for the space; your s3d is connected to one. <b>S3 users</b> are logins on your own s3d, each with its own access keys, so you can give an app its own key and revoke it alone. A <b>drive</b> is top-level storage owned by one user, like a disk on your computer; S3 apps call it a <i>bucket</i>. Folders and files go inside drives.</p></details>
<details class="faq"><summary>Can I switch to a different Sia account?</summary><p>Yes, under Sia connection › Switch Sia account. s3d connects to the new account and starts empty. The previous account keeps its files, and its users, keys and drives are set aside on your computer so you can restore them later. Pithos warns you first if uploads are still on their way to Sia.</p></details>
<details class="faq"><summary>What if I forget my PIN?</summary><p>After three wrong tries Theseus asks for your master password, which always works. You can set a new PIN any time in Theseus Settings › Passwords.</p></details>
<details class="faq"><summary>Can I make a single folder public, or share a drive with someone?</summary><p>Not yet. s3d can make a whole drive public for reading, but not one folder, and it cannot give other people rights to add or change files. Keep public files on a drive of their own, and send a share link for a single file.</p></details>
<details class="faq"><summary>Is there a size limit?</summary><p>Uploads from the Pithos window are capped at 5 GiB per file for now. S3 clients such as aws and rclone use multipart uploads and go well beyond that.</p></details>
<details class="faq"><summary>Why the name?</summary><p>A pithos was the great storage jar of the ancient Greek world, where a household kept what it could not afford to lose.</p></details>
</div>
</section>
<footer>
<div class="wrap cols">
<div>
<h4>pithos.sia</h4>
<p style="margin:.4rem 0 0;max-width:320px">A control panel for s3d, the Sia S3 gateway. Part of Silent Mode.</p>
</div>
<div>
<h4>Silent Mode</h4>
<ul>
<li><a href="https://silentmode.st/">silentmode.st</a></li>
<li><a href="https://silentmode.st/theseus">Theseus Navigator</a></li>
</ul>
</div>
<div>
<h4>Sia</h4>
<ul>
<li><a href="https://github.com/SiaFoundation/s3d">s3d on GitHub</a></li>
<li><a href="https://sia.storage">sia.storage</a></li>
<li><a href="https://sia.tech">sia.tech</a></li>
</ul>
</div>
</div>
<div class="wrap" style="margin-top:1.6rem">s3d is MIT-licensed software by the Sia Foundation. Pithos is an independent, MPL-2.0 Silent Mode project and is not made by the Sia Foundation.</div>
</footer>
</body>
</html>