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() {
{[ { - icon: "\U0001f512", + icon: "๐Ÿ”’", title: "Proprietary & Polished", description: "DashCaddy is proprietary software built with care. The core platform is free to use, with Premium features for advanced orchestration.", @@ -79,10 +81,10 @@ export default function AboutPage() { "DashCaddy runs entirely on your hardware. No cloud dependency, no telemetry, no phoning home. Your data never leaves your network.", }, { - icon: "๐Ÿ› ๏ธ", - title: "Built to Last", + icon: "๐Ÿค–", + title: "AI-Native", description: - "We use proven technologies โ€” Caddy, Docker, Node.js. No bleeding-edge frameworks that break every six months. Stable, reliable, boring (in the best way).", + "From the AI Intent Router to MCP server integration, DashCaddy is built for the AI era. Control your homelab with natural language or let AI assistants manage it for you.", }, ].map((value) => (
{[ - { - name: "Caddy", - role: "Reverse Proxy & SSL", - icon: "๐Ÿ”’", - }, - { - name: "Docker", - role: "Container Runtime", - icon: "๐Ÿณ", - }, - { - name: "Node.js", - role: "API Backend", - icon: "๐ŸŸข", - }, - { - name: "Technitium", - role: "DNS Server", - icon: "๐ŸŒ", - }, + { name: "Caddy", role: "Reverse Proxy & SSL", icon: "๐Ÿ”’" }, + { name: "Docker", role: "Container Runtime", icon: "๐Ÿณ" }, + { name: "Node.js", role: "API Backend", icon: "๐ŸŸข" }, + { name: "Technitium", role: "DNS Server", icon: "๐ŸŒ" }, + { name: "Express", role: "REST API + WebSocket", icon: "โšก" }, + { name: "MCP", role: "AI Protocol Layer", icon: "๐Ÿค–" }, + { name: "Stripe", role: "Payment Processing", icon: "๐Ÿ’ณ" }, + { name: "Jest", role: "Testing (1400+ tests)", icon: "โœ…" }, ].map((tech) => (
+ {/* Stats */} +
+
+

+ By the Numbers +

+
+ {[ + { value: "76+", label: "App Templates" }, + { value: "1400+", label: "Test Cases" }, + { value: "39", label: "SDK Methods" }, + { value: "5", label: "Languages" }, + ].map((stat) => ( +
+
+ {stat.value} +
+

{stat.label}

+
+ ))} +
+
+
+ {/* Contact / Support */}
@@ -173,7 +187,7 @@ export default function AboutPage() { Ready to simplify your homelab?

- Install DashCaddy and start deploying services today. + Install DashCaddy and start deploying services today. Free forever.

-

What the API is for

-
    -
  • service management
  • -
  • app deployment
  • -
  • DNS automation
  • -
  • Caddy integration
  • -
  • certificate-related workflows
  • -
  • health and status reporting
  • -
+

REST API

+

+ 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`}
+ +

JavaScript SDK

+

+ 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' });`}
+ +

Structured error codes

+

+ 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. +

+ +

AI Intent Router

+

+ 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" }`}
+ +

MCP Server

+

+ 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. +

+ +

WebSocket real-time updates

+

+ 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. +

+ +

Prometheus metrics endpoint

+

+ 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)?`}
+ +

Plugin & extension hooks

+

+ 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. +

Why automation matters

- DashCaddy is more than a dashboard because it can execute the infrastructure chain around a service, not just show service state after the fact. -

- -

Reference direction

-

- 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.

diff --git a/src/app/docs/first-service/page.tsx b/src/app/docs/first-service/page.tsx index a0b50db..29a3c60 100644 --- a/src/app/docs/first-service/page.tsx +++ b/src/app/docs/first-service/page.tsx @@ -8,34 +8,89 @@ export default function DocsFirstServicePage() {

What DashCaddy handles for you

+

When you deploy a service, DashCaddy automates the full infrastructure chain:

    -
  • service records
  • -
  • app template deployment or manual service definition
  • -
  • DNS creation when configured
  • -
  • Caddy reverse proxy updates
  • -
  • service visibility and health tracking
  • +
  • Container deployment (from template) or adoption of an existing container.
  • +
  • Service record creation in the DashCaddy state store.
  • +
  • DNS record creation through Technitium DNS (when configured).
  • +
  • Caddy reverse-proxy route configuration via the Admin API.
  • +
  • Automatic TLS certificate issuance through Caddy's internal CA / DashCA.
  • +
  • Real-time health tracking and WebSocket status updates on the dashboard.
-

Typical first deployment flow

+

Three ways to add a service

+ +

1. Pick from 76+ one-click templates

+

+ 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. +

    -
  1. Open the dashboard.
  2. -
  3. Choose a template or define a service manually.
  4. -
  5. Provide the service name, hostname/subdomain, and backend target.
  6. -
  7. Let DashCaddy wire DNS and Caddy where configured.
  8. -
  9. Wait for readiness, then verify the service URL.
  10. +
  11. Open the dashboard and choose New Service โ†’ From Template.
  12. +
  13. Browse or search the 76+ templates.
  14. +
  15. Select an app and confirm the service name, hostname, and any required secrets.
  16. +
  17. Click Deploy. DashCaddy pulls the image, starts the container, and wires DNS + Caddy + TLS automatically.
+

2. Use Service Discovery to auto-detect existing containers

+

+ Already running Docker containers? DashCaddy's Service Discovery scans the host and lists + every running container, marking any that are not yet managed. +

+
    +
  1. Open Service Discovery from the sidebar.
  2. +
  3. Review the list of detected containers.
  4. +
  5. For each one you want to manage, click Adopt.
  6. +
  7. Provide a hostname/subdomain. DashCaddy generates the Caddy route, DNS record, and certificate.
  8. +
+ +

3. Define a service manually

+

+ For custom images or apps not in the template library, define the service by hand: +

+
    +
  1. Choose New Service โ†’ Custom.
  2. +
  3. Provide the container image or the host:port backend target.
  4. +
  5. Set the hostname/subdomain DashCaddy should publish.
  6. +
  7. Optionally add environment variables, volumes, and port mappings.
  8. +
  9. Deploy โ€” the same DNS + Caddy + TLS wiring applies.
  10. +
+ +

How Docker + Caddy + DNS wire together

+

+ The magic is that the three layers are coordinated as a single transaction rather than three manual steps: +

+
    +
  1. Docker starts (or adopts) the container and exposes the backend port.
  2. +
  3. DashCaddy writes a Caddy route mapping your chosen hostname to that backend, then applies it through the Caddyfile-as-Code builder and the Caddy Admin API.
  4. +
  5. Caddy automatically requests and renews a TLS certificate for the hostname via its internal CA (or DashCA).
  6. +
  7. Technitium DNS creates the A/CNAME record pointing the hostname at the host.
  8. +
  9. The service appears Healthy on the dashboard once the health check passes.
  10. +
+

+ 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. +

+

If the service is internal-only

- 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:

+
    +
  • The client device trusts the DashCA root certificate (download it from the DashCA page).
  • +
  • The internal domain resolves properly via Technitium DNS or a local resolver.
  • +
  • The route is reachable on the network you intend to use.
  • +

If the service does not come up correctly

- 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.

diff --git a/src/app/docs/installation/page.tsx b/src/app/docs/installation/page.tsx index 0a9696f..e3f4a7c 100644 --- a/src/app/docs/installation/page.tsx +++ b/src/app/docs/installation/page.tsx @@ -8,44 +8,92 @@ export default function DocsInstallationPage() {

Prerequisites

+

Before installing, make sure the host has the following:

    -
  • Docker and Docker Compose
  • -
  • Caddy with Admin API access
  • -
  • Node.js 18+ for the API server
  • -
  • Technitium DNS if you want DNS automation
  • +
  • Docker and Docker Compose โ€” the runtime foundation for all DashCaddy services.
  • +
  • Node.js 20+ โ€” required for the DashCaddy API server.
  • +
  • Caddy with Admin API access enabled โ€” the reverse proxy and HTTPS layer.
  • +
  • Technitium DNS โ€” optional, but recommended for automatic DNS record management.
  • +
  • A static host or stable IP if you plan to expose services beyond the local network.
-

Installer-based setup

+

Quick start with start.sh

- 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. +

+ +

The guided installer

+

+ For users who prefer a walk-through, DashCaddy includes a dedicated installer that steps through: +

+
    +
  1. Dependency checks โ€” verifies Docker, Node.js, and Caddy are present and reachable.
  2. +
  3. Path selection โ€” chooses where state, configs, and certificates are stored.
  4. +
  5. Configuration generation โ€” writes environment files and Caddy/DNS integration settings.
  6. +
  7. Container deployment โ€” pulls images and starts the API, dashboard, and supporting services.
  8. +
  9. First-launch validation โ€” confirms the API responds and the dashboard loads.
  10. +
+ +

First launch & the Smart Defaults Wizard

+

+ 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: +

+
    +
  • Detects the Caddy Admin API endpoint and validates connectivity.
  • +
  • Detects Technitium DNS (if installed) and configures the API token and zone.
  • +
  • Proposes a base domain and naming convention for new services.
  • +
  • Initializes the internal certificate authority (DashCA) and offers the root certificate for download.
  • +
  • Creates the initial admin account and offers TOTP 2FA enrollment.
  • +
+

+ Every default is editable โ€” the wizard simply gives you a known-good starting point instead of a blank slate.

Manual setup

- 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:

    -
  1. Clone the software repo.
  2. -
  3. Install the API dependencies.
  4. +
  5. Clone the repository.
  6. +
  7. Install the API dependencies (npm ci).
  8. Prepare Caddy and confirm the Admin API is reachable.
  9. -
  10. Prepare Technitium DNS if using automatic DNS changes.
  11. -
  12. Configure environment and state paths.
  13. -
  14. Start the DashCaddy API.
  15. +
  16. Prepare Technitium DNS if you want automatic DNS changes.
  17. +
  18. Configure environment variables and state paths.
  19. +
  20. Start the DashCaddy API (npm run start or via your process manager).
  21. Serve the dashboard through Caddy.

Post-install checks

+

After the stack is up, verify each layer:

    -
  • Dashboard loads in browser
  • -
  • API responds correctly
  • -
  • Caddy Admin API is reachable
  • -
  • Service management UI loads
  • -
  • DNS/certificate integration is healthy if configured
  • +
  • The dashboard loads in your browser.
  • +
  • The API responds โ€” check /healthz and /readyz.
  • +
  • The Caddy Admin API is reachable from the API server.
  • +
  • The service management UI loads and lists the host's containers.
  • +
  • DNS and certificate integration report healthy (if configured).
  • +
  • Prometheus metrics are exposed at /metrics (if scraping is enabled).
+ +

Next steps

+

+ Once install checks pass, head to the Deploy Your First Service guide to + bring your first application online. +

diff --git a/src/app/docs/integrations/page.tsx b/src/app/docs/integrations/page.tsx index 6fcc08c..6e92cab 100644 --- a/src/app/docs/integrations/page.tsx +++ b/src/app/docs/integrations/page.tsx @@ -8,32 +8,83 @@ export default function DocsIntegrationsPage() {

Docker

- 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

+

Caddy โ€” reverse proxy & HTTPS

- 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. +

+ +

Caddyfile-as-Code

+

+ 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

- 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

+

DashCA โ€” internal certificate authority

- 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.

-

Private access layers

+

Tailscale โ€” private access

- 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.

+ +

Prometheus & Grafana โ€” metrics

+

+ 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']`}
+ +

MCP & AI assistants

+

+ 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. +

+ +

How the layers fit together

+
    +
  • Deploy / Adopt โ†’ Docker runs the container.
  • +
  • Publish โ†’ Caddy creates the reverse-proxy route and TLS cert.
  • +
  • Resolve โ†’ Technitium DNS creates the hostname record.
  • +
  • Trust โ†’ DashCA distributes the root CA for internal HTTPS.
  • +
  • Observe โ†’ health checks + Prometheus + WebSocket live updates.
  • +
  • Secure โ†’ Security Center aggregates events; audit logging records every change.
  • +
diff --git a/src/app/docs/overview/page.tsx b/src/app/docs/overview/page.tsx index 1edde22..eb283e7 100644 --- a/src/app/docs/overview/page.tsx +++ b/src/app/docs/overview/page.tsx @@ -8,37 +8,75 @@ export default function DocsOverviewPage() {

What DashCaddy is

- 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.

+

Platform architecture

+

+ DashCaddy is a production-grade platform built on a layered stack: +

+
    +
  • Application layer โ€” a React dashboard for operators, plus a REST API and WebSocket channel for real-time updates.
  • +
  • Orchestration layer โ€” a Node.js/Express engine that drives deployments, service lifecycle, DNS, reverse proxy, and certificates.
  • +
  • Runtime layer โ€” Docker and Docker Compose for container workloads, with optional Docker Swarm and multi-host fleet support.
  • +
  • Edge layer โ€” Caddy as the reverse proxy and automatic HTTPS termination, managed through its Admin API.
  • +
  • Name resolution layer โ€” Technitium DNS for programmatic record creation and removal.
  • +
  • Trust layer โ€” Caddy's internal CA and the optional DashCA certificate authority for trusted internal HTTPS.
  • +
  • Observability layer โ€” real-time health checks, Prometheus metrics export, and structured audit logging.
  • +
  • Intelligence layer โ€” an AI Intent Router for natural-language operations and an MCP Server for AI assistant integration.
  • +
+

Core product components

    -
  • Dashboard: the main operator interface for service visibility and management.
  • -
  • DashCaddy API: the orchestration engine for deployments, DNS, reverse proxy, certificates, and operational tooling.
  • -
  • Installer: a guided installation path for users who want faster setup.
  • -
  • DashCA: the internal certificate authority distribution surface for trusted internal HTTPS.
  • -
  • Licensing: Premium feature gating tied to external validation/deactivation flows.
  • +
  • Dashboard โ€” the main operator interface for service visibility, deployment, fleet management, and operational controls.
  • +
  • DashCaddy API โ€” the orchestration engine under /api/v1/ for deployments, DNS, reverse proxy, certificates, monitoring, and operational tooling.
  • +
  • Template Library โ€” 76+ one-click Docker application templates covering the most popular self-hosted apps.
  • +
  • Service Discovery โ€” auto-detection of existing containers on the host with one-click adoption into a managed service.
  • +
  • Caddyfile-as-Code โ€” a visual reverse-proxy builder that generates and applies Caddy configuration without manual edits.
  • +
  • DashCA โ€” the internal certificate authority distribution surface for trusted internal HTTPS across devices.
  • +
  • Security Center โ€” a multi-source event pipeline aggregating logs and signals for threat detection and audit.
  • +
  • AI Intent Router โ€” turn natural-language commands into real infrastructure actions.
  • +
  • MCP Server โ€” expose DashCaddy operations to AI assistants and external automation.
  • +
  • Licensing โ€” Premium feature gating tied to external validation and deactivation flows.

Who DashCaddy is for

-

- 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. -

+
    +
  • Home lab operators who want one place to deploy apps, publish them cleanly, and trust internal HTTPS.
  • +
  • Self-hosters tired of hand-wiring Docker, Caddy, DNS, and certificates for every new service.
  • +
  • Small teams and businesses that need multi-user access, RBAC, SSO, and audit trails.
  • +
  • Platform administrators managing fleets of services across one host or many, with monitoring and backup at the core.
  • +
+ +

What makes it production-grade

+
    +
  • 76+ vetted templates for one-click deployment of popular self-hosted software.
  • +
  • Real-time monitoring with WebSocket live dashboard updates and Prometheus metrics export.
  • +
  • Multi-user security โ€” TOTP 2FA, email magic-link login, admin invites, RBAC, encrypted credential vault, and audit logging.
  • +
  • Security Center โ€” a multi-source event pipeline for centralized security visibility.
  • +
  • Backup & disaster recovery โ€” one-click backup/restore with SHA-256 checksums for full-system recovery.
  • +
  • Internationalization โ€” 5 supported languages out of the box.
  • +
  • Developer platform โ€” a JavaScript SDK with 39 methods and full TypeScript types, structured error codes (80 codes), and a plugin/extension system.
  • +
  • AI-native โ€” natural-language operations via the Intent Router and AI assistant integration via MCP.
  • +

Ownership and licensing

- 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.

diff --git a/src/app/docs/premium/page.tsx b/src/app/docs/premium/page.tsx index 7014fe3..0464fd9 100644 --- a/src/app/docs/premium/page.tsx +++ b/src/app/docs/premium/page.tsx @@ -8,30 +8,73 @@ export default function DocsPremiumPage() { +

Free vs Premium at a glance

+
    +
  • Free: full dashboard, 76+ templates, service discovery, Caddy + DNS + TLS automation, real-time monitoring, Prometheus metrics, multi-user with 2FA & RBAC, Security Center, AI Intent Router, MCP Server, JS SDK, backup/restore, and single-host operation.
  • +
  • Premium: everything in Free, plus Auto-Login SSO, Recipes, Docker Swarm, and Multi-Host Fleet Management โ€” plus priority support.
  • +
+

Premium-gated features

    -
  • SSO: Auto-Login SSO
  • -
  • Recipes: multi-container stack deployment
  • -
  • Swarm: Docker Swarm multi-node orchestration
  • +
  • + Auto-Login SSO โ€” single sign-on across services so authenticated users reach their apps + without repeated logins. Ideal for teams that want a seamless internal portal experience. +
  • +
  • + Recipes โ€” deploy multi-container application stacks (e.g. an app + database + cache) as a + single coordinated unit. Recipes bundle several templates together with pre-wired networking so complex + stacks come up in one click. +
  • +
  • + Docker Swarm โ€” multi-node orchestration. Run services across a Swarm cluster instead of a + single host, with DashCaddy managing placement, routing, and TLS across the cluster. +
  • +
  • + Multi-Host Fleet Management โ€” manage DashCaddy deployments across multiple hosts from one + control plane. Deploy, monitor, and operate services across an entire fleet with unified visibility. +
-

Current plan model

+

Pricing

+

One Premium tier, subscription billing, no hidden upsells:

    -
  • 1 month โ€” $25
  • -
  • 3 months โ€” $50
  • -
  • 6 months โ€” $65
  • -
  • 12 months โ€” $99
  • +
  • 1 month โ€” $25
  • +
  • 3 months โ€” $50
  • +
  • 6 months โ€” $65
  • +
  • 12 months โ€” $99

- 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.

-

License behavior

+

Plan terms

+
    +
  • Subscriptions only โ€” no perpetual licenses.
  • +
  • One Premium tier (no tier ladder to navigate).
  • +
  • One active machine at a time per license.
  • +
  • 7-day grace period after expiry so services keep running while you renew.
  • +
  • Cancel at period end โ€” no mid-cycle lock-in.
  • +
  • No free trial.
  • +
+ +

License validation

- 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.

+ +

How to subscribe

+
    +
  1. Open the dashboard and go to Settings โ†’ Licensing.
  2. +
  3. Choose a plan duration and complete checkout.
  4. +
  5. Your license key is validated automatically โ€” Premium features unlock immediately.
  6. +
  7. Manage renewal, cancellation, and machine deactivation from the same panel.
  8. +
diff --git a/src/app/docs/troubleshooting/page.tsx b/src/app/docs/troubleshooting/page.tsx index 99c0266..5d2393c 100644 --- a/src/app/docs/troubleshooting/page.tsx +++ b/src/app/docs/troubleshooting/page.tsx @@ -8,30 +8,88 @@ export default function DocsTroubleshootingPage() { -

Debug order

+

Health check endpoints

+

+ 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. +

+ +

The debug order

+

Work bottom-up through the stack so you isolate the failing layer:

    -
  1. backend process or container
  2. -
  3. service port reachability
  4. -
  5. reverse proxy route
  6. -
  7. DNS
  8. -
  9. certificate trust
  10. -
  11. dashboard/API visibility
  12. +
  13. Backend container โ€” is it running and healthy?
  14. +
  15. Backend port โ€” is the service listening and reachable on the host?
  16. +
  17. Reverse proxy route โ€” did Caddy apply the route correctly?
  18. +
  19. DNS โ€” does the hostname resolve to the right host?
  20. +
  21. Certificate trust โ€” does the client trust the CA?
  22. +
  23. Dashboard / API state โ€” does DashCaddy reflect reality?
-

Common failures

+

DNS issues

    -
  • service is down even though the dashboard is reachable
  • -
  • internal HTTPS shows warnings because DashCA trust is missing
  • -
  • DNS automation fails due to API token or zone issues
  • -
  • Caddy changes are not applying because Admin API is unavailable
  • -
  • Premium features do not unlock because license validation is failing
  • +
  • Symptom: hostname does not resolve, or resolves to the wrong address.
  • +
  • Check: is Technitium DNS running and is the DashCaddy API token valid?
  • +
  • Check: is the record present in the correct zone? DNS automation fails silently when the zone name is wrong.
  • +
  • Check: is the client using Technitium as its resolver? Public resolvers will not know about internal zones.
  • +
  • Fix: re-run the DNS step from the service's action menu, or recreate the record manually and let DashCaddy reconcile.
  • +
+
{`# Verify resolution against the Technitium resolver directly
+dig @technitium-host media.lab
+nslookup media.lab technitium-host`}
+ +

TLS / certificate problems

+
    +
  • Symptom: browser shows a certificate warning or NET::ERR_CERT_AUTHORITY_INVALID.
  • +
  • Cause: the client does not trust Caddy's internal CA / DashCA root certificate.
  • +
  • Fix: download the root certificate from the DashCA page and install it as a trusted root CA on the client device. Every modern OS and browser has a slightly different import flow โ€” the DashCA page includes per-platform instructions.
  • +
  • Cause: certificate issuance failed because the Caddy Admin API was unreachable at deploy time.
  • +
  • Fix: confirm the Caddy Admin API is reachable, then redeploy or re-trigger TLS for the service.
  • +
+ +

Reverse proxy debugging (Caddy)

+
    +
  • Symptom: service is up and DNS resolves, but the URL returns 502/504 or does not route.
  • +
  • Check: is the Caddy Admin API reachable from the DashCaddy API server?
  • +
  • Check: does the Caddy route point at the correct upstream host:port? Use the Caddyfile-as-Code view to inspect the generated config.
  • +
  • Check: Caddy logs โ€” docker logs caddy or your Caddy service logs โ€” for upstream connection errors.
  • +
  • Fix: re-apply the route from the service's action menu; DashCaddy will reconcile the Caddy configuration atomically.
  • +
+ +

Container health

+
    +
  • Symptom: service shows Unhealthy or Down on the dashboard.
  • +
  • Check: docker ps -a and docker logs <container> for crash loops or misconfiguration.
  • +
  • Check: does the container's healthcheck (if defined) pass? DashCaddy surfaces container healthchecks in the UI.
  • +
  • Check: are volumes and environment variables correct? Bad secrets are the most common cause of immediate exits.
  • +
+ +

Common gotchas

+
    +
  • Service is down even though the dashboard is reachable โ€” the dashboard and the service are different containers; always check the backend container directly.
  • +
  • DNS automation fails silently โ€” usually an expired or wrong-scope Technitium API token, or a mismatched zone name.
  • +
  • Caddy changes are not applying โ€” the Admin API is unavailable or the generated config is invalid; check the Caddyfile-as-Code view for errors.
  • +
  • Premium features do not unlock โ€” license validation is failing; verify the license key and that the host can reach the licensing server, and remember the one-active-machine limit.
  • +
  • Internal HTTPS still warns after install โ€” the root CA must be trusted on each client device, not just the server.
  • +
  • WebSocket live updates stall โ€” a reverse proxy or firewall in front of DashCaddy may be dropping the upgrade; allow WebSocket upgrades on the DashCaddy route.

Mindset

- 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.

diff --git a/src/app/favicon.ico b/src/app/favicon.ico index 718d6fe..2aea863 100644 Binary files a/src/app/favicon.ico and b/src/app/favicon.ico differ diff --git a/src/app/features/page.tsx b/src/app/features/page.tsx index 57f0502..844c47c 100644 --- a/src/app/features/page.tsx +++ b/src/app/features/page.tsx @@ -16,79 +16,119 @@ interface FeatureSection { title: string; description: string; icon: string; + badge?: string; features: FeatureItem[]; } export default function FeaturesPage() { const features: FeatureSection[] = [ { - id: 'deployment', + id: 'ai-self-hosting', + title: 'AI-Powered Self-Hosting', + description: + 'Talk to your homelab. DashCaddy\'s AI Intent Router understands natural language commands, and the built-in MCP Server lets AI assistants like Claude and GPT control your infrastructure directly. The first self-hosting platform built for the agentic era.', + icon: '๐Ÿค–', + badge: 'New', + features: [ + { icon: '๐ŸŽฏ', label: 'AI Intent Router โ€” natural language commands' }, + { icon: '๐Ÿ”Œ', label: 'MCP Server for Claude & GPT control' }, + { icon: '๐Ÿ’ฌ', label: '"deploy Plex", "check SSL status", "restart jellyfin"' }, + { icon: '๐Ÿง ', label: 'Context-aware infrastructure reasoning' }, + ], + }, + { + id: 'app-deployment', title: 'App Deployment', - description: 'Deploy your favorite applications instantly from our library of 50+ pre-configured Docker templates. No manual configuration neededโ€”just click, deploy, and go live.', + description: + 'Deploy from a library of 76+ 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.', icon: '๐Ÿš€', features: [ { icon: 'โšก', label: 'One-click deployment' }, - { icon: '๐Ÿ“ฆ', label: '50+ app templates' }, - { icon: 'โš™๏ธ', label: 'Auto-configuration' }, + { icon: '๐Ÿ“ฆ', label: '76+ app templates' }, + { icon: 'โš™๏ธ', label: 'Automatic configuration' }, + { icon: '๐Ÿ”', label: 'Service Discovery & auto-adopt' }, + { icon: '๐Ÿง™', label: 'Smart Defaults Wizard' }, ], }, { id: 'ssl-security', title: 'SSL & Security', - description: 'Enterprise-grade security built in. Automatic SSL certificates, TOTP 2FA, encrypted credentials, and comprehensive audit logs to track every action.', + description: + 'Enterprise-grade security, baked in. Automatic SSL via Caddy\'s internal CA, TOTP 2FA with email magic link, multi-user admin with role-based access, encrypted credential vault, comprehensive audit logs, and a Security Center that unifies events from every source.', icon: '๐Ÿ”’', features: [ { icon: '๐Ÿ”', label: 'Automatic SSL certificates' }, - { icon: '๐Ÿ“ฑ', label: 'TOTP 2FA authentication' }, - { icon: '๐Ÿ”‘', label: 'Encrypted credentials' }, - { icon: '๐Ÿ“', label: 'Audit logs' }, + { icon: '๐Ÿ“ฑ', label: 'TOTP 2FA + email magic link' }, + { icon: '๐Ÿ‘ฅ', label: 'Multi-user admin (RBAC + invites)' }, + { icon: '๐Ÿ”‘', label: 'Encrypted credential vault' }, + { icon: '๐Ÿ“', label: 'Audit logging' }, + { icon: '๐Ÿ›ก๏ธ', label: 'Security Center (multi-source events)' }, ], }, { - id: 'dns', - title: 'DNS Management', - description: 'Manage all your app subdomains from one dashboard. Automatic DNS record creation with Technitium DNS integration makes domain management effortless.', + id: 'dns-networking', + title: 'DNS & Networking', + description: + 'Full DNS automation powered by Technitium DNS, plus a Caddyfile-as-code visual builder for crafting reverse proxy rules without touching config files. Manage subdomains, routes, and proxies from a single dashboard.', icon: '๐ŸŒ', features: [ { icon: 'โœจ', label: 'Automatic DNS records' }, - { icon: '๐Ÿ”—', label: 'Technitium integration' }, - { icon: '๐Ÿ“‹', label: 'Subdomain management' }, - { icon: '๐ŸŽฏ', label: 'Zero DNS config' }, + { icon: '๐Ÿ”—', label: 'Technitium DNS integration' }, + { icon: '๐Ÿ—๏ธ', label: 'Caddyfile-as-code visual builder' }, + { icon: '๐Ÿ”', label: 'Reverse proxy management' }, ], }, { - id: 'monitoring', - title: 'Monitoring & Health', - description: 'Real-time visibility into your infrastructure. Monitor container health, response times, and resource usage with detailed metrics and alerts.', + id: 'monitoring-ops', + title: 'Monitoring & Operations', + description: + 'Real-time visibility into every container and service. WebSocket live updates keep your dashboard in sync instantly, health checks catch problems early, and Prometheus metrics export feeds your existing observability stack.', icon: '๐Ÿ“Š', features: [ - { icon: '๐ŸŸข', label: 'Real-time status' }, - { icon: 'โฑ๏ธ', label: 'Response time tracking' }, - { icon: '๐Ÿ’พ', label: 'Resource monitoring' }, - { icon: '๐Ÿ“ˆ', label: 'Performance metrics' }, + { icon: '๐ŸŸข', label: 'Real-time health monitoring' }, + { icon: 'โšก', label: 'WebSocket live updates' }, + { icon: '๐Ÿ“ˆ', label: 'Prometheus metrics export' }, + { icon: '๐Ÿ’“', label: 'Container health checks' }, + { icon: 'โฑ๏ธ', label: 'Response time & resource tracking' }, ], }, { - id: 'docker', - title: 'Docker Management', - description: 'Control your entire Docker environment visually. View, manage, and scale containers, access logs, and perform updates without touching the command line.', - icon: '๐Ÿณ', + id: 'backup-recovery', + title: 'Backup & Recovery', + description: + 'One-click backup and disaster recovery built for peace of mind. Full-system backups with checksum verification, point-in-time restore, and a disaster recovery workflow that gets you back online fast when it matters most.', + icon: '๐Ÿ’พ', features: [ - { icon: '๐ŸŽฎ', label: 'Container control' }, - { icon: '๐Ÿ“œ', label: 'Live logs access' }, - { icon: '๐Ÿ”„', label: 'Auto-updates' }, - { icon: '๐Ÿ“Š', label: 'Resource monitoring' }, + { icon: '๐Ÿ”™', label: 'One-click backup & restore' }, + { icon: '๐Ÿ†˜', label: 'Disaster Recovery mode' }, + { icon: 'โœ…', label: 'Full-system backup w/ checksums' }, + { icon: 'โฎ๏ธ', label: 'Point-in-time restore' }, + ], + }, + { + id: 'developer-platform', + title: 'Developer Platform', + description: + 'DashCaddy isn\'t just a UIโ€”it\'s a platform. A typed JavaScript SDK with 39 methods, a full REST API, a plugin/extension system for custom workflows, and internationalization across 5 languages including full RTL support.', + icon: '๐Ÿ› ๏ธ', + features: [ + { icon: '๐Ÿ“˜', label: 'JavaScript SDK + TypeScript types (39 methods)' }, + { icon: '๐Ÿ”Œ', label: 'Plugin / Extension system' }, + { icon: '๐ŸŒ', label: 'REST API' }, + { icon: '๐ŸŒ', label: 'i18n: EN/ES/FR/DE/AR (RTL)' }, ], }, { id: 'premium', title: 'Premium Features', - description: 'Advanced features for power users and production deployments. SSO integration, multi-container recipes, and Docker Swarm orchestration.', + 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.', icon: 'โญ', features: [ { icon: '๐Ÿ”‘', label: 'Auto-Login SSO', premium: true }, - { icon: '๐Ÿ“š', label: 'Recipes (stack deployment)', premium: true }, - { icon: '๐Ÿš€', label: 'Docker Swarm orchestration', premium: true }, + { icon: '๐Ÿ“š', label: 'Recipes (multi-container stacks)', premium: true }, + { icon: '๐Ÿณ', label: 'Docker Swarm orchestration', premium: true }, + { icon: '๐Ÿ“ก', label: 'Multi-Host Fleet Management', premium: true }, { icon: '๐Ÿš€', label: 'Priority support', premium: true }, ], }, @@ -105,11 +145,18 @@ export default function FeaturesPage() {
+
+ + + + + AI-native self-hosting platform +

- Powerful Features Built In + Every Tool You Need to Self-Host

- 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.

@@ -119,12 +166,22 @@ export default function FeaturesPage() {
{features.map((feature, idx) => ( -
+
{/* Content Side */}
{feature.icon}
+ + {feature.badge && ( + + {feature.badge} + + )} +

{feature.title}

@@ -144,7 +201,9 @@ export default function FeaturesPage() { }`} > {item.icon} - + {item.label} {item.premium && ( @@ -164,7 +223,10 @@ export default function FeaturesPage() {
{feature.features.slice(0, 3).map((item, itemIdx) => ( -
+
{item.label}
@@ -172,7 +234,10 @@ export default function FeaturesPage() {
- {feature.features.length} features included + + {feature.features.length} features + {' '} + included
@@ -184,112 +249,168 @@ export default function FeaturesPage() {
- {/* Feature Comparison Grid */} + {/* AI Features Highlight */}
+
+
+
+
-

- What's Included in Free + + The Agentic Era of Self-Hosting + +

+ Control Your Homelab With Natural Language

-

- 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.

- {/* Feature Grid */} -
- - - - - - +
+ {/* AI Intent Router */} +
+
+
+
+
๐ŸŽฏ
+
+

AI Intent Router

+

+ Skip the menus. Just type a command in plain English and DashCaddy figures out the right actions. +

+
+ {['"deploy Plex"', '"check SSL status"', '"restart jellyfin"', '"show failing containers"'].map( + (cmd, i) => ( +
+ โ€บ + {cmd} +
+ ) + )} +
+
+
+ + {/* MCP Server */} +
+
+
+
+
๐Ÿ”Œ
+
+

MCP Server

+

+ DashCaddy runs as a Model Context Protocol server, so AI assistants can manage your homelab directly. +

+
+ {[ + 'Claude desktop & API', + 'GPT / ChatGPT integrations', + 'Any MCP-compatible client', + 'Scoped, audited, secure access', + ].map((item, i) => ( +
+
+ {item} +
+ ))} +
+
+
- {/* Premium Section */} + {/* Free vs Premium Comparison */}
-
-
-
-
-
-
-
- - Premium Features +
+

+ Free vs Premium +

+

+ A powerful free tier for everyone. Premium unlocks multi-host, SSO, and more. +

+
+ +
+ {/* Free Column */} +
+
+

Free

+

Everything to self-host a single node.

+
+
    + {[ + '76+ one-click app templates', + 'Automatic SSL certificates', + 'Technitium DNS automation', + 'Reverse proxy + Caddyfile builder', + 'Real-time monitoring & WebSocket updates', + 'TOTP 2FA + multi-user admin', + 'Encrypted credential vault', + 'Audit logging', + 'Security Center', + 'One-click backup & restore', + 'AI Intent Router + MCP Server', + 'JavaScript SDK & REST API', + 'Plugin / Extension system', + 'i18n (5 languages, RTL)', + 'Prometheus metrics export', + ].map((item, i) => ( +
  • + + + + {item} +
  • + ))} +
+
+ + {/* Premium Column */} +
+
+ + Premium
-

- Level Up With Premium -

-

- Get advanced features designed for power users and production deployments. Auto-Login SSO, stack recipes, Docker Swarm orchestration, and priority support. -

- -
-
- ๐Ÿ”‘ -
-

Auto-Login SSO

-

Deploy apps with automatic single sign-on integration.

-
-
- -
- ๐Ÿ“š -
-

Recipes

-

Deploy multi-container stacks with one click.

-
-
- -
- ๐Ÿš€ -
-

Docker Swarm

-

Orchestrate multi-node clusters effortlessly.

-
-
- -
- โšก -
-

Priority Support

-

Get faster responses from our support team.

-
-
+
+

Premium

+

For production, multi-host, and teams.

+

+ Everything in Free, plus: +

+
    + {[ + 'Auto-Login SSO for deployed apps', + 'Recipes โ€” multi-container stack deployment', + 'Docker Swarm orchestration', + 'Multi-Host Fleet Management (remote instances, parallel health probes, multi-host deploy plans)', + 'Disaster Recovery (full-system backup w/ checksums)', + 'Priority support', + ].map((item, i) => ( +
  • + + + + {item} +
  • + ))} +
Explore Premium Plans @@ -301,7 +422,7 @@ export default function FeaturesPage() {
- {/* FAQ Section */} + {/* FAQ CTA Section */}
diff --git a/src/app/icon.jpg b/src/app/icon.jpg new file mode 100644 index 0000000..2aea863 Binary files /dev/null and b/src/app/icon.jpg differ diff --git a/src/app/page.tsx b/src/app/page.tsx index 1fec64f..9a88d24 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -27,13 +27,25 @@ export default function Home() { {/* Left Content */}
+ {/* AI badge */} +
+ + + + + AI-Powered Self-Hosting +
+

Self-Hosting
- Made Beautiful + Made Intelligent

- 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.

@@ -69,6 +81,10 @@ export default function Home() {

Trusted by self-hosting enthusiasts

+
+
๐ŸŒ
+

5 languages incl. Arabic (RTL)

+
@@ -92,6 +108,18 @@ export default function Home() { dashcaddy.local
+ {/* AI command bar */} +
+
+ ๐Ÿค– + “deploy Plex” +
+
+ โœ“ deployed + SSL + DNS + route configured +
+
+ {/* Content area with animated elements */}
{/* Container item 1 */} @@ -160,41 +188,56 @@ export default function Home() { Powerful Features

- 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.

{/* Feature Grid */}
+ + - - - - + + + + +
@@ -230,10 +273,10 @@ export default function Home() { {/* Content */}

- Install + Install & Setup Wizard

- 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.

@@ -257,7 +300,7 @@ export default function Home() { Deploy

- 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.

@@ -277,7 +320,7 @@ export default function Home() { Done

- 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.

@@ -298,7 +341,7 @@ export default function Home() { Why DashCaddy?

- 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.

@@ -323,7 +366,7 @@ export default function Home() { SSL Certificates - Manual configuration via Let's Encrypt + Manual configuration via Let’s Encrypt โœ“ Automatic @@ -335,7 +378,7 @@ export default function Home() { Manual DNS records - โœ“ Automatic + โœ“ Automatic (Technitium) @@ -344,7 +387,7 @@ export default function Home() { Complex Nginx/Caddy config - โœ“ One-click + โœ“ Caddyfile-as-Code builder @@ -353,7 +396,61 @@ export default function Home() { Write your own compose files - โœ“ 50+ pre-configured + โœ“ 76+ pre-configured + + + + AI Commands + + Not available + + + โœ“ AI Intent Router + MCP + + + + Fleet Management + + SSH into each host manually + + + โœ“ Multi-host, parallel probes + + + + Security Center + + Scattered logs & tools + + + โœ“ Unified event pipeline + + + + Disaster Recovery + + Manual scripts, no verification + + + โœ“ SHA-256 verified backups + + + + Real-Time Updates + + Manual refresh, CLI only + + + โœ“ WebSocket live dashboard + + + + Plugin System + + Not extensible + + + โœ“ Custom widgets, providers @@ -362,11 +459,11 @@ export default function Home() { Third-party tools required - โœ“ Built-in + โœ“ Built-in + Prometheus export - Backup & Restore + Backup & Restore Manual scripts and planning @@ -398,7 +495,7 @@ export default function Home() { Save Countless Hours

- 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 */} +
+
+ {/* Section Header */} +
+

+ Built for Developers +

+

+ Everything you need to automate, integrate, and extend DashCaddy. +

+
+ + {/* Integration Grid */} +
+
+
๐Ÿ“ฆ
+

JavaScript SDK

+

39 methods, zero-dep

+
+
+
๐Ÿ“Š
+

Prometheus

+

Metrics export

+
+
+
๐Ÿ—‚๏ธ
+

Caddyfile-as-Code

+

Visual proxy builder

+
+
+
๐ŸŒ
+

i18n

+

5 languages, RTL

+
+
+
๐Ÿ”Œ
+

Plugin API

+

Extend everything

+
+
+
๐Ÿ”
+

TypeScript

+

Full type definitions

+
+
+
+
+ {/* Final CTA Section */}
{/* Background effects */} @@ -463,7 +609,7 @@ export default function Home() { Self-Hosting Setup?

- 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.

@@ -492,13 +638,13 @@ export default function Home() {
-
Proprietary
-

Built With Care

+
AI-Native
+

Intent Router + MCP

24/7
-

Community Support

+

Real-Time Monitoring

diff --git a/src/app/pricing/page.tsx b/src/app/pricing/page.tsx index 5ca7604..59ce381 100644 --- a/src/app/pricing/page.tsx +++ b/src/app/pricing/page.tsx @@ -5,28 +5,50 @@ import Link from 'next/link'; import Navbar from '@/components/Navbar'; import Footer from '@/components/Footer'; +// โ”€โ”€โ”€ Stripe Payment Links โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +// These are pre-generated checkout URLs from the Stripe Dashboard. +// Replace these placeholders with real Payment Link URLs from: +// https://dashboard.stripe.com/payment-links +// Each link should point to the corresponding Stripe Product/Price. +// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ +const STRIPE_LINKS: Record = { + monthly: 'https://buy.stripe.com/REPLACE_MONTHLY_LINK', + quarterly: 'https://buy.stripe.com/REPLACE_QUARTERLY_LINK', + semiannual: 'https://buy.stripe.com/REPLACE_SEMIANNUAL_LINK', + annual: 'https://buy.stripe.com/REPLACE_ANNUAL_LINK', +}; + export default function PricingPage() { const [selectedPlan, setSelectedPlan] = useState<'monthly' | 'quarterly' | 'semiannual' | 'annual'>('annual'); const planOptions = [ - { key: 'monthly', label: '1 Month', price: 25, period: '/mo', perMonth: undefined }, - { key: 'quarterly', label: '3 Months', price: 50, period: '/3mo', perMonth: '$16.67/mo' }, - { key: 'semiannual', label: '6 Months', price: 65, period: '/6mo', perMonth: '$10.83/mo' }, - { key: 'annual', label: '12 Months', price: 99, period: '/yr', perMonth: '$8.25/mo' }, + { key: 'monthly', label: '1 Month', price: 25, period: '/mo', perMonth: undefined }, + { key: 'quarterly', label: '3 Months', price: 50, period: '/3mo', perMonth: '$16.67/mo' }, + { key: 'semiannual', label: '6 Months', price: 65, period: '/6mo', perMonth: '$10.83/mo' }, + { key: 'annual', label: '12 Months', price: 99, period: '/yr', perMonth: '$8.25/mo' }, ] as const; const selected = planOptions.find(p => p.key === selectedPlan)!; const coreFeatures = [ - 'Dashboard & service monitoring', - '50+ pre-configured app templates', + 'Dashboard & real-time service monitoring', + '76+ pre-configured app templates', 'Automatic SSL via Caddy internal CA', 'DNS automation via Technitium DNS', - 'Reverse proxy management', - 'DashCA internal HTTPS trust distribution', - 'Container lifecycle management', - 'TOTP 2FA authentication', - 'Audit logging', + 'Reverse proxy management + Caddyfile-as-Code', + 'AI Intent Router โ€” natural language commands', + 'MCP Server โ€” AI assistant integration', + 'Security Center โ€” unified event pipeline', + 'Service Discovery โ€” auto-detect containers', + 'Smart Defaults Wizard โ€” guided setup', + 'WebSocket real-time dashboard updates', + 'TOTP 2FA + multi-user admin & invites', + 'Audit logging & encrypted credential vault', + 'One-click backup & disaster recovery', + 'Plugin/extension system', + 'JavaScript SDK + TypeScript types (39 methods)', + 'Prometheus metrics export', + 'i18n โ€” 5 languages (EN/ES/FR/DE/AR)', ]; const premiumFeatures = [ @@ -34,6 +56,8 @@ export default function PricingPage() { 'Auto-Login SSO for deployed apps', 'Recipes โ€” multi-container stack deployment', 'Swarm โ€” Docker Swarm multi-node orchestration', + 'Multi-Host Fleet Management โ€” remote instance control', + 'Priority support', 'One active machine per license', '7-day grace period on expiry', 'Cancel at period end, no lock-in', @@ -42,11 +66,11 @@ export default function PricingPage() { const faqs = [ { question: 'What happens when my subscription ends?', - answer: 'Premium features gracefully deactivate after a 7-day grace period. Your services keep running โ€” only the premium-gated features (SSO, Recipes, Swarm) become unavailable. Resubscribe at any time to re-enable them.', + answer: 'Premium features gracefully deactivate after a 7-day grace period. Your services keep running โ€” only the premium-gated features (SSO, Recipes, Swarm, Fleet Management) become unavailable. Resubscribe at any time to re-enable them.', }, { question: 'Can I use DashCaddy without Premium?', - answer: 'Yes. The core platform is fully functional without a license. Premium unlocks SSO, Recipes, and Swarm โ€” advanced orchestration features that most individual self-hosters may not need initially.', + answer: 'Absolutely. The core platform is fully functional without a license โ€” including AI commands, the Security Center, service discovery, monitoring, backup, and all 76+ app templates. Premium unlocks SSO, Recipes, Swarm orchestration, and Fleet Management for advanced multi-node setups.', }, { question: 'How many machines can I activate?', @@ -54,7 +78,7 @@ export default function PricingPage() { }, { question: 'Is there a free trial?', - answer: 'Not currently. The core platform is available without a license, so you can evaluate DashCaddy before purchasing Premium.', + answer: 'Not currently. The core platform is available without a license, so you can fully evaluate DashCaddy before purchasing Premium.', }, { question: 'Is my data safe?', @@ -64,6 +88,10 @@ export default function PricingPage() { question: 'How does license validation work?', answer: 'DashCaddy validates licenses through an external license server. The app checks your subscription status and activates or deactivates premium features accordingly.', }, + { + question: 'What payment methods do you accept?', + answer: 'We use Stripe for secure payment processing. All major credit cards are accepted. Payments are processed through Stripe\'s encrypted checkout โ€” we never see or store your card details.', + }, ]; const [expandedFaq, setExpandedFaq] = useState(0); @@ -82,7 +110,7 @@ export default function PricingPage() { Simple, Transparent Pricing

- 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.

@@ -97,11 +125,11 @@ export default function PricingPage() {

Core

-

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.

Free
-

No license required

+

No license required, no credit card

-

Includes

-