diff --git a/public/.htaccess b/public/.htaccess
new file mode 100644
index 0000000..197f811
--- /dev/null
+++ b/public/.htaccess
@@ -0,0 +1,34 @@
+# Redirect old doc paths to new ones — using RewriteRule for broader compatibility
+
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, @@ -62,7 +62,7 @@ export default function DocsFirstServicePage() {
From the dashboard sidebar, click New Service → From Template. The template library - opens with a searchable grid of 76+ applications. + opens with a searchable grid of 92+ applications.
/var/run/docker.sock) to start, stop, restart, inspect, and adopt containers, and to
- deploy the 76+ one-click application templates from the catalog.
+ deploy the 92+ one-click application templates from the catalog.
The daemon connection is established at startup. If the socket is missing or permissioned for a different user, diff --git a/src/app/docs/overview/page.tsx b/src/app/docs/overview/page.tsx index 7892e4c..778944e 100644 --- a/src/app/docs/overview/page.tsx +++ b/src/app/docs/overview/page.tsx @@ -162,7 +162,7 @@ export default function DocsOverviewPage() {
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. + 92+ templates, fleet management, and an MCP control plane for AI assistants. Everything you need for self-hosted perfection.
@@ -206,8 +206,8 @@ export default function Home() { />- The core platform is completely free — including AI commands, Security Center, and all 76+ app templates. Premium unlocks advanced orchestration with a one-time payment. + The core platform is completely free — including AI commands, Security Center, and all 92+ app templates. Premium unlocks advanced orchestration with a one-time payment.
diff --git a/src/components/AppShowcase.tsx b/src/components/AppShowcase.tsx index 45c8965..e4bb37a 100644 --- a/src/components/AppShowcase.tsx +++ b/src/components/AppShowcase.tsx @@ -1,181 +1,226 @@ -'use client'; - -import { useState } from 'react'; - -interface App { - name: string; - icon: string; - category: string; -} - -const apps: App[] = [ - // Media - { name: 'Plex', icon: '🎬', category: 'Media' }, - { name: 'Jellyfin', icon: '📽️', category: 'Media' }, - { name: 'Kaleidescape', icon: '🎞️', category: 'Media' }, - { name: 'Emby', icon: '🎥', category: 'Media' }, - { name: 'Subsonic', icon: '🎵', category: 'Media' }, - { name: 'Synology Photos', icon: '📸', category: 'Media' }, - - // Downloads - { name: 'Sonarr', icon: '📺', category: 'Downloads' }, - { name: 'Radarr', icon: '🎬', category: 'Downloads' }, - { name: 'Lidarr', icon: '🎶', category: 'Downloads' }, - { name: 'qBittorrent', icon: '⚡', category: 'Downloads' }, - { name: 'Transmission', icon: '📤', category: 'Downloads' }, - { name: 'SABnzbd', icon: '📥', category: 'Downloads' }, - - // Productivity - { name: 'Nextcloud', icon: '☁️', category: 'Productivity' }, - { name: 'Vikunja', icon: '✓', category: 'Productivity' }, - { name: 'OpenProject', icon: '📋', category: 'Productivity' }, - { name: 'Plane', icon: '🚀', category: 'Productivity' }, - { name: 'Actual Budget', icon: '💰', category: 'Productivity' }, - { name: 'HedgeDoc', icon: '📝', category: 'Productivity' }, - - // Management - { name: 'Portainer', icon: '🐋', category: 'Management' }, - { name: 'Homelabs', icon: '🏠', category: 'Management' }, - { name: 'Yacht', icon: '⛵', category: 'Management' }, - { name: 'DockSTARTer', icon: '⭐', category: 'Management' }, - { name: 'Unraid', icon: '📦', category: 'Management' }, - { name: 'TrueNAS', icon: '💾', category: 'Management' }, - - // Security - { name: 'Vaultwarden', icon: '🔐', category: 'Security' }, - { name: 'Bitwarden', icon: '🗝️', category: 'Security' }, - { name: 'Keycloak', icon: '🔑', category: 'Security' }, - { name: 'Authelia', icon: '🛡️', category: 'Security' }, - { name: 'OpenVPN', icon: '🌐', category: 'Security' }, - { name: 'WireGuard', icon: '📡', category: 'Security' }, - - // Development - { name: 'Gitea', icon: '🐙', category: 'Development' }, - { name: 'GitLab', icon: '🦊', category: 'Development' }, - { name: 'Forgejo', icon: '🔧', category: 'Development' }, - { name: 'Jenkins', icon: '🤖', category: 'Development' }, - { name: 'Drone', icon: '🚁', category: 'Development' }, - { name: 'Code Server', icon: '💻', category: 'Development' }, - - // Monitoring - { name: 'Grafana', icon: '📊', category: 'Monitoring' }, - { name: 'Prometheus', icon: '⚙️', category: 'Monitoring' }, - { name: 'Uptime Kuma', icon: '📈', category: 'Monitoring' }, - { name: 'Netdata', icon: '🔍', category: 'Monitoring' }, - { name: 'New Relic', icon: '👁️', category: 'Monitoring' }, - { name: 'Kibana', icon: '📉', category: 'Monitoring' }, - - // Additional - { name: 'Home Assistant', icon: '🏡', category: 'Smart Home' }, - { name: 'Node-RED', icon: '🔴', category: 'Smart Home' }, - { name: 'OpenHAB', icon: '⚙️', category: 'Smart Home' }, - { name: 'Immich', icon: '📷', category: 'Media' }, - { name: 'Calibre', icon: '📚', category: 'Productivity' }, - { name: 'Paperless', icon: '📄', category: 'Productivity' }, -]; - -const categories = [ - 'All', - 'Media', - 'Downloads', - 'Productivity', - 'Management', - 'Security', - 'Development', - 'Monitoring', - 'Smart Home', -]; - -export default function AppShowcase() { - const [activeCategory, setActiveCategory] = useState('All'); - - const filteredApps = - activeCategory === 'All' - ? apps - : apps.filter((app) => app.category === activeCategory); - - return ( -- Deploy your favorite apps instantly with pre-configured templates, automatic SSL certificates, and integrated DNS management. -
-App Templates
-Configuration
-Deploy
-+ Deploy your favorite apps instantly with pre-configured templates, automatic SSL certificates, and integrated DNS management. +
+App Templates
+Configuration
+Deploy
+