492 lines
23 KiB
HTML
492 lines
23 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>PearDock · Decentralized Docker management</title>
|
|
<meta name="description" content="PearDock is peer-to-peer Docker management on HyperDHT. Never open ports, expose Docker, or wrestle with remote access again. Noise-encrypted RPC, desktop client, and Holesail tunnels." />
|
|
<meta name="keywords" content="PearDock, Docker, HyperDHT, P2P, Holesail, peer-to-peer, decentralized Docker, HoneyPeer" />
|
|
<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/" />
|
|
<link rel="alternate" hreflang="en" href="https://peardock.boats/" />
|
|
<link rel="alternate" hreflang="x-default" href="https://peardock.boats/" />
|
|
|
|
<!-- 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/" />
|
|
<meta property="og:title" content="PearDock · Decentralized Docker management" />
|
|
<meta property="og:description" content="PearDock is peer-to-peer Docker management on HyperDHT. Never open ports, expose Docker, or wrestle with remote access again. Noise-encrypted RPC, desktop client, and Holesail tunnels." />
|
|
<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="PearDock · Decentralized Docker management" />
|
|
<meta name="twitter:description" content="PearDock is peer-to-peer Docker management on HyperDHT. Never open ports, expose Docker, or wrestle with remote access again. Noise-encrypted RPC, desktop client, and Holesail tunnels." />
|
|
<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",
|
|
"@graph": [
|
|
{
|
|
"@type": "Organization",
|
|
"@id": "https://peardock.boats/#organization",
|
|
"name": "HoneyPeer, LLC",
|
|
"url": "https://peardock.boats",
|
|
"email": "[email protected]",
|
|
"address": {
|
|
"@type": "PostalAddress",
|
|
"addressRegion": "GA",
|
|
"addressLocality": "DeKalb County",
|
|
"addressCountry": "US"
|
|
},
|
|
"logo": {
|
|
"@type": "ImageObject",
|
|
"url": "https://peardock.boats/assets/logo/peardock-icon-512.png"
|
|
},
|
|
"sameAs": [
|
|
"https://git.ssh.surf/snxraven/peardock",
|
|
"https://join.discord-linux.com"
|
|
]
|
|
},
|
|
{
|
|
"@type": "WebSite",
|
|
"@id": "https://peardock.boats/#website",
|
|
"url": "https://peardock.boats",
|
|
"name": "PearDock",
|
|
"description": "PearDock is peer-to-peer Docker management on HyperDHT. Never open ports, expose Docker, or wrestle with remote access again. Noise-encrypted RPC, desktop client, and Holesail tunnels.",
|
|
"publisher": {
|
|
"@id": "https://peardock.boats/#organization"
|
|
},
|
|
"inLanguage": "en-US"
|
|
},
|
|
{
|
|
"@type": "SoftwareApplication",
|
|
"@id": "https://peardock.boats/#software",
|
|
"name": "PearDock",
|
|
"applicationCategory": "DeveloperApplication",
|
|
"operatingSystem": "Linux, macOS, Windows",
|
|
"description": "PearDock is peer-to-peer Docker management on HyperDHT. Never open ports, expose Docker, or wrestle with remote access again. Noise-encrypted RPC, desktop client, and Holesail tunnels.",
|
|
"url": "https://peardock.boats",
|
|
"downloadUrl": "https://peardock.boats/download",
|
|
"softwareVersion": "2.0",
|
|
"license": "https://www.gnu.org/licenses/agpl-3.0.html",
|
|
"offers": {
|
|
"@type": "Offer",
|
|
"price": "0",
|
|
"priceCurrency": "USD"
|
|
},
|
|
"author": {
|
|
"@id": "https://peardock.boats/#organization"
|
|
},
|
|
"image": "https://peardock.boats/assets/brand/og-image.png"
|
|
},
|
|
{
|
|
"@type": "WebPage",
|
|
"@id": "https://peardock.boats/#webpage",
|
|
"url": "https://peardock.boats/",
|
|
"name": "PearDock \u00b7 Decentralized Docker management",
|
|
"description": "PearDock is peer-to-peer Docker management on HyperDHT. Never open ports, expose Docker, or wrestle with remote access again. Noise-encrypted RPC, desktop client, and Holesail tunnels.",
|
|
"isPartOf": {
|
|
"@id": "https://peardock.boats/#website"
|
|
},
|
|
"about": {
|
|
"@id": "https://peardock.boats/#software"
|
|
},
|
|
"primaryImageOfPage": {
|
|
"@type": "ImageObject",
|
|
"url": "https://peardock.boats/assets/brand/og-image.png",
|
|
"width": 1200,
|
|
"height": 630
|
|
},
|
|
"inLanguage": "en-US"
|
|
}
|
|
]
|
|
}
|
|
</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/home.css" />
|
|
</head>
|
|
<body>
|
|
<div class="bg-mesh" aria-hidden="true"></div>
|
|
<div class="bg-grid" aria-hidden="true"></div>
|
|
|
|
<div data-nav data-prefix=""></div>
|
|
|
|
<main>
|
|
<!-- HERO -->
|
|
<section class="hero">
|
|
<div class="container-wide hero-inner">
|
|
<div class="reveal">
|
|
<div class="hero-badge">
|
|
<span class="dot"></span>
|
|
v2 · HyperDHT · AGPL-3.0
|
|
</div>
|
|
<h1>
|
|
Docker ops without<br />
|
|
<span class="gradient-text">opening ports</span>
|
|
</h1>
|
|
<p class="lead">
|
|
Peer-to-peer Docker management on the Holepunch stack.
|
|
Share a public key, then manage containers, stacks, and tunnels over encrypted P2P.
|
|
<strong>Never open ports, expose Docker to the internet, or worry about remote access again.</strong>
|
|
No SaaS. No VPN. No inbound firewall rules.
|
|
</p>
|
|
<div class="hero-actions">
|
|
<a class="btn btn-primary btn-lg" href="/download">Install & download</a>
|
|
<a class="btn btn-secondary btn-lg" href="/learn/">How it works</a>
|
|
<a class="btn btn-ghost btn-lg" href="/docs/quickstart">Quick start</a>
|
|
</div>
|
|
<div class="hero-meta">
|
|
<div class="hero-meta-item">
|
|
<strong>HyperDHT</strong>
|
|
<span>Transport</span>
|
|
</div>
|
|
<div class="hero-meta-item">
|
|
<strong>protomux-rpc</strong>
|
|
<span>RPC protocol</span>
|
|
</div>
|
|
<div class="hero-meta-item">
|
|
<strong>6 platforms</strong>
|
|
<span>Server + client</span>
|
|
</div>
|
|
<div class="hero-meta-item">
|
|
<strong>Holesail</strong>
|
|
<span>Port tunnels</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="hero-visual reveal">
|
|
<div class="hero-glow" aria-hidden="true"></div>
|
|
<div class="hero-frame" data-lightbox="/assets/screenshots/screenshot-0.png">
|
|
<img src="/assets/screenshots/screenshot-0.png" alt="PearDock desktop client" width="960" height="600" />
|
|
</div>
|
|
<ul class="hero-status-bar" aria-label="Product highlights">
|
|
<li class="hero-status-item">
|
|
<span class="chip-dot" aria-hidden="true"></span>
|
|
Peer online
|
|
</li>
|
|
<li class="hero-status-item">
|
|
<span class="status-ico" aria-hidden="true">🔐</span>
|
|
Noise · E2E encrypted
|
|
</li>
|
|
<li class="hero-status-item">
|
|
<span class="status-ico" aria-hidden="true">⇄</span>
|
|
No ports to open
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- TECH STRIP -->
|
|
<div class="tech-strip">
|
|
<div class="container tech-strip-inner">
|
|
<div class="tech-item"><span></span> HyperDHT</div>
|
|
<div class="tech-item"><span></span> protomux-rpc</div>
|
|
<div class="tech-item"><span></span> compact-encoding</div>
|
|
<div class="tech-item"><span></span> dockerode</div>
|
|
<div class="tech-item"><span></span> Holesail</div>
|
|
<div class="tech-item"><span></span> Pear / Electron</div>
|
|
<div class="tech-item"><span></span> Bare runtime</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- FEATURES -->
|
|
<section class="section" id="features">
|
|
<div class="container">
|
|
<div class="reveal">
|
|
<div class="section-label">Features</div>
|
|
<h2>Full Engine coverage.<br />Zero ports to open.</h2>
|
|
<p class="lead mt-4">
|
|
Containers, images, volumes, networks, stacks, Swarm, terminals, logs, GitOps,
|
|
registry vault, roles, and Holesail tunnels in a desktop console built for real ops.
|
|
Remote Docker without port forwards, public <code>dockerd</code>, or a permanent VPN.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="features-grid">
|
|
<article class="card reveal">
|
|
<div class="card-icon">⬡</div>
|
|
<h3>No ports. No VPN.</h3>
|
|
<p>Server identity is a HyperDHT keypair. Share the public key; peers holepunch. Nothing phones home, nothing listens on a public Docker port.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<div class="card-icon">🔐</div>
|
|
<h3>Noise encryption</h3>
|
|
<p>Every control connection is end-to-end encrypted. Roles (viewer, operator, admin), allowlists, invites, and audit logging help multi-operator fleets stay safe.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<div class="card-icon">🚢</div>
|
|
<h3>Docker ops console</h3>
|
|
<p>Deploy, recreate, prune, edit resources, browse volumes, manage stack env files, search Hub, handle secrets and configs, and run schedules. Built for real operators.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<div class="card-icon">⇄</div>
|
|
<h3>Holesail tunnels</h3>
|
|
<p>Reach published services over <code>hs://</code> keys with no inbound firewall rules. This is a separate data plane next to the RPC control plane.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<div class="card-icon">🖥️</div>
|
|
<h3>Desktop client</h3>
|
|
<p>Pear and Electron shell with multi-peer fleet, job tray, connection health, live stats, terminals, and OTA-ready packaging.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<div class="card-icon">📦</div>
|
|
<h3>Standalone binaries</h3>
|
|
<p>Cross-built server (Bare) and client (Electron) for linux, darwin, and win32 on x64 and arm64. Rolling releases come from CI.</p>
|
|
</article>
|
|
</div>
|
|
|
|
<div class="stats-row reveal">
|
|
<div class="stat"><strong>6</strong><span>64-bit host targets</span></div>
|
|
<div class="stat"><strong>v2</strong><span>HyperDHT + protomux-rpc</span></div>
|
|
<div class="stat"><strong>3</strong><span>ACL roles</span></div>
|
|
<div class="stat"><strong>0</strong><span>Ports to open</span></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ARCHITECTURE -->
|
|
<section class="section arch-section" id="architecture">
|
|
<div class="container">
|
|
<div class="reveal text-center" style="max-width: 640px; margin: 0 auto;">
|
|
<div class="section-label" style="justify-content: center;">Architecture</div>
|
|
<h2>Two planes. Still zero open ports.</h2>
|
|
<p class="lead" style="margin: 1rem auto 0;">
|
|
Control traffic uses HyperDHT and protomux-rpc. Service access uses Holesail.
|
|
Both are peer-to-peer. No inbound firewall rules. No public Docker API.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="arch-diagram reveal">
|
|
<div class="arch-node">
|
|
<div class="node-icon">⌘</div>
|
|
<h3>Desktop client</h3>
|
|
<p>Pear / Electron · multi-peer · jobs · terminals</p>
|
|
</div>
|
|
<div class="arch-arrow">
|
|
<svg viewBox="0 0 48 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 12h40M34 4l10 8-10 8"/></svg>
|
|
RPC
|
|
</div>
|
|
<div class="arch-node">
|
|
<div class="node-icon">◈</div>
|
|
<h3>peardock server</h3>
|
|
<p>HyperDHT listen · ACL · handlers · vault</p>
|
|
</div>
|
|
<div class="arch-arrow">
|
|
<svg viewBox="0 0 48 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 12h40M34 4l10 8-10 8"/></svg>
|
|
Socket
|
|
</div>
|
|
<div class="arch-node">
|
|
<div class="node-icon">🐳</div>
|
|
<h3>Docker Engine</h3>
|
|
<p>dockerode · compose · swarm</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="arch-details reveal">
|
|
<div class="arch-detail">
|
|
<h4>Control plane</h4>
|
|
<p>Handshake, list/start/stop containers, deploy stacks, logs, stats pushes, terminal streams, registry vault, and peer policy. Protocol version is negotiated on connect.</p>
|
|
</div>
|
|
<div class="arch-detail">
|
|
<h4>Data / tunnels</h4>
|
|
<p>Holesail L4 proxy binds published container or host ports to <code>hs://</code> capabilities. Opt out with <code>ENABLE_HOLESAIL=0</code>.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="text-center mt-6 reveal">
|
|
<a class="btn btn-secondary" href="/learn/">How PearDock works →</a>
|
|
<a class="btn btn-ghost" href="/docs/architecture">Architecture reference →</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- DEEP FEATURES -->
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="feature-row reveal">
|
|
<div class="feature-copy">
|
|
<div class="section-label">Fleet</div>
|
|
<h2>Multi-peer. Multi-host. One sidebar.</h2>
|
|
<p class="lead">Connect to many servers at once. Tag environments (prod / staging / lab). Switch contexts without losing job history or health signals.</p>
|
|
<ul class="feature-list">
|
|
<li>Peer disk cache under <code>~/.config/peardock</code></li>
|
|
<li>Connection health badge: latency, Docker status, role</li>
|
|
<li>Invites, revoke, allowlist for multi-operator setups</li>
|
|
<li>Registry credentials vault (AES-GCM from server seed)</li>
|
|
</ul>
|
|
</div>
|
|
<div class="feature-visual" data-lightbox="/assets/screenshots/screenshot-1.png">
|
|
<img src="/assets/screenshots/screenshot-1.png" alt="Fleet and peers UI" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="feature-row reverse reveal">
|
|
<div class="feature-copy">
|
|
<div class="section-label">Operations</div>
|
|
<h2>Deploy like you mean it.</h2>
|
|
<p class="lead">Compose stacks with env files and overrides. Recreate containers. Live resource editor. System prune. Scheduled maintenance. Volume file browser.</p>
|
|
<ul class="feature-list">
|
|
<li>GitOps-friendly stack deploy paths</li>
|
|
<li>Swarm services, nodes, secrets, configs, scale</li>
|
|
<li>Job tray with step logs for long-running ops</li>
|
|
<li>Destructive confirms and role-gated methods</li>
|
|
</ul>
|
|
</div>
|
|
<div class="feature-visual" data-lightbox="/assets/screenshots/screenshot-2.png">
|
|
<img src="/assets/screenshots/screenshot-2.png" alt="Deploy and operations UI" />
|
|
</div>
|
|
</div>
|
|
|
|
<div class="feature-row reveal">
|
|
<div class="feature-copy">
|
|
<div class="section-label">Tunnels</div>
|
|
<h2>Share a service, never open a port.</h2>
|
|
<p class="lead">
|
|
Create a Holesail tunnel from a container or host port. Copy the <code>hs://</code> URL.
|
|
Remote peers bind locally. You never punch a firewall hole or expose Docker to the internet.
|
|
</p>
|
|
<ul class="feature-list">
|
|
<li>No inbound port forwards. P2P hole punching instead.</li>
|
|
<li>Secure mode by default (capability ≠ raw listen key)</li>
|
|
<li>SSRF guard: loopback / allowlisted hosts only</li>
|
|
<li>Max concurrent tunnels · audited create/close</li>
|
|
</ul>
|
|
<a class="btn btn-ghost mt-4" href="docs/holesail.html">Holesail guide →</a>
|
|
</div>
|
|
<div class="feature-visual" data-lightbox="/assets/screenshots/screenshot-3.png">
|
|
<img src="/assets/screenshots/screenshot-3.png" alt="Holesail tunnels UI" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- SCREENSHOTS -->
|
|
<section class="section" id="screenshots" style="background: var(--bg-secondary); border-top: 1px solid var(--border);">
|
|
<div class="container-wide">
|
|
<div class="reveal">
|
|
<div class="section-label">Product</div>
|
|
<h2>See it in action</h2>
|
|
<p class="lead mt-4">Dark, dense, operator-first UI. Built for long sessions, not demos. Click any shot for a full-size view.</p>
|
|
</div>
|
|
<div class="shots-grid">
|
|
<div class="shot reveal" data-lightbox="/assets/screenshots/screenshot-0.png" role="button" tabindex="0" aria-label="Open PearDock overview screenshot">
|
|
<img src="/assets/screenshots/screenshot-0.png" alt="PearDock overview: dashboard and containers" loading="lazy" />
|
|
</div>
|
|
<div class="shot reveal" data-lightbox="/assets/screenshots/screenshot-4.png" role="button" tabindex="0" aria-label="Open PearDock detail view screenshot">
|
|
<img src="/assets/screenshots/screenshot-4.png" alt="PearDock detail view" loading="lazy" />
|
|
</div>
|
|
<div class="shot reveal" data-lightbox="/assets/screenshots/screenshot-5.png" role="button" tabindex="0" aria-label="Open PearDock logs and terminal screenshot">
|
|
<img src="/assets/screenshots/screenshot-5.png" alt="PearDock logs and terminal" loading="lazy" />
|
|
</div>
|
|
<div class="shot reveal" data-lightbox="/assets/screenshots/screenshot-2.png" role="button" tabindex="0" aria-label="Open PearDock deploy screenshot">
|
|
<img src="/assets/screenshots/screenshot-2.png" alt="PearDock deploy" loading="lazy" />
|
|
</div>
|
|
<div class="shot reveal" data-lightbox="/assets/screenshots/screenshot-1.png" role="button" tabindex="0" aria-label="Open PearDock peers screenshot">
|
|
<img src="/assets/screenshots/screenshot-1.png" alt="PearDock peers" loading="lazy" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- QUICK START TEASER -->
|
|
<section class="section" id="quickstart">
|
|
<div class="container">
|
|
<div class="reveal">
|
|
<div class="section-label">Quick start</div>
|
|
<h2>Install in one line. Connect in three steps.</h2>
|
|
<p class="lead mt-4">
|
|
No public IP gymnastics, no open ports, no VPN checklist.
|
|
Interactive installer pulls rolling binaries, wires Linux systemd + docker group for the server, or installs a desktop client.
|
|
</p>
|
|
</div>
|
|
<div class="card reveal install-card">
|
|
<pre><code>curl -fsSL https://install.peardock.boats | bash</code></pre>
|
|
<pre><code># Non-interactive
|
|
curl -fsSL https://install.peardock.boats | bash -s -- --server --yes
|
|
curl -fsSL https://install.peardock.boats | bash -s -- --client --yes</code></pre>
|
|
</div>
|
|
<div class="features-grid features-grid--steps">
|
|
<article class="card reveal">
|
|
<span class="badge mb-4">01</span>
|
|
<h3>Server online</h3>
|
|
<p class="mt-4">Run <code>systemctl status peardock</code>, then copy the <strong>public key</strong> from the journal.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<span class="badge mb-4">02</span>
|
|
<h3>Launch the client</h3>
|
|
<p class="mt-4">Open <code>peardock.app</code> (macOS) or <code>peardock-client</code> (Linux). Or download from <a href="download.html">Download</a>.</p>
|
|
</article>
|
|
<article class="card reveal">
|
|
<span class="badge mb-4">03</span>
|
|
<h3>Connect</h3>
|
|
<p class="mt-4">Paste the 64-character public key. Peers auto-reconnect every 5s if the link drops.</p>
|
|
</article>
|
|
</div>
|
|
<div class="text-center mt-6 reveal">
|
|
<a class="btn btn-primary" href="docs/quickstart.html">Full quick start guide</a>
|
|
<a class="btn btn-secondary" href="download.html">Install & download</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- CTA -->
|
|
<section class="cta-band">
|
|
<div class="container">
|
|
<div class="cta-card reveal">
|
|
<div class="badge mb-4">Open source · AGPL-3.0</div>
|
|
<h2>Remote Docker without remote-access drama.</h2>
|
|
<p class="lead">
|
|
Never open ports or expose your Engine again. Just keys and peers.
|
|
Grab rolling binaries for six hosts, or build from source.
|
|
</p>
|
|
<div class="cta-actions">
|
|
<a class="btn btn-primary btn-lg" href="download.html">Download peardock</a>
|
|
<a class="btn btn-secondary btn-lg" href="docs/index.html">Browse docs</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<div data-footer data-prefix=""></div>
|
|
|
|
<script type="module" src="/src/js/site.js"></script>
|
|
</body>
|
|
</html>
|