[grade=B urn:ump:ao3ntrxmuefz45gqwdqqv7o3x75wr3cykuhpe3iggoyfqqsofgqa] feat(site): lead with Shipdeck, retire Docker-deployment framing

- NEW FAQ entry: 'Can I deploy my own app from GitHub?' showcasing Shipdeck
  (clone -> detect stack -> build -> hardened systemd service -> Caddy/DNS/TLS
  -> live verify -> journal -> one-command rollback; optional commit pinning)
- hero/features/pricing/comparison/footer/about: Docker-as-mechanism copy
  replaced with Shipdeck-forward language; 'Built With' shows Shipdeck
  Deploy Engine; about stat 77 -> 78 (docs catalog pages = 78, consistent)
- truth-guarded: 78 templates no longer implied Shipdeck-backed; no
  push-to-deploy implication; installer line says 'runtime'; SEO keyword
  'docker' + app name 'Docker Mailserver' kept (factual)
- meta description updated with GitHub-deploy hook (3 sites: 77 -> 78)
Judge rounds C -> C -> B (0 blockers).
This commit is contained in:
Krystie committed 2026-10-11 22:07:19 -07:00
1 parent 77ef6a96f6
commit dd6f174a69
9 files changed
+42 -28

No files matched your search

+3 -3
View File
@@ -17,7 +17,7 @@ export default function AboutPage() {
</h1>
<p className="text-xl text-surface-300 max-w-2xl mx-auto">
DashCaddy was born from the frustration of managing dozens of
Docker containers, SSL certificates, and DNS records by hand. We
container configs, SSL certificates, and DNS records by hand. We
built the tool we wished existed — and then made it AI-powered.
</p>
</div>
@@ -130,7 +130,7 @@ export default function AboutPage() {
<div className="grid grid-cols-2 md:grid-cols-4 gap-6">
{[
{ name: "Caddy", role: "Reverse Proxy & SSL", icon: "🔒" },
{ name: "Docker", role: "Container Runtime", icon: "🐳" },
{ name: "Shipdeck", role: "Deploy Engine", icon: "🚢" },
{ name: "Node.js", role: "API Backend", icon: "🟢" },
{ name: "Technitium", role: "DNS Server", icon: "🌐" },
{ name: "Express", role: "REST API + WebSocket", icon: "⚡" },
@@ -159,7 +159,7 @@ export default function AboutPage() {
</h2>
<div className="grid grid-cols-2 md:grid-cols-4 gap-8">
{[
{ value: "77", label: "App Templates" },
{ value: "78", label: "App Templates" },
{ value: "3,000+", label: "Test Cases" },
{ value: "400+", label: "API Endpoints" },
{ value: "31", label: "Languages" },
+5 -4
View File
@@ -41,7 +41,7 @@ export default function FeaturesPage() {
id: 'app-deployment',
title: 'App Deployment',
description:
'Deploy from a library of 78 pre-configured Docker templates with one click. Automatic configuration, smart defaults, and service discovery that auto-detects running containers and lets you adopt them instantly. From zero to live in seconds.',
'Deploy from a library of 78 pre-configured templates with one click — automatic configuration, smart defaults, and service discovery that auto-detects running services and lets you adopt them instantly. From zero to live in seconds.',
icon: '🚀',
features: [
{ icon: '⚡', label: 'One-click deployment' },
@@ -125,12 +125,12 @@ export default function FeaturesPage() {
id: 'premium',
title: 'Premium Features',
description:
'Power features for production and multi-host deployments. Auto-Login SSO across your apps, multi-container Recipes, Docker Swarm orchestration, and Fleet Management to register remote instances with parallel health probes and multi-host deploy plans.',
'Power features for production and multi-host deployments. Auto-Login SSO across your apps, multi-service Recipes, Swarm orchestration, and Fleet Management to register remote instances with parallel health probes and multi-host Shipdeck deploy plans.',
icon: '⭐',
features: [
{ icon: '🔑', label: 'Auto-Login SSO', premium: true },
{ icon: '📚', label: 'Recipes (multi-container stacks)', premium: true },
{ icon: '🐳', label: 'Docker Swarm orchestration', premium: true },
{ icon: '🚢', label: 'Swarm orchestration', premium: true },
{ icon: '📡', label: 'Multi-Host Fleet Management', premium: true },
{ icon: '🔗', label: 'Secure Share Links (public + Tailscale)', premium: true },
{ icon: '🚀', label: 'Priority support', premium: true },
@@ -398,7 +398,8 @@ export default function FeaturesPage() {
{[
'Auto-Login SSO for deployed apps',
'Recipes — multi-container stack deployment',
'Docker Swarm orchestration',
'Shipdeck deploys \u2014 GitHub to production in one command',
'Swarm orchestration',
'Multi-Host Fleet Management (remote instances, parallel health probes, multi-host deploy plans)',
'Disaster Recovery (full-system backup w/ checksums)',
'Priority support',
+3 -3
View File
@@ -4,7 +4,7 @@ import "./globals.css";
export const metadata: Metadata = {
title: "DashCaddy - Self-Hosting Made Beautiful",
description:
"Deploy 77 Docker apps with one click. AI-powered self-hosting with automatic SSL, DNS, reverse proxy, security center, and fleet management.",
"Deploy 78 apps with one click \u2014 or ship your own code straight from GitHub with built-in Shipdeck deploys. AI-powered self-hosting with automatic SSL, DNS, reverse proxy, security center, and fleet management.",
keywords: [
"self-hosting",
"docker",
@@ -19,7 +19,7 @@ export const metadata: Metadata = {
openGraph: {
title: "DashCaddy - Self-Hosting Made Beautiful",
description:
"Deploy 77 Docker apps with one click. AI-powered self-hosting with automatic SSL, DNS, and reverse proxy.",
"Deploy 78 apps with one click \u2014 or ship your own code straight from GitHub with built-in Shipdeck deploys. AI-powered self-hosting with automatic SSL, DNS, and reverse proxy.",
url: "https://dashcaddy.net",
siteName: "DashCaddy",
type: "website",
@@ -28,7 +28,7 @@ export const metadata: Metadata = {
card: "summary_large_image",
title: "DashCaddy - Self-Hosting Made Beautiful",
description:
"Deploy 77 Docker apps with one click. AI-powered self-hosting.",
"Deploy 78 apps with one click. AI-powered self-hosting, GitHub-to-production deploys with Shipdeck.",
},
alternates: {
types: { "application/rss+xml": "https://dashcaddy.net/feed.xml" },
+4 -4
View File
@@ -46,7 +46,7 @@ export default function Home() {
</h1>
<p className="text-xl text-surface-300 max-w-lg leading-relaxed">
Just say &ldquo;deploy Plex&rdquo; — DashCaddy&rsquo;s AI Intent Router handles the rest.
Deploy Docker apps with one click, automatic SSL, DNS, and reverse proxy.
Deploy apps with one click, automatic SSL, DNS, and reverse proxy — or ship your own code straight from GitHub with built-in Shipdeck deploys.
78 templates, fleet management, and an MCP control plane for AI assistants.
Everything you need for self-hosted perfection.
</p>
@@ -213,12 +213,12 @@ export default function Home() {
<FeatureCard
icon="🚀"
title="78 App Templates"
description="Choose from 78 pre-configured Docker app templates. Deploy your favorite applications instantly without manual configuration."
description="Choose from 78 pre-configured app templates with smart defaults — deploy your favorite applications in one click, no manual configuration, no compose files to write."
/>
<FeatureCard
icon="🛡️"
title="Security Center"
description="Unified event pipeline aggregates Docker, Caddy, DNS, Tailscale, audit log, and health checker events into one real-time security dashboard — with per-IP perimeter analytics and automatic PII masking on every log."
description="Unified event pipeline aggregates deploys, Caddy, DNS, Tailscale, audit log, and health checker events into one real-time security dashboard — with per-IP perimeter analytics and automatic PII masking on every log."
/>
<FeatureCard
icon="🖥️"
@@ -364,7 +364,7 @@ export default function Home() {
Feature
</th>
<th className="px-6 py-4 text-center text-sm font-semibold text-surface-300 bg-surface-900/50">
Manual Docker Setup
Manual Setup
</th>
<th className="px-6 py-4 text-center text-sm font-semibold text-brand-400 bg-surface-900/70">
DashCaddy
+1 -1
View File
@@ -116,7 +116,7 @@ export default function PricingPage() {
'Everything in Core, plus:',
'Auto-Login SSO for deployed apps',
'Recipes — multi-container stack deployment',
'Swarm — Docker Swarm multi-node orchestration',
'Swarm — multi-node orchestration',
'Multi-Host Fleet Management — remote instance control',
'Workflow Automation — scripted multi-step operations',
'Scheduled Backups — automated backup schedules (manual one-click backup stays free)',
+1 -1
View File
@@ -21,7 +21,7 @@ const rows: Capability[] = [
values: { 'Portainer': false, 'CasaOS': false, 'YunoHost': false, 'Unraid': false, 'Cosmos Cloud': false },
},
{
feature: 'One-click Docker templates',
feature: 'One-click app templates',
dashcaddy: '78 apps',
values: { 'Portainer': 'Manual', 'CasaOS': '~120 apps', 'YunoHost': '~500 apps', 'Unraid': 'Community', 'Cosmos Cloud': '~30 apps' },
},
+23 -10
View File
@@ -13,14 +13,27 @@ const faqs: Faq[] = [
question: 'Is DashCaddy really free?',
answer: (
<>
Yes. The core platform — Docker deployment, Caddy + DNS + TLS automation, the full 78-app template catalog,
Yes. The core platform — one-click app deployment, Caddy + DNS + TLS automation, the full app template catalog,
AI Intent Router, MCP Server, Security Center, monitoring, backups, REST API, plugin system, and 31-language
i18n — is free forever. Premium adds a focused set of advanced features (SSO, Recipes, Docker Swarm,
Multi-Host Fleet) available as a fixed-duration license. The license runs for the duration you buy
i18n — is free forever. Premium adds a focused set of advanced features (SSO, Recipes, Swarm orchestration,
Fleet Management with Shipdeck deploys, workflow automation, scheduled backups)
available as a fixed-duration license. The license runs for the duration you buy
and then expires; you re-purchase manually to renew.
</>
),
},
{
question: 'Can I deploy my own app from GitHub?',
answer: (
<>
That&rsquo;s what <strong>Shipdeck</strong> is for — DashCaddy&rsquo;s built-in deploy engine. Point it at
your GitHub repo and DashCaddy clones it, detects your stack (Go, Node, Python…), builds it, installs it as a
managed systemd service, wires up the Caddy route, DNS record, and TLS certificate, and <em>verifies the live
site</em> before reporting success. Every deploy is journaled, and rollback swaps back to the previous release
in one command. For fully reproducible builds you can pin an exact commit in the Shipdeckfile. No YAML wrangling, no rebuild loops — your code on GitHub, live on your host.
</>
),
},
{
question: 'Where does my data live?',
answer: (
@@ -33,12 +46,12 @@ const faqs: Faq[] = [
),
},
{
question: 'What if I already have Docker containers running?',
question: 'What if I already have services running?',
answer: (
<>
Use <strong>Service Discovery</strong>. DashCaddy scans the Docker socket, lists every running container, and
Use <strong>Service Discovery</strong>. DashCaddy scans the host&rsquo;s running containers, lists each one, and
lets you adopt any of them with one click. It adds the Caddy reverse-proxy route, DNS record, and TLS
certificate — without touching the running container. Your existing data, volumes, and network config stay
certificate — without touching the running service. Your existing data, volumes, and network config stay
exactly as they are.
</>
),
@@ -69,7 +82,7 @@ const faqs: Faq[] = [
question: 'What happens to my services if I uninstall DashCaddy?',
answer: (
<>
By default, the uninstall stops the DashCaddy container but leaves your Docker containers and volumes
By default, the uninstall stops the DashCaddy service but leaves your deployed apps and their volumes
untouched. If you want a clean removal, the uninstaller has a <code>--purge</code> flag that also deletes
the DashCaddy config and data directories. Either way, your services keep running until you stop them.
</>
@@ -79,7 +92,7 @@ const faqs: Faq[] = [
question: 'How does Premium compare to other paid dashboards?',
answer: (
<>
Premium is a fixed-duration license. $99 covers a full year (365 days) of SSO, Recipes, Docker Swarm, and
Premium is a fixed-duration license. $99 covers a full year (365 days) of SSO, Recipes, Swarm orchestration, and
Fleet Management on one machine. The license expires at the end of its term and you purchase a new one
to renew. There&rsquo;s no per-user fee and no per-app fee. The free tier already covers everything a single
host needs, so Premium only makes sense if you specifically want SSO across deployed apps,
@@ -91,8 +104,8 @@ const faqs: Faq[] = [
question: 'Is DashCaddy open source?',
answer: (
<>
DashCaddy is proprietary software, but it&rsquo;s built on a fully open-source stack — Caddy, Docker, Node.js,
Express, Technitium DNS, Tailscale. The AI Intent Router, MCP Server, plugin system, and Security Center are
DashCaddy is proprietary software, but it&rsquo;s built on a fully open-source stack — Caddy, Node.js,
Express, Technitium DNS, Tailscale, and OCI image standards. The AI Intent Router, MCP Server, plugin system, and Security Center are
all built on open standards. You get vendor-friendly source-available documentation, and your data never
leaves your hardware.
</>
+1 -1
View File
@@ -72,7 +72,7 @@ export default function Footer() {
/>
</Link>
<p className="text-surface-400 text-sm leading-relaxed mb-4">
Self-hosted Docker dashboard with automatic SSL, DNS, and reverse proxy. Making self-hosting beautiful and effortless.
The self-hosting dashboard with automatic SSL, DNS, and reverse proxy — one-click app deploys, plus GitHub-to-production with built-in Shipdeck. Making self-hosting beautiful and effortless.
</p>
<div className="flex items-center gap-4">
{socialLinks.map((link: any) => (
+1 -1
View File
@@ -59,7 +59,7 @@ export default function InstallCommand() {
Live in <span className="text-brand-400">60 seconds</span>
</h2>
<p className="mt-4 text-lg text-surface-400 max-w-2xl mx-auto">
Pick your mode, paste one command, and the installer handles Docker, Caddy, the wizard, and your first login.
Pick your mode, paste one command, and the installer handles the runtime, Caddy, the wizard, and your first login.
</p>
</div>