diff --git a/.env.example b/.env.example index 42ae3a4..d4bf2ef 100644 --- a/.env.example +++ b/.env.example @@ -1,16 +1,30 @@ # Stripe Configuration # Get your keys from https://dashboard.stripe.com/apikeys -STRIPE_SECRET_KEY=sk_test_your_secret_key_here -NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_your_publishable_key_here +STRIPE_SECRET_KEY=sk_live_your_secret_key_here +NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_your_publishable_key_here # Stripe Webhook Secret # Get this from https://dashboard.stripe.com/webhooks after creating an endpoint STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here -# Stripe Price IDs -# Create these in your Stripe Dashboard under Products > Pricing +# Stripe Price IDs (one per plan duration) +# Create these Products + Prices in your Stripe Dashboard: +# - DashCaddy Premium Monthly ($25/mo) +# - DashCaddy Premium Quarterly ($50/3mo) +# - DashCaddy Premium Semi-Annual ($65/6mo) +# - DashCaddy Premium Annual ($99/yr) STRIPE_PRICE_MONTHLY=price_your_monthly_price_id -STRIPE_PRICE_YEARLY=price_your_yearly_price_id +STRIPE_PRICE_QUARTERLY=price_your_quarterly_price_id +STRIPE_PRICE_SEMIANNUAL=price_your_semiannual_price_id +STRIPE_PRICE_YEARLY=price_your_annual_price_id + +# Stripe Payment Links (for static export checkout) +# Create these in Stripe Dashboard โ Payment Links +# Then paste the URLs here and in src/app/pricing/page.tsx (STRIPE_LINKS) +STRIPE_PAYMENT_LINK_MONTHLY=https://buy.stripe.com/REPLACE_MONTHLY_LINK +STRIPE_PAYMENT_LINK_QUARTERLY=https://buy.stripe.com/REPLACE_QUARTERLY_LINK +STRIPE_PAYMENT_LINK_SEMIANNUAL=https://buy.stripe.com/REPLACE_SEMIANNUAL_LINK +STRIPE_PAYMENT_LINK_ANNUAL=https://buy.stripe.com/REPLACE_ANNUAL_LINK # App URL NEXT_PUBLIC_APP_URL=https://dashcaddy.net diff --git a/public/images/logo-dark.jpg b/public/images/logo-dark.jpg new file mode 100644 index 0000000..2aea863 Binary files /dev/null and b/public/images/logo-dark.jpg differ diff --git a/public/images/logo-light.jpg b/public/images/logo-light.jpg new file mode 100644 index 0000000..b3b060f Binary files /dev/null and b/public/images/logo-light.jpg differ diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index ba676f8..e4f08cc 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -18,7 +18,7 @@ export default function AboutPage() {
DashCaddy was born from the frustration of managing dozens of Docker containers, SSL certificates, and DNS records by hand. We - built the tool we wished existed. + built the tool we wished existed โ and then made it AI-powered.
@@ -45,14 +45,16 @@ export default function AboutPage() {DashCaddy was built to solve this. One click to deploy an app. SSL, DNS, and reverse proxy configuration happen automatically. - A beautiful dashboard to monitor everything. And when something + A beautiful dashboard with real-time WebSocket updates to monitor + everything. Natural language AI commands so you can just say + “deploy Plex” and it happens. And when something goes wrong, you know about it immediately — not when a family member texts you that Plex is down.
We believe self-hosting should be accessible to everyone, not just people who enjoy writing YAML at 2 AM. DashCaddy makes it - beautiful and effortless. + beautiful, effortless, and intelligent.
@@ -67,7 +69,7 @@ export default function AboutPage() {{stat.label}
+- Install DashCaddy and start deploying services today. + Install DashCaddy and start deploying services today. Free forever.
+ All platform operations are available under /api/v1/. The API covers service management,
+ app deployment, DNS automation, Caddy reverse-proxy integration, certificate workflows, health and status
+ reporting, user/admin operations, and backup/restore. The repository ships with an OpenAPI definition so the
+ public contract can mature into a full reference.
+
{`# List all services
+curl -H "Authorization: Bearer $TOKEN" \\
+ https://dashcaddy-host/api/v1/services
+
+# Deploy from a template
+curl -X POST -H "Authorization: Bearer $TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{"template":" jellyfin","name":"media","hostname":"media.lab"}' \\
+ https://dashcaddy-host/api/v1/services`}
+
+ + For programmatic automation, DashCaddy ships a typed JavaScript SDK with 39 methods and full + TypeScript types. It mirrors the REST API and handles authentication, retries, and structured + error handling for you. +
+{`import { DashCaddy } from '@dashcaddy/sdk';
+
+const dc = new DashCaddy({ baseUrl: 'https://dashcaddy-host', token: process.env.DC_TOKEN });
+
+// List services
+const services = await dc.services.list();
+
+// Deploy a template
+const svc = await dc.services.deploy({
+ template: 'jellyfin',
+ name: 'media',
+ hostname: 'media.lab',
+});
+
+// Adopt a discovered container
+await dc.services.adopt({ containerId: 'abc123', hostname: 'wiki.lab' });`}
+
+ + The API and SDK return 80 structured error codes rather than opaque messages, so your + automation can branch on specific failure conditions (DNS token invalid, Caddy unreachable, license expired, + etc.) instead of parsing strings. +
+ ++ The AI Intent Router accepts natural-language commands and translates them into real + infrastructure actions through the same API. This turns ad-hoc operator requests into reproducible, logged + operations. +
+{`# Natural-language operation
+POST /api/v1/ai/intent
+{ "message": "Restart the media server and check its health" }`}
+
+ + The built-in MCP (Model Context Protocol) Server exposes DashCaddy operations as tools that + AI assistants and external automation can call directly. Connect your assistant to the MCP endpoint and it can + list services, deploy templates, manage DNS, and inspect health โ all through the standard MCP tool interface. +
+ ++ The dashboard subscribes to a WebSocket channel for live updates: service health changes, + container starts/stops, deployment progress, and fleet events arrive in real time without polling. You can + consume the same channel in your own dashboards or automation. +
+ +
+ DashCaddy exposes a Prometheus-format metrics endpoint at /metrics for service health, container
+ status, request counts, and system indicators. Scrape it with Prometheus and visualize in Grafana.
+
{`# Health and readiness probes
+GET /healthz # liveness โ is the process up?
+GET /readyz # readiness โ is it ready to serve (deps connected)?`}
+
+ + DashCaddy includes a plugin/extension system with hooks into the deployment, DNS, proxy, and + monitoring pipelines. Write extensions to react to service lifecycle events, inject custom Caddy directives, + emit additional metrics, or integrate third-party tools โ without forking the core. +
- DashCaddy is more than a dashboard because it can execute the infrastructure chain around a service, not just show service state after the fact. -
- -- The repo already includes an OpenAPI file, which means the public API docs can mature into a proper reference section as the external contract is stabilized. + DashCaddy can execute the full infrastructure chain around a service, not just report its state after the + fact. Between the REST API, the JS SDK, the AI Intent Router, MCP, WebSockets, Prometheus, and the plugin + system, you have every surface you need to make DashCaddy a first-class citizen of your automation stack.
When you deploy a service, DashCaddy automates the full infrastructure chain:
+ The template library covers the most popular self-hosted applications โ media servers, dashboards, + databases, note apps, automation tools, and more. Each template bundles sane defaults for ports, + volumes, environment variables, and the recommended subdomain. +
+ Already running Docker containers? DashCaddy's Service Discovery scans the host and lists + every running container, marking any that are not yet managed. +
++ For custom images or apps not in the template library, define the service by hand: +
++ The magic is that the three layers are coordinated as a single transaction rather than three manual steps: +
++ If any layer is not configured (for example, no DNS integration), DashCaddy simply skips that step and + the service still deploys with whatever layers are available. +
+- Verify the client trusts the DashCA root certificate, the internal domain resolves properly, and the route is reachable on the network you intend to use. + For services that should stay on the local network, verify three things:
+- Debug in order: backend process, reverse proxy, DNS, TLS trust, and finally dashboard/API state. + Debug in order, layer by layer: backend container, backend port reachability, reverse-proxy route, DNS + resolution, TLS trust, then dashboard/API state. See the Troubleshooting + guide for the full checklist.
Before installing, make sure the host has the following:
- DashCaddy includes a dedicated installer intended to walk users through dependency checks, file deployment,
- configuration generation, and first launch.
+ The fastest path to a running DashCaddy is the bundled start.sh script. It performs environment
+ checks, pulls the required containers, generates configuration, and brings the stack up.
+
{`# Clone the repository
+git clone https://github.com/samiahmed7777/dashcaddy.git
+cd dashcaddy
+
+# Make the launcher executable and run it
+chmod +x start.sh
+./start.sh`}
+ + The script is idempotent โ re-running it will reconcile the stack rather than clobber an existing install. +
+ ++ For users who prefer a walk-through, DashCaddy includes a dedicated installer that steps through: +
++ On first launch the dashboard opens to the Smart Defaults Wizard. It surveys your host and + pre-fills sensible choices so you can go from install to a working deployment in minutes: +
++ Every default is editable โ the wizard simply gives you a known-good starting point instead of a blank slate.
- Manual setup is best when you want direct control over paths, services, Caddy, DNS integration, and deployment layout. + If you want direct control over paths, services, Caddy, and DNS integration, you can deploy manually:
npm ci).npm run start or via your process manager).After the stack is up, verify each layer:
/healthz and /readyz./metrics (if scraping is enabled).+ Once install checks pass, head to the Deploy Your First Service guide to + bring your first application online. +
- Docker is the runtime foundation for deployment workflows, container lifecycle actions, and app-template based launches. + Docker (and Docker Compose) is the runtime foundation for deployment workflows, container lifecycle actions, + service discovery, and template-based launches. DashCaddy talks to the Docker daemon to start, stop, restart, + inspect, and adopt containers, and to deploy the 76+ one-click application templates. Optional Docker Swarm + support (Premium) extends the same model across multiple nodes.
-- Caddy is the reverse proxy and HTTPS publication layer. DashCaddy relies on the Caddy Admin API to manage routes and exposure. + Caddy is the reverse proxy and automatic HTTPS layer. DashCaddy communicates with the Caddy Admin API + to create, update, and remove routes, and to trigger certificate issuance. Caddy's built-in internal CA + auto-generates and renews certificates for every published service. +
+ ++ Instead of hand-editing Caddyfiles, DashCaddy exposes a visual Caddyfile-as-Code builder. You + describe the desired route โ hostname, upstream, TLS options, headers, redirects โ and DashCaddy generates the + valid Caddy configuration and applies it atomically through the Admin API. Configuration is versioned and + reviewable, so changes are auditable and reversible.
- Technitium DNS is the documented DNS automation target for record creation and removal. + Technitium DNS is the DNS automation target for record creation and removal. When you deploy or adopt a service, + DashCaddy creates the corresponding A/CNAME record through the Technitium API so the new hostname resolves + immediately. Removing a service cleans up the record automatically.
-- DashCA is the certificate distribution system that makes internal HTTPS practical by letting users trust the local CA across devices. + DashCA is the certificate distribution system that makes internal HTTPS practical. Caddy's internal CA + issues certificates automatically; DashCA provides the distribution page where you download the root + certificate and install it as a trusted CA across your devices. Once trusted, every internal service is served + over valid HTTPS with no browser warnings.
-- DashCaddy also fits well into private/internal access patterns where services should not be directly exposed to the public internet. + DashCaddy fits naturally into private access patterns with Tailscale. Services can be published + only on a Tailnet, keeping them off the public internet while still benefiting from DashCaddy's DNS, proxy, + and TLS automation. This is ideal for home labs and internal team tools.
+ +
+ DashCaddy exports metrics in Prometheus format at /metrics, including service health, container
+ status, request counts, and system indicators. Point your Prometheus scraper at the endpoint and build
+ Grafana dashboards on top for long-term observability and alerting.
+
{`# prometheus.yml scrape config
+scrape_configs:
+ - job_name: 'dashcaddy'
+ metrics_path: /metrics
+ static_configs:
+ - targets: ['dashcaddy-host:3000']`}
+
+ + The built-in MCP Server exposes DashCaddy operations to AI assistants and external automation. + Combined with the AI Intent Router, you can issue natural-language commands + (“restart the media server”, “deploy the postgres template”) and have DashCaddy execute + the real infrastructure action. See the API and Automation guide for details. +
+ +- DashCaddy brings together the layers that self-hosters usually wire by hand: Docker deployment, - reverse proxy management through Caddy, DNS automation through Technitium DNS, internal certificate - distribution through DashCA, service monitoring, and operational controls. + DashCaddy brings together the layers that self-hosters usually wire by hand โ Docker deployment, + Caddy reverse proxy, Technitium DNS automation, internal certificate distribution, service monitoring, + and operational tooling โ and unifies them behind a single, cohesive control plane.
- The goal is simple: make running self-hosted services feel cohesive instead of fragmented. + Instead of editing a dozen config files and praying the layers agree, you deploy a service once and + DashCaddy wires the runtime, the proxy route, the DNS record, the TLS certificate, and the health + checks for you. The goal is simple: make running self-hosted services feel like one product instead + of six fragile integrations.
++ DashCaddy is a production-grade platform built on a layered stack: +
+/api/v1/ for deployments, DNS, reverse proxy, certificates, monitoring, and operational tooling.- DashCaddy is built for self-hosters, home lab operators, small teams, and administrators who want one place to deploy apps, - publish them cleanly, trust internal HTTPS, and keep service infrastructure under control. -
+- DashCaddy is proprietary software and intellectual property of samiahmed7777. Public-facing documentation and branding - should reflect that commercial/proprietary positioning rather than an open-source default. + DashCaddy is proprietary software and intellectual property of samiahmed7777. Public-facing + documentation and branding reflect that commercial/proprietary positioning rather than an open-source default. + The core platform is fully useful without a license; Premium unlocks a focused set of advanced orchestration features.
One Premium tier, subscription billing, no hidden upsells:
- Subscriptions only, one Premium tier, one active machine at a time, 7-day grace period, cancel at period end, and no free trial. + Longer commitments are rewarded: the 12-month plan works out to roughly $8.25/month versus $25/month for a + single month.
-- DashCaddyโs app-side licensing is already built around an external validation and deactivation service, rather than unlimited static license reuse. + DashCaddy's licensing is built around an external validation and deactivation service, + not unlimited static license reuse. On launch and periodically thereafter, the platform validates the license + against the licensing server. This keeps licenses tied to a single active machine and supports clean + deactivation when you move hosts.
+ ++ Start every investigation with the built-in probes โ they tell you whether the platform itself is healthy and + whether its dependencies are wired up: +
+/healthz โ liveness. Returns 200 if the DashCaddy process is up./readyz โ readiness. Returns 200 only when DashCaddy can serve traffic, including connectivity to Docker, Caddy, and DNS where configured.{`curl -s -o /dev/null -w "%{http_code}" https://dashcaddy-host/healthz
+curl -s -o /dev/null -w "%{http_code}" https://dashcaddy-host/readyz`}
+
+ If /healthz fails, the DashCaddy process itself is down. If /healthz passes but
+ /readyz fails, a dependency (Docker socket, Caddy Admin API, or Technitium DNS) is unreachable.
+
Work bottom-up through the stack so you isolate the failing layer:
{`# Verify resolution against the Technitium resolver directly
+dig @technitium-host media.lab
+nslookup media.lab technitium-host`}
+
+ NET::ERR_CERT_AUTHORITY_INVALID.docker logs caddy or your Caddy service logs โ for upstream connection errors.docker ps -a and docker logs <container> for crash loops or misconfiguration.- Most DashCaddy problems are really one dependency layer failing while the others are healthy. Debugging that dependency chain is the right way to recover quickly. + Most DashCaddy problems are really one dependency layer failing while the others are healthy. Use the health + endpoints to localize, then walk the debug order. Fixing the right layer first is always faster than + reloading the whole stack.
- Everything you need to manage Docker applications professionally. From deployment to monitoring, SSL to securityโit's all included. + From AI-powered deployment to enterprise security, real-time monitoring, and multi-host fleet management โ DashCaddy brings the entire self-hosting stack under one roof.
- Start with the free tier and upgrade anytime when you need advanced features. +
+ DashCaddy speaks AI natively. Type what you want, or let your favorite assistant do it.
+ Skip the menus. Just type a command in plain English and DashCaddy figures out the right actions. +
++ DashCaddy runs as a Model Context Protocol server, so AI assistants can manage your homelab directly. +
++ A powerful free tier for everyone. Premium unlocks multi-host, SSO, and more. +
+Everything to self-host a single node.
+- Get advanced features designed for power users and production deployments. Auto-Login SSO, stack recipes, Docker Swarm orchestration, and priority support. -
- -Deploy apps with automatic single sign-on integration.
-Deploy multi-container stacks with one click.
-Orchestrate multi-node clusters effortlessly.
-Get faster responses from our support team.
-For production, multi-host, and teams.
+ Everything in Free, plus: +
+- Deploy Docker apps with one click. Automatic SSL certificates, DNS management, and reverse proxy configurationโeverything you need for self-hosted perfection. + Just say “deploy Plex” โ DashCaddy’s AI Intent Router handles the rest. + Deploy Docker apps with one click, automatic SSL, DNS, and reverse proxy. + 76+ templates, fleet management, and an MCP control plane for AI assistants. + Everything you need for self-hosted perfection.
Trusted by self-hosting enthusiasts
5 languages incl. Arabic (RTL)
+- Everything you need to manage your self-hosted Docker applications professionally. + AI-native self-hosting โ from one-click deploys to fleet management and a full MCP control plane.
- Install DashCaddy on your server using the guided installer or manual setup. Takes just a few minutes. + Install DashCaddy, then answer one question โ “What do you want to self-host?” The Smart Defaults Wizard matches your hardware profile and configures everything automatically.
- Click "Deploy" on any app template. SSL certificates and DNS records are automatically configured. + Click “Deploy” on any template, or just ask the AI Intent Router in plain English. SSL certificates and DNS records are automatically configured.
- Your app is live with SSL and DNS configured. Monitor health, manage containers, and backup from the dashboard. + Your app is live with SSL and DNS configured. Monitor health in real time, manage containers, and run one-click backups from the dashboard.
- Compare the pain of manual setup versus the simplicity of DashCaddy. + Compare the pain of manual setup versus the power of an AI-native self-hosting platform.
- What takes days of manual configuration takes minutes with DashCaddy's automated setup and configuration. + What takes days of manual configuration takes minutes with DashCaddy’s Smart Defaults Wizard and automated setup.
@@ -412,7 +509,7 @@ export default function Home() { Enterprise Security- TOTP 2FA, encrypted credentials, audit logging, and role-based access control built in. + TOTP 2FA, magic links, encrypted credentials, audit logging, and a unified Security Center โ built in.
@@ -426,7 +523,7 @@ export default function Home() { Scale Confidently- Real-time monitoring and health checks give you visibility into your infrastructure 24/7. + Real-time WebSocket monitoring, Prometheus metrics export, and multi-host fleet management give you visibility across your infrastructure 24/7.
@@ -440,7 +537,7 @@ export default function Home() { Never Lose Data- One-click backup and restore functionality ensures your data is always protected and recoverable. + Disaster recovery with full-system backups, SHA-256 checksum verification, and one-click restore keeps your data protected.
@@ -449,6 +546,55 @@ export default function Home() { + {/* Developer & Integrations Section */} ++ Everything you need to automate, integrate, and extend DashCaddy. +
+39 methods, zero-dep
+Metrics export
+Visual proxy builder
+5 languages, RTL
+Extend everything
+Full type definitions
+- Join developers and self-hosting enthusiasts who've simplified their infrastructure management with DashCaddy. + Join developers and self-hosting enthusiasts who’ve simplified their infrastructure management with DashCaddy’s AI-native platform.
Built With Care
+Intent Router + MCP
Community Support
+Real-Time Monitoring
- The core platform works without a license. Premium unlocks advanced orchestration when you need it. + The core platform is completely free โ including AI commands, Security Center, and all 76+ app templates. Premium unlocks advanced orchestration when you need it.
Everything you need to deploy and manage self-hosted services.
+Everything you need to deploy, manage, and secure self-hosted services โ with AI built in.
No license required
+No license required, no credit card
Includes
-Everything included โ no limits
+