Rewrite /docs/security with the full auth model and cross-link from operator, FAQ, and docs index.
203 lines
9.5 KiB
HTML
203 lines
9.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
<title>Documentation · PearDock</title>
|
|
<meta name="description" content="PearDock documentation: quick start, architecture, operator guide, Holesail, security, RPC, and releases." />
|
|
<meta name="keywords" content="PearDock documentation, docs, operator guide, architecture" />
|
|
<meta name="author" content="HoneyPeer, LLC" />
|
|
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
|
|
<meta name="googlebot" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
|
|
<meta name="theme-color" content="#2dd4bf" />
|
|
<meta name="color-scheme" content="dark light" />
|
|
<meta name="application-name" content="PearDock" />
|
|
<meta name="apple-mobile-web-app-title" content="PearDock" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="msapplication-TileColor" content="#2dd4bf" />
|
|
<meta name="msapplication-config" content="/assets/favicons/browserconfig.xml" />
|
|
<meta name="format-detection" content="telephone=no" />
|
|
<link rel="canonical" href="https://peardock.boats/docs/" />
|
|
<link rel="alternate" hreflang="en" href="https://peardock.boats/docs/" />
|
|
<link rel="alternate" hreflang="x-default" href="https://peardock.boats/docs/" />
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:site_name" content="PearDock" />
|
|
<meta property="og:locale" content="en_US" />
|
|
<meta property="og:url" content="https://peardock.boats/docs/" />
|
|
<meta property="og:title" content="Documentation · PearDock" />
|
|
<meta property="og:description" content="PearDock documentation: quick start, architecture, operator guide, Holesail, security, RPC, and releases." />
|
|
<meta property="og:image" content="https://peardock.boats/assets/brand/og-image.png" />
|
|
<meta property="og:image:secure_url" content="https://peardock.boats/assets/brand/og-image.png" />
|
|
<meta property="og:image:type" content="image/png" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:alt" content="PearDock: decentralized Docker management on HyperDHT" />
|
|
|
|
<!-- Twitter / X -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:title" content="Documentation · PearDock" />
|
|
<meta name="twitter:description" content="PearDock documentation: quick start, architecture, operator guide, Holesail, security, RPC, and releases." />
|
|
<meta name="twitter:image" content="https://peardock.boats/assets/brand/twitter-card.png" />
|
|
<meta name="twitter:image:alt" content="PearDock: decentralized Docker management" />
|
|
|
|
<!-- Icons & PWA -->
|
|
<link rel="icon" href="/assets/favicons/favicon.ico" sizes="any" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicons/favicon-32x32.png" />
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicons/favicon-16x16.png" />
|
|
<link rel="icon" type="image/png" sizes="48x48" href="/assets/favicons/favicon-48x48.png" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicons/apple-touch-icon.png" />
|
|
<link rel="manifest" href="/assets/favicons/site.webmanifest" />
|
|
<link rel="mask-icon" href="/assets/logo/peardock-wordmark.svg" color="#2dd4bf" />
|
|
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": [
|
|
"WebPage",
|
|
"TechArticle"
|
|
],
|
|
"name": "Documentation \u00b7 PearDock",
|
|
"description": "PearDock documentation: quick start, architecture, operator guide, Holesail, security, RPC, and releases.",
|
|
"url": "https://peardock.boats/docs/",
|
|
"isPartOf": {
|
|
"@type": "WebSite",
|
|
"name": "PearDock",
|
|
"url": "https://peardock.boats"
|
|
},
|
|
"publisher": {
|
|
"@type": "Organization",
|
|
"name": "HoneyPeer, LLC",
|
|
"url": "https://peardock.boats"
|
|
},
|
|
"inLanguage": "en-US",
|
|
"primaryImageOfPage": {
|
|
"@type": "ImageObject",
|
|
"url": "https://peardock.boats/assets/brand/og-image.png",
|
|
"width": 1200,
|
|
"height": 630
|
|
},
|
|
"headline": "Documentation \u00b7 PearDock"
|
|
}
|
|
</script>
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
<link rel="stylesheet" href="/src/styles/global.css" />
|
|
<link rel="stylesheet" href="/src/styles/docs.css" />
|
|
</head>
|
|
<body>
|
|
<div class="bg-mesh" aria-hidden="true"></div>
|
|
<div data-nav data-prefix="../"></div>
|
|
|
|
<div class="docs-layout">
|
|
<aside class="docs-sidebar" data-docs-nav data-prefix="../"></aside>
|
|
<button type="button" class="docs-sidebar-toggle" aria-label="Docs menu">☰</button>
|
|
|
|
<article class="docs-main">
|
|
<h1>Documentation</h1>
|
|
<p class="docs-lead">
|
|
Everything you need to run, harden, and extend PearDock, from first public key to multi-operator fleets and Holesail tunnels.
|
|
Peer-to-peer by design: <strong>never open ports, expose Docker, or re-solve remote access</strong> for every host.
|
|
</p>
|
|
|
|
<div class="docs-cards">
|
|
<a class="docs-card" href="/learn/">
|
|
<span class="card-tag">Concepts</span>
|
|
<h3>How PearDock works</h3>
|
|
<p>Deep explainer: P2P identity, hole punching, control vs data plane, security, and fleet model.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/quickstart">
|
|
<span class="card-tag">Start here</span>
|
|
<h3>Quick start</h3>
|
|
<p>One-line install.sh, systemd server, desktop client, and first peer connection.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/architecture">
|
|
<span class="card-tag">Design</span>
|
|
<h3>Architecture</h3>
|
|
<p>HyperDHT control plane, protomux-rpc, handlers, and how Holesail sits beside RPC.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/operator">
|
|
<span class="card-tag">Production</span>
|
|
<h3>Operator guide</h3>
|
|
<p>systemd, roles, vault, feature flags, logging, compose stacks, backups.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/holesail">
|
|
<span class="card-tag">Tunnels</span>
|
|
<h3>Holesail</h3>
|
|
<p>Reach services over hs:// with no inbound firewall ports.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/security">
|
|
<span class="card-tag">Hardening</span>
|
|
<h3>Security model</h3>
|
|
<p>Admin seed proof, pd1 invites, roles, revoke, threat model, checklist.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/api">
|
|
<span class="card-tag">Reference</span>
|
|
<h3>RPC & API</h3>
|
|
<p>Method groups, pushes, roles, and protocol version negotiation.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/release">
|
|
<span class="card-tag">CI</span>
|
|
<h3>Releases</h3>
|
|
<p>Host matrix, bare-standalone, electron-forge, rolling tag, checksums.</p>
|
|
</a>
|
|
<a class="docs-card" href="/docs/faq">
|
|
<span class="card-tag">Help</span>
|
|
<h3>FAQ</h3>
|
|
<p>Common questions about Pear, keys, Gatekeeper, AGPL, and v1→v2.</p>
|
|
</a>
|
|
</div>
|
|
|
|
<h2>Install in one command</h2>
|
|
<div class="install-snippet">
|
|
<pre><code>curl -fsSL https://install.peardock.boats | bash</code></pre>
|
|
</div>
|
|
<p>
|
|
Interactive installer: server (Linux + systemd + docker group) or desktop client.
|
|
After the server starts, check <code>/opt/peardock/.env</code> for
|
|
<code>SERVER_PUBLIC_KEY</code> and <code>SERVER_SEED</code>, then connect from the desktop client
|
|
(public key = viewer, key + seed = admin, or a full <code>pd1.</code> invite for operators).
|
|
See <a href="/docs/quickstart">Quick start</a> and <a href="/download">Download</a>.
|
|
</p>
|
|
|
|
<h2>What is PearDock?</h2>
|
|
<p>
|
|
PearDock is <strong>decentralized Docker management</strong> on the modern Holepunch stack.
|
|
There is no central control plane and <strong>no need to open or expose ports</strong>.
|
|
The server listens on a HyperDHT keypair. Clients connect with its public key.
|
|
Transport is Noise-encrypted. The desktop UI is a Pear/Electron app that feels like a full
|
|
commercial Docker console, without SaaS tenancy or remote-access headaches.
|
|
</p>
|
|
|
|
<div class="table-wrap">
|
|
<table>
|
|
<thead>
|
|
<tr><th>Layer</th><th>Technology</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>Transport</td><td>HyperDHT (Noise-encrypted P2P)</td></tr>
|
|
<tr><td>RPC</td><td>protomux-rpc + compact-encoding JSON</td></tr>
|
|
<tr><td>Client</td><td>Pear desktop / Electron shell</td></tr>
|
|
<tr><td>Docker</td><td>dockerode</td></tr>
|
|
<tr><td>Port tunnels</td><td>Holesail (hs://)</td></tr>
|
|
<tr><td>License</td><td>AGPL-3.0 (same as Holesail)</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="docs-pager">
|
|
<span></span>
|
|
<a class="next" href="/docs/quickstart"><span>Next</span><strong>Quick start →</strong></a>
|
|
</div>
|
|
</article>
|
|
</div>
|
|
|
|
<div data-footer data-prefix="../"></div>
|
|
<script type="module" src="/src/js/site.js"></script>
|
|
</body>
|
|
</html>
|