diff --git a/src/app/docs/catalog/actual-budget/page.tsx b/src/app/docs/catalog/actual-budget/page.tsx new file mode 100644 index 0000000..fe40fee --- /dev/null +++ b/src/app/docs/catalog/actual-budget/page.tsx @@ -0,0 +1,128 @@ +import Navbar from '@/components/Navbar'; +import Footer from '@/components/Footer'; +import DocsLayout from '@/components/docs/DocsLayout'; + +export const metadata = { + title: 'Install Actual Budget — DashCaddy Docs', + description: 'Install and configure Actual Budget via DashCaddy. Privacy-focused budgeting app with envelope budgeting', +}; + +export default function actualBudgetDocsPage() { + return ( +
actualbudget/actual-server:latest
+ Privacy-focused budgeting app with envelope budgeting
+Actual Budget ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Actual Budget, not installing it.
+ +https://status.sami (or your host's dashboard URL).actualbudget/actual-server:latest image.budget.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "actual-budget",
+ "host": "local",
+ "subdomain": "budget",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Actual Budget on my home host and expose it at
+budget.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/actual-budget/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull actualbudget/actual-server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Actual Budget → Update.
The config volume for Actual Budget is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Actual Budget:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Actual Budget is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: actual-budget. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
adminer:latest
+ Lightweight database management in single PHP file
+Adminer ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Adminer, not installing it.
+ +https://status.sami (or your host's dashboard URL).adminer:latest image.adminer.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "adminer",
+ "host": "local",
+ "subdomain": "adminer",
+ "port": "{{PORT}}",
+ "environment": {
+ "ADMINER_DEFAULT_SERVER": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Adminer on my home host and expose it at
+adminer.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/adminer:/var/www/htmlAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +ADMINER_DEFAULT_SERVEROverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull adminer:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Adminer → Update.
The config volume for Adminer is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Adminer:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Adminer is in the Database category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: adminer. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/airsonic-advanced:latest
+ Free web-based media streamer
+Airsonic Advanced ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Airsonic Advanced, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/airsonic-advanced:latest image.airsonic.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "airsonic",
+ "host": "local",
+ "subdomain": "airsonic",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Airsonic Advanced on my home host and expose it at
+airsonic.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/airsonic/config:/config/music:/music/podcasts:/podcastsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/airsonic-advanced:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Airsonic Advanced → Update.
The config volume for Airsonic Advanced is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Airsonic Advanced:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Airsonic Advanced is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: airsonic. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/advplyr/audiobookshelf:latest
+ Self-hosted audiobook and podcast server
+Audiobookshelf ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Audiobookshelf, not installing it.
+ +/media/audiobooks).https://status.sami (or your host's dashboard URL).ghcr.io/advplyr/audiobookshelf:latest image.audiobooks.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "audiobookshelf",
+ "host": "local",
+ "subdomain": "audiobooks",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Audiobookshelf on my home host and expose it at
+audiobooks.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Audiobookshelf will see as /audiobooks. For multi-library setups (movies + TV + music), bind the parent folder and let Audiobookshelf discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).DashCaddy creates these volume mounts:
+/opt/audiobookshelf/config:/config/opt/audiobookshelf/metadata:/metadataMEDIA_PATH:/audiobooksAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/advplyr/audiobookshelf:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Audiobookshelf → Update.
The config volume for Audiobookshelf is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Audiobookshelf:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Audiobookshelf is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: audiobookshelf. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/goauthentik/server:latest
+ Identity provider and single sign-on platform
+Authentik ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Authentik, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/goauthentik/server:latest image.auth.<your-domain>./-/health/live/) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "authentik",
+ "host": "local",
+ "subdomain": "auth",
+ "port": "{{PORT}}",
+ "environment": {
+ "AUTHENTIK_SECRET_KEY": "",
+ "AUTHENTIK_ERROR_REPORTING__ENABLED": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Authentik on my home host and expose it at
+auth.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/authentik/media:/media/opt/authentik/templates:/templatesAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +AUTHENTIK_SECRET_KEYAUTHENTIK_ERROR_REPORTING__ENABLEDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/goauthentik/server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Authentik → Update.
The config volume for Authentik is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Authentik:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Authentik is in the Security category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: authentik. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/bazarr:latest
+ Automatic subtitle downloader for Sonarr and Radarr
+Bazarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Bazarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/bazarr:latest image.bazarr.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "bazarr",
+ "host": "local",
+ "subdomain": "bazarr",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Bazarr on my home host and expose it at
+bazarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/bazarr/config:/config/movies:/movies/tv:/tvAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/bazarr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Bazarr → Update.
The config volume for Bazarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Bazarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Bazarr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: bazarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ubuntu/bind9:latest
+ Industry-standard DNS server - powerful and flexible
+BIND9 DNS Server ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using BIND9 DNS Server, not installing it.
+ +https://status.sami (or your host's dashboard URL).ubuntu/bind9:latest image.dns2.<your-domain>.tcp://localhost:53) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "bind9",
+ "host": "local",
+ "subdomain": "dns2",
+ "port": "{{PORT}}",
+ "environment": {
+ "BIND9_USER": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy BIND9 DNS Server on my home host and expose it at
+dns2.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/bind9/config:/etc/bind/opt/bind9/cache:/var/cache/bind/opt/bind9/records:/var/lib/bindAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +BIND9_USERTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ubuntu/bind9:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → BIND9 DNS Server → Update.
The config volume for BIND9 DNS Server is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with BIND9 DNS Server:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +BIND9 DNS Server is in the DNS category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: bind9. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/bookstack:latest
+ Simple wiki and documentation platform
+BookStack ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using BookStack, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/bookstack:latest image.wiki.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "bookstack",
+ "host": "local",
+ "subdomain": "wiki",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "APP_URL": "",
+ "DB_HOST": "",
+ "DB_DATABASE": "",
+ "DB_USERNAME": "",
+ "DB_PASSWORD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy BookStack on my home host and expose it at
+wiki.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/bookstack/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDAPP_URLDB_HOSTDB_DATABASEDB_USERNAMEDB_PASSWORDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/bookstack:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → BookStack → Update.
The config volume for BookStack is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with BookStack:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +BookStack is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: bookstack. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
lscr.io/linuxserver/calibre-web:latest
+ Web-based ebook manager and reader
+Calibre-Web ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Calibre-Web, not installing it.
+ +/media/books).https://status.sami (or your host's dashboard URL).lscr.io/linuxserver/calibre-web:latest image.books.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "calibre-web",
+ "host": "local",
+ "subdomain": "books",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Calibre-Web on my home host and expose it at
+books.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Calibre-Web will see as /books. For multi-library setups (movies + TV + music), bind the parent folder and let Calibre-Web discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).DashCaddy creates these volume mounts:
+/opt/calibre-web/config:/configMEDIA_PATH:/booksAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull lscr.io/linuxserver/calibre-web:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Calibre-Web → Update.
The config volume for Calibre-Web is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Calibre-Web:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Calibre-Web is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: calibre-web. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/dgtlmoon/changedetection.io:latest
+ Monitor websites for changes
+Change Detection ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Change Detection, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/dgtlmoon/changedetection.io:latest image.watch.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "changedetection",
+ "host": "local",
+ "subdomain": "watch",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Change Detection on my home host and expose it at
+watch.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/changedetection/data:/datastoreAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/dgtlmoon/changedetection.io:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Change Detection → Update.
The config volume for Change Detection is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Change Detection:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Change Detection is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: changedetection. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
coredns/coredns:latest
+ Cloud-native DNS server - lightweight and flexible
+CoreDNS ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using CoreDNS, not installing it.
+ +https://status.sami (or your host's dashboard URL).coredns/coredns:latest image.dns4.<your-domain>.tcp://localhost:53) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "coredns",
+ "host": "local",
+ "subdomain": "dns4",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy CoreDNS on my home host and expose it at
+dns4.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/coredns/config:/etc/corednsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull coredns/coredns:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → CoreDNS → Update.
The config volume for CoreDNS is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with CoreDNS:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +CoreDNS is in the DNS category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: coredns. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
crowdsecurity/crowdsec:latest
+ Collaborative intrusion prevention system
+CrowdSec ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using CrowdSec, not installing it.
+ +https://status.sami (or your host's dashboard URL).crowdsecurity/crowdsec:latest image.crowdsec.<your-domain>./health) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "crowdsec",
+ "host": "local",
+ "subdomain": "crowdsec",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy CrowdSec on my home host and expose it at
+crowdsec.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/crowdsec/config:/etc/crowdsec/opt/crowdsec/data:/var/lib/crowdsec/data/var/log:/var/log:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull crowdsecurity/crowdsec:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → CrowdSec → Update.
The config volume for CrowdSec is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with CrowdSec:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +CrowdSec is in the Security category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: crowdsec. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
N/A
+ One-click root CA certificate installer for your network
+DashCA ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using DashCA, not installing it.
+ +https://status.sami (or your host's dashboard URL).N/A image.ca.<your-domain>./healthz) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "dashca",
+ "host": "local",
+ "subdomain": "ca",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy DashCA on my home host and expose it at
+ca.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+All paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull N/A every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → DashCA → Update.
The config volume for DashCA is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with DashCA:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +DashCA is in the Security category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: dashca. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
N/A
+ Live digital clock with time, date, and day of week
+Digital Clock ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Digital Clock, not installing it.
+ +https://status.sami (or your host's dashboard URL).N/A image.digital-clock.<your-domain>./healthz) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "digital-clock",
+ "host": "local",
+ "subdomain": "digital-clock",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Digital Clock on my home host and expose it at
+digital-clock.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+All paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull N/A every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Digital Clock → Update.
The config volume for Digital Clock is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Digital Clock:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Digital Clock is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: digital-clock. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
amir20/dozzle:latest
+ Real-time Docker container log viewer
+Dozzle ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Dozzle, not installing it.
+ +https://status.sami (or your host's dashboard URL).amir20/dozzle:latest image.logs.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "dozzle",
+ "host": "local",
+ "subdomain": "logs",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Dozzle on my home host and expose it at
+logs.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/var/run/docker.sock:/var/run/docker.sock:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull amir20/dozzle:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Dozzle → Update.
The config volume for Dozzle is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Dozzle:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Dozzle is in the Monitoring category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: dozzle. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
drone/drone:latest
+ Container-native continuous delivery platform
+Drone CI ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Drone CI, not installing it.
+ +https://status.sami (or your host's dashboard URL).drone/drone:latest image.drone.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "drone",
+ "host": "local",
+ "subdomain": "drone",
+ "port": "{{PORT}}",
+ "environment": {
+ "DRONE_GITEA_SERVER": "",
+ "DRONE_RPC_SECRET": "",
+ "DRONE_SERVER_HOST": "",
+ "DRONE_SERVER_PROTO": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Drone CI on my home host and expose it at
+drone.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/drone/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +DRONE_GITEA_SERVERDRONE_RPC_SECRETDRONE_SERVER_HOSTDRONE_SERVER_PROTOOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull drone/drone:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Drone CI → Update.
The config volume for Drone CI is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Drone CI:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Drone CI is in the Development category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: drone. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
emby/embyserver:latest
+ Personal media server with apps for all devices
+Emby ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Emby, not installing it.
+ +/media).https://status.sami (or your host's dashboard URL).emby/embyserver:latest image.emby.<your-domain>./emby/web/) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "emby",
+ "host": "local",
+ "subdomain": "emby",
+ "port": "{{PORT}}",
+ "environment": {
+ "UID": "",
+ "GID": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Emby on my home host and expose it at
+emby.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Emby will see as /media. For multi-library setups (movies + TV + music), bind the parent folder and let Emby discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).DashCaddy creates these volume mounts:
+/opt/emby/config:/config/opt/emby/cache:/cacheMEDIA_PATH:/mediaAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +UIDGIDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull emby/embyserver:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Emby → Update.
The config volume for Emby is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Emby:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Emby is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: emby. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
excalidraw/excalidraw:latest
+ Collaborative virtual whiteboard for sketching and diagrams
+Excalidraw ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Excalidraw, not installing it.
+ +https://status.sami (or your host's dashboard URL).excalidraw/excalidraw:latest image.draw.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "excalidraw",
+ "host": "local",
+ "subdomain": "draw",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Excalidraw on my home host and expose it at
+draw.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/excalidraw/data:/var/lib/excalidrawAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull excalidraw/excalidraw:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Excalidraw → Update.
The config volume for Excalidraw is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Excalidraw:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Excalidraw is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: excalidraw. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
filebrowser/filebrowser:latest
+ Web-based file manager with sharing capabilities
+FileBrowser ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using FileBrowser, not installing it.
+ +https://status.sami (or your host's dashboard URL).filebrowser/filebrowser:latest image.files.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "filebrowser",
+ "host": "local",
+ "subdomain": "files",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy FileBrowser on my home host and expose it at
+files.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/filebrowser/data:/srv/opt/filebrowser/database:/databaseAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull filebrowser/filebrowser:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → FileBrowser → Update.
The config volume for FileBrowser is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with FileBrowser:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +FileBrowser is in the Files category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: filebrowser. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
gitea/gitea:latest
+ Lightweight self-hosted Git service
+Gitea ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Gitea, not installing it.
+ +https://status.sami (or your host's dashboard URL).gitea/gitea:latest image.gitea.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "gitea",
+ "host": "local",
+ "subdomain": "gitea",
+ "port": "{{PORT}}",
+ "environment": {
+ "USER_UID": "",
+ "USER_GID": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Gitea on my home host and expose it at
+gitea.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/gitea/data:/data/etc/timezone:/etc/timezone:ro/etc/localtime:/etc/localtime:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +USER_UIDUSER_GIDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull gitea/gitea:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Gitea → Update.
The config volume for Gitea is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Gitea:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Gitea is in the Development category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: gitea. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
grafana/grafana:latest
+ Analytics and interactive visualization platform
+Grafana ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Grafana, not installing it.
+ +https://status.sami (or your host's dashboard URL).grafana/grafana:latest image.grafana.<your-domain>./api/health) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "grafana",
+ "host": "local",
+ "subdomain": "grafana",
+ "port": "{{PORT}}",
+ "environment": {
+ "GF_SECURITY_ADMIN_PASSWORD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Grafana on my home host and expose it at
+grafana.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +grafana.<your-domain> URL.DashCaddy creates these volume mounts:
+/opt/grafana/data:/var/lib/grafanaAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +GF_SECURITY_ADMIN_PASSWORDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull grafana/grafana:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Grafana → Update.
The config volume for Grafana is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Grafana:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Grafana is in the Monitoring category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: grafana. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/ajnart/homarr:latest
+ Sleek dashboard for all your services
+Homarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Homarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/ajnart/homarr:latest image.homarr.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "homarr",
+ "host": "local",
+ "subdomain": "homarr",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Homarr on my home host and expose it at
+homarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/homarr/configs:/app/data/configs/opt/homarr/icons:/app/public/icons/var/run/docker.sock:/var/run/docker.sock:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/ajnart/homarr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Homarr → Update.
The config volume for Homarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Homarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Homarr is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: homarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
homeassistant/home-assistant:stable
+ Open source home automation platform
+Home Assistant ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Home Assistant, not installing it.
+ +https://status.sami (or your host's dashboard URL).homeassistant/home-assistant:stable image.home.<your-domain>./api/) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "homeassistant",
+ "host": "local",
+ "subdomain": "home",
+ "port": "{{PORT}}",
+ "environment": {
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Home Assistant on my home host and expose it at
+home.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/homeassistant/config:/config/etc/localtime:/etc/localtime:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +TZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull homeassistant/home-assistant:stable every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Home Assistant → Update.
The config volume for Home Assistant is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Home Assistant:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Home Assistant is in the Home Automation category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: homeassistant. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/gethomepage/homepage:latest
+ Highly customizable application dashboard
+Homepage ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Homepage, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/gethomepage/homepage:latest image.dashboard.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "homepage",
+ "host": "local",
+ "subdomain": "dashboard",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Homepage on my home host and expose it at
+dashboard.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/homepage/config:/app/config/var/run/docker.sock:/var/run/docker.sock:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/gethomepage/homepage:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Homepage → Update.
The config volume for Homepage is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Homepage:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Homepage is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: homepage. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/immich-app/immich-server:latest
+ Self-hosted Google Photos alternative
+Immich ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Immich, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/immich-app/immich-server:latest image.photos.<your-domain>./api/server-info/ping) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "immich",
+ "host": "local",
+ "subdomain": "photos",
+ "port": "{{PORT}}",
+ "environment": {
+ "DB_HOSTNAME": "",
+ "DB_USERNAME": "",
+ "DB_PASSWORD": "",
+ "DB_DATABASE_NAME": "",
+ "REDIS_HOSTNAME": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Immich on my home host and expose it at
+photos.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/immich/upload:/usr/src/app/upload/opt/immich/library:/usr/src/app/libraryAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +DB_HOSTNAMEDB_USERNAMEDB_PASSWORDDB_DATABASE_NAMEREDIS_HOSTNAMEOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/immich-app/immich-server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Immich → Update.
The config volume for Immich is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Immich:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Immich is in the Photos category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: immich. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
corentinth/it-tools:latest
+ Collection of handy developer and IT tools in one place
+IT Tools ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using IT Tools, not installing it.
+ +https://status.sami (or your host's dashboard URL).corentinth/it-tools:latest image.tools.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "it-tools",
+ "host": "local",
+ "subdomain": "tools",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy IT Tools on my home host and expose it at
+tools.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/it-tools/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull corentinth/it-tools:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → IT Tools → Update.
The config volume for IT Tools is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with IT Tools:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +IT Tools is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: it-tools. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
jlesage/jdownloader-2:latest
+ Download manager for file hosting sites
+JDownloader 2 ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using JDownloader 2, not installing it.
+ +https://status.sami (or your host's dashboard URL).jlesage/jdownloader-2:latest image.jdownloader.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "jdownloader",
+ "host": "local",
+ "subdomain": "jdownloader",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy JDownloader 2 on my home host and expose it at
+jdownloader.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/jdownloader/config:/config/downloads:/outputAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull jlesage/jdownloader-2:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → JDownloader 2 → Update.
The config volume for JDownloader 2 is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with JDownloader 2:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +JDownloader 2 is in the Downloads category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: jdownloader. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
jellyfin/jellyfin:latest
+ Free software media system - alternative to Plex
+Jellyfin ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Jellyfin, not installing it.
+ +/media).https://status.sami (or your host's dashboard URL).jellyfin/jellyfin:latest image.jellyfin.<your-domain>./health) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "jellyfin",
+ "host": "local",
+ "subdomain": "jellyfin",
+ "port": "{{PORT}}",
+ "environment": {
+ "JELLYFIN_PublishedServerUrl": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Jellyfin on my home host and expose it at
+jellyfin.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Jellyfin will see as /media. For multi-library setups (movies + TV + music), bind the parent folder and let Jellyfin discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).DashCaddy creates these volume mounts:
+/opt/jellyfin/config:/config/opt/jellyfin/cache:/cacheMEDIA_PATH:/mediaAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +JELLYFIN_PublishedServerUrlOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull jellyfin/jellyfin:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Jellyfin → Update.
The config volume for Jellyfin is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Jellyfin:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Jellyfin is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: jellyfin. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
jenkins/jenkins:lts
+ Automation server for CI/CD pipelines
+Jenkins ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Jenkins, not installing it.
+ +https://status.sami (or your host's dashboard URL).jenkins/jenkins:lts image.jenkins.<your-domain>./login) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "jenkins",
+ "host": "local",
+ "subdomain": "jenkins",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Jenkins on my home host and expose it at
+jenkins.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/jenkins/data:/var/jenkins_homeAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull jenkins/jenkins:lts every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Jenkins → Update.
The config volume for Jenkins is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Jenkins:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Jenkins is in the Development category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: jenkins. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
jvmilazz0/kavita:latest
+ Digital reading platform for manga, comics, and books
+Kavita ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Kavita, not installing it.
+ +/media/reading).https://status.sami (or your host's dashboard URL).jvmilazz0/kavita:latest image.kavita.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "kavita",
+ "host": "local",
+ "subdomain": "kavita",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Kavita on my home host and expose it at
+kavita.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Kavita will see as /data. For multi-library setups (movies + TV + music), bind the parent folder and let Kavita discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).DashCaddy creates these volume mounts:
+/opt/kavita/config:/kavita/configMEDIA_PATH:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull jvmilazz0/kavita:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Kavita → Update.
The config volume for Kavita is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Kavita:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Kavita is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: kavita. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
gotson/komga:latest
+ Comic and manga media server with web reader
+Komga ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Komga, not installing it.
+ +/media/comics).https://status.sami (or your host's dashboard URL).gotson/komga:latest image.komga.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "komga",
+ "host": "local",
+ "subdomain": "komga",
+ "port": "{{PORT}}",
+ "environment": {
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Komga on my home host and expose it at
+komga.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Komga will see as /data. For multi-library setups (movies + TV + music), bind the parent folder and let Komga discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).DashCaddy creates these volume mounts:
+/opt/komga/config:/configMEDIA_PATH:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +TZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull gotson/komga:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Komga → Update.
The config volume for Komga is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Komga:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Komga is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: komga. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/lidarr:latest
+ Music collection manager for Usenet and BitTorrent
+Lidarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Lidarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/lidarr:latest image.lidarr.<your-domain>./api/v1/system/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "lidarr",
+ "host": "local",
+ "subdomain": "lidarr",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Lidarr on my home host and expose it at
+lidarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/lidarr/config:/config/downloads:/downloads/music:/musicAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/lidarr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Lidarr → Update.
The config volume for Lidarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Lidarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Lidarr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: lidarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
mailserver/docker-mailserver:latest
+ Full-featured email server with SMTP, IMAP, spam filtering
+Docker Mailserver ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Docker Mailserver, not installing it.
+ +https://status.sami (or your host's dashboard URL).mailserver/docker-mailserver:latest image.mail.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "mailserver",
+ "host": "local",
+ "subdomain": "mail",
+ "port": "{{PORT}}",
+ "environment": {
+ "ENABLE_SPAMASSASSIN": "",
+ "ENABLE_CLAMAV": "",
+ "ENABLE_FAIL2BAN": "",
+ "ONE_DIR": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Docker Mailserver on my home host and expose it at
+mail.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/mailserver/data:/var/mail/opt/mailserver/state:/var/mail-state/opt/mailserver/logs:/var/log/mail/opt/mailserver/config:/tmp/docker-mailserverAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +ENABLE_SPAMASSASSINENABLE_CLAMAVENABLE_FAIL2BANONE_DIRTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull mailserver/docker-mailserver:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Docker Mailserver → Update.
The config volume for Docker Mailserver is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Docker Mailserver:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Docker Mailserver is in the Communication category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: mailserver. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
matrixdotorg/synapse:latest
+ Decentralized, secure messaging and collaboration
+Matrix Synapse ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Matrix Synapse, not installing it.
+ +https://status.sami (or your host's dashboard URL).matrixdotorg/synapse:latest image.matrix.<your-domain>./_matrix/client/versions) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "matrix",
+ "host": "local",
+ "subdomain": "matrix",
+ "port": "{{PORT}}",
+ "environment": {
+ "SYNAPSE_SERVER_NAME": "",
+ "SYNAPSE_REPORT_STATS": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Matrix Synapse on my home host and expose it at
+matrix.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/matrix/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +SYNAPSE_SERVER_NAMESYNAPSE_REPORT_STATSOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull matrixdotorg/synapse:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Matrix Synapse → Update.
The config volume for Matrix Synapse is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Matrix Synapse:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Matrix Synapse is in the Communication category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: matrix. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/mealie-recipes/mealie:latest
+ Recipe manager and meal planner with grocery lists
+Mealie ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Mealie, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/mealie-recipes/mealie:latest image.mealie.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "mealie",
+ "host": "local",
+ "subdomain": "mealie",
+ "port": "{{PORT}}",
+ "environment": {
+ "ALLOW_SIGNUP": "",
+ "MAX_WORKERS": "",
+ "WEB_CONCURRENCY": "",
+ "BASE_URL": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Mealie on my home host and expose it at
+mealie.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/mealie/data:/app/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +ALLOW_SIGNUPMAX_WORKERSWEB_CONCURRENCYBASE_URLOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/mealie-recipes/mealie:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Mealie → Update.
The config volume for Mealie is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Mealie:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Mealie is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: mealie. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
itzg/minecraft-server:latest
+ Minecraft Java Edition dedicated server
+Minecraft Server ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Minecraft Server, not installing it.
+ +https://status.sami (or your host's dashboard URL).itzg/minecraft-server:latest image.mc.<your-domain>.tcp://localhost:25565) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "minecraft",
+ "host": "local",
+ "subdomain": "mc",
+ "port": "{{PORT}}",
+ "environment": {
+ "EULA": "",
+ "TYPE": "",
+ "VERSION": "",
+ "MEMORY": "",
+ "MAX_PLAYERS": "",
+ "MOTD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Minecraft Server on my home host and expose it at
+mc.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/minecraft/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +EULATYPEVERSIONMEMORYMAX_PLAYERSMOTDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull itzg/minecraft-server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Minecraft Server → Update.
The config volume for Minecraft Server is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Minecraft Server:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Minecraft Server is in the Gaming category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: minecraft. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
mongo:latest
+ Document-oriented NoSQL database
+MongoDB ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using MongoDB, not installing it.
+ +https://status.sami (or your host's dashboard URL).mongo:latest image.mongo.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "mongodb",
+ "host": "local",
+ "subdomain": "mongo",
+ "port": "{{PORT}}",
+ "environment": {
+ "MONGO_INITDB_ROOT_USERNAME": "",
+ "MONGO_INITDB_ROOT_PASSWORD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy MongoDB on my home host and expose it at
+mongo.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/mongodb/data:/data/dbAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull mongo:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → MongoDB → Update.
The config volume for MongoDB is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with MongoDB:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +MongoDB is in the Database category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: mongodb. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
deluan/navidrome:latest
+ Modern music server and streamer
+Navidrome ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Navidrome, not installing it.
+ +https://status.sami (or your host's dashboard URL).deluan/navidrome:latest image.music.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "navidrome",
+ "host": "local",
+ "subdomain": "music",
+ "port": "{{PORT}}",
+ "environment": {
+ "ND_SCANSCHEDULE": "",
+ "ND_LOGLEVEL": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Navidrome on my home host and expose it at
+music.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/navidrome/data:/data/music:/music:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +ND_SCANSCHEDULEND_LOGLEVELOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull deluan/navidrome:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Navidrome → Update.
The config volume for Navidrome is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Navidrome:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Navidrome is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: navidrome. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
nextcloud:latest
+ Self-hosted productivity platform and file sync
+Nextcloud ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Nextcloud, not installing it.
+ +https://status.sami (or your host's dashboard URL).nextcloud:latest image.cloud.<your-domain>./status.php) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "nextcloud",
+ "host": "local",
+ "subdomain": "cloud",
+ "port": "{{PORT}}",
+ "environment": {
+ "NEXTCLOUD_ADMIN_USER": "",
+ "NEXTCLOUD_ADMIN_PASSWORD": "",
+ "NEXTCLOUD_TRUSTED_DOMAINS": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Nextcloud on my home host and expose it at
+cloud.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/nextcloud/html:/var/www/html/opt/nextcloud/data:/var/www/html/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +NEXTCLOUD_ADMIN_USERNEXTCLOUD_ADMIN_PASSWORDNEXTCLOUD_TRUSTED_DOMAINSOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull nextcloud:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Nextcloud → Update.
The config volume for Nextcloud is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Nextcloud:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Nextcloud is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: nextcloud. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
nodered/node-red:latest
+ Flow-based programming for IoT and automation
+Node-RED ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Node-RED, not installing it.
+ +https://status.sami (or your host's dashboard URL).nodered/node-red:latest image.nodered.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "nodered",
+ "host": "local",
+ "subdomain": "nodered",
+ "port": "{{PORT}}",
+ "environment": {
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Node-RED on my home host and expose it at
+nodered.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/nodered/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +TZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull nodered/node-red:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Node-RED → Update.
The config volume for Node-RED is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Node-RED:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Node-RED is in the Home Automation category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: nodered. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/nzbget:latest
+ Efficient Usenet downloader
+NZBGet ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using NZBGet, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/nzbget:latest image.nzbget.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "nzbget",
+ "host": "local",
+ "subdomain": "nzbget",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy NZBGet on my home host and expose it at
+nzbget.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/nzbget/config:/config/downloads:/downloadsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/nzbget:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → NZBGet → Update.
The config volume for NZBGet is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with NZBGet:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +NZBGet is in the Downloads category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: nzbget. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
outlinewiki/outline:latest
+ Modern team knowledge base and wiki
+Outline ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Outline, not installing it.
+ +https://status.sami (or your host's dashboard URL).outlinewiki/outline:latest image.outline.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "outline",
+ "host": "local",
+ "subdomain": "outline",
+ "port": "{{PORT}}",
+ "environment": {
+ "URL": "",
+ "SECRET_KEY": "",
+ "DATABASE_URL": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Outline on my home host and expose it at
+outline.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/outline/data:/var/lib/outline/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +URLSECRET_KEYDATABASE_URLOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull outlinewiki/outline:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Outline → Update.
The config volume for Outline is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Outline:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Outline is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: outline. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
+ 77 apps across 17 categories. New templates are added whenever the upstream Docker image gains traction. The canonical source is dashcaddy-api/src/docker/app-templates.js.
+
Stream your personal media collection anywhere
+ + +Free software media system - alternative to Plex
+ + +Personal media server with apps for all devices
+ + +Self-hosted audiobook and podcast server
+ + +Modern music server and streamer
+ + +Web-based ebook manager and reader
+ + +Digital reading platform for manga, comics, and books
+ + +Glass-front console stereo that tunes curated real internet stations (SomaFM, KEXP, Radio Paradise, and more) through a beautiful analog UI
+ + +Comic and manga media server with web reader
+ + +Free web-based media streamer
+ +Media request and discovery manager for Plex, Jellyfin, and Emby
+ + +Smart PVR for newsgroup and bittorrent users
+ + +Movie collection manager for Usenet and BitTorrent
+ + +Plex media server monitoring and statistics
+ + +Indexer manager/proxy for *arr applications
+ + +Automatic subtitle downloader for Sonarr and Radarr
+ + +Music collection manager for Usenet and BitTorrent
+ + +Book and audiobook collection manager
+ +Lightweight BitTorrent client with web UI
+ + +Lightweight BitTorrent client
+ + +Binary newsreader for Usenet downloads
+ + +Download manager for file hosting sites
+ + +Efficient Usenet downloader
+ +Self-hosted productivity platform and file sync
+ + +Document management system - scan, organize, and search documents
+ + +Simple wiki and documentation platform
+ + +Privacy-focused budgeting app with envelope budgeting
+ + +Recipe manager and meal planner with grocery lists
+ + +Modern team knowledge base and wiki
+ + +Hierarchical knowledge base and note-taking app
+ + +Collaborative virtual whiteboard for sketching and diagrams
+ + +End-to-end encrypted notes app
+ +Lightweight self-hosted Git service
+ + +Visual Studio Code in your browser
+ + +Automation server for CI/CD pipelines
+ + +Container-native continuous delivery platform
+ +Docker container management UI
+ + +Automatic Docker container image updates
+ +Self-hosted monitoring tool like Uptime Robot
+ + +Analytics and interactive visualization platform
+ + +Real-time Docker container log viewer
+ + +Internet speed monitoring over time
+ +Network-wide ad blocker and DNS sinkhole
+ + +Fast, modern, secure VPN tunnel
+ +Modern DNS server with web UI for managing private zones
+ + +Industry-standard DNS server - powerful and flexible
+ + +High-performance DNS server with SQL backend
+ + +Cloud-native DNS server - lightweight and flexible
+ +Web-based file manager with sharing capabilities
+ + +Continuous file synchronization between devices
+ + +Multi-server SSH file manager — browse, edit, upload, and exec across all your machines from one browser tab
+ +Team collaboration platform like Slack
+ + +Decentralized, secure messaging and collaboration
+ + +Modern webmail client with rich features
+ + +Full-featured email server with SMTP, IMAP, spam filtering
+ +Open source home automation platform
+ + +Flow-based programming for IoT and automation
+ +Advanced open-source relational database
+ + +In-memory data structure store and cache
+ + +Document-oriented NoSQL database
+ + +Lightweight database management in single PHP file
+ +One-click root CA certificate installer for your network
+ + +Lightweight Bitwarden-compatible password manager
+ + +Identity provider and single sign-on platform
+ + +Collaborative intrusion prevention system
+ +Self-hosted Google Photos alternative
+ + +AI-powered photo management
+ +Highly customizable application dashboard
+ + +Self-hosted PDF manipulation tool - merge, split, convert, and more
+ + +Live weather widget with temperature, conditions, and wind
+ + +Sleek dashboard for all your services
+ + +Live digital clock with time, date, and day of week
+ + +Collection of handy developer and IT tools in one place
+ + +Monitor websites for changes
+ + +Simple HTTP request debugging service
+ +Minecraft Java Edition dedicated server
+ + +Valheim dedicated server for multiplayer Viking adventures
+ +DashCaddy accepts custom templates via the same REST API used to deploy the built-in ones. Submit a template JSON via POST /api/v1/apps/templates with the schema documented in the API guide, or fork dashcaddy-api/src/docker/app-templates.js and add your template to the catalog for everyone.
ghcr.io/paperless-ngx/paperless-ngx:latest
+ Document management system - scan, organize, and search documents
+Paperless-ngx ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Paperless-ngx, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/paperless-ngx/paperless-ngx:latest image.paperless.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "paperless-ngx",
+ "host": "local",
+ "subdomain": "paperless",
+ "port": "{{PORT}}",
+ "environment": {
+ "PAPERLESS_URL": "",
+ "USERMAP_UID": "",
+ "USERMAP_GID": "",
+ "PAPERLESS_TIME_ZONE": "",
+ "PAPERLESS_OCR_LANGUAGE": "",
+ "PAPERLESS_SECRET_KEY": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Paperless-ngx on my home host and expose it at
+paperless.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/paperless/data:/usr/src/paperless/data/opt/paperless/media:/usr/src/paperless/media/opt/paperless/consume:/usr/src/paperless/consumeAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PAPERLESS_URLUSERMAP_UIDUSERMAP_GIDPAPERLESS_TIME_ZONEPAPERLESS_OCR_LANGUAGEPAPERLESS_SECRET_KEYOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/paperless-ngx/paperless-ngx:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Paperless-ngx → Update.
The config volume for Paperless-ngx is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Paperless-ngx:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Paperless-ngx is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: paperless-ngx. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
photoprism/photoprism:latest
+ AI-powered photo management
+PhotoPrism ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using PhotoPrism, not installing it.
+ +https://status.sami (or your host's dashboard URL).photoprism/photoprism:latest image.gallery.<your-domain>./api/v1/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "photoprism",
+ "host": "local",
+ "subdomain": "gallery",
+ "port": "{{PORT}}",
+ "environment": {
+ "PHOTOPRISM_ADMIN_PASSWORD": "",
+ "PHOTOPRISM_SITE_URL": "",
+ "PHOTOPRISM_DATABASE_DRIVER": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy PhotoPrism on my home host and expose it at
+gallery.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/photoprism/storage:/photoprism/storage/opt/photoprism/originals:/photoprism/originalsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PHOTOPRISM_ADMIN_PASSWORDPHOTOPRISM_SITE_URLPHOTOPRISM_DATABASE_DRIVEROverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull photoprism/photoprism:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → PhotoPrism → Update.
The config volume for PhotoPrism is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with PhotoPrism:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +PhotoPrism is in the Photos category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: photoprism. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
pihole/pihole:latest
+ Network-wide ad blocker and DNS sinkhole
+Pi-hole ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Pi-hole, not installing it.
+ +https://status.sami (or your host's dashboard URL).pihole/pihole:latest image.pihole.<your-domain>./admin/) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "pihole",
+ "host": "local",
+ "subdomain": "pihole",
+ "port": "{{PORT}}",
+ "environment": {
+ "WEBPASSWORD": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Pi-hole on my home host and expose it at
+pihole.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +pihole.<your-domain> URL.DashCaddy creates these volume mounts:
+/opt/pihole/etc:/etc/pihole/opt/pihole/dnsmasq:/etc/dnsmasq.dAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +WEBPASSWORDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull pihole/pihole:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Pi-hole → Update.
The config volume for Pi-hole is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Pi-hole:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Pi-hole is in the Networking category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: pihole. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
plexinc/pms-docker:latest
+ Stream your personal media collection anywhere
+Plex ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Plex, not installing it.
+ +/media).https://status.sami (or your host's dashboard URL).plexinc/pms-docker:latest image.plex.<your-domain>./web/index.html) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "plex",
+ "host": "local",
+ "subdomain": "plex",
+ "port": "{{PORT}}",
+ "environment": {
+ "PLEX_CLAIM": "",
+ "ADVERTISE_IP": "",
+ "PLEX_UID": "",
+ "PLEX_GID": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Plex on my home host and expose it at
+plex.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +The media mount path you set at deploy time is what Plex will see as /data. For multi-library setups (movies + TV + music), bind the parent folder and let Plex discover subfolders automatically.
1000 (or whichever the container expects — check the Logs tab on first run).Get from https://plex.tv/claim - expires in 4 minutes!
+++ ++ Heads up: Plex Claim Token expires after a few minutes. Get a fresh one from + https://plex.tv/claim + right before you click Deploy. +
+
DashCaddy creates these volume mounts:
+/opt/plex/config:/config/opt/plex/transcode:/transcodeMEDIA_PATH:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PLEX_CLAIMADVERTISE_IPPLEX_UIDPLEX_GIDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull plexinc/pms-docker:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Plex → Update.
The config volume for Plex is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Plex:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Plex is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: plex. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
portainer/portainer-ce:latest
+ Docker container management UI
+Portainer ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Portainer, not installing it.
+ +https://status.sami (or your host's dashboard URL).portainer/portainer-ce:latest image.portainer.<your-domain>./api/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "portainer",
+ "host": "local",
+ "subdomain": "portainer",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Portainer on my home host and expose it at
+portainer.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +portainer.<your-domain> URL.DashCaddy creates these volume mounts:
+/var/run/docker.sock:/var/run/docker.sock/opt/portainer/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull portainer/portainer-ce:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Portainer → Update.
The config volume for Portainer is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Portainer:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Portainer is in the Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: portainer. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
postgres:16-alpine
+ Advanced open-source relational database
+PostgreSQL ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using PostgreSQL, not installing it.
+ +https://status.sami (or your host's dashboard URL).postgres:16-alpine image.postgres.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "postgres",
+ "host": "local",
+ "subdomain": "postgres",
+ "port": "{{PORT}}",
+ "environment": {
+ "POSTGRES_USER": "",
+ "POSTGRES_PASSWORD": "",
+ "POSTGRES_DB": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy PostgreSQL on my home host and expose it at
+postgres.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/postgres/data:/var/lib/postgresql/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +POSTGRES_USERPOSTGRES_PASSWORDPOSTGRES_DBOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull postgres:16-alpine every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → PostgreSQL → Update.
The config volume for PostgreSQL is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with PostgreSQL:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +PostgreSQL is in the Database category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: postgres. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
pschiffe/pdns-mysql:latest
+ High-performance DNS server with SQL backend
+PowerDNS ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using PowerDNS, not installing it.
+ +https://status.sami (or your host's dashboard URL).pschiffe/pdns-mysql:latest image.dns3.<your-domain>./api/v1/servers) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "powerdns",
+ "host": "local",
+ "subdomain": "dns3",
+ "port": "{{PORT}}",
+ "environment": {
+ "PDNS_api": "",
+ "PDNS_api_key": "",
+ "PDNS_webserver": "",
+ "PDNS_webserver_address": "",
+ "PDNS_webserver_allow_from": "",
+ "MYSQL_ROOT_PASSWORD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy PowerDNS on my home host and expose it at
+dns3.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/powerdns/data:/var/lib/mysqlAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PDNS_apiPDNS_api_keyPDNS_webserverPDNS_webserver_addressPDNS_webserver_allow_fromMYSQL_ROOT_PASSWORDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull pschiffe/pdns-mysql:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → PowerDNS → Update.
The config volume for PowerDNS is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with PowerDNS:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +PowerDNS is in the DNS category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: powerdns. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/prowlarr:latest
+ Indexer manager/proxy for *arr applications
+Prowlarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Prowlarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/prowlarr:latest image.prowlarr.<your-domain>./api/v1/system/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "prowlarr",
+ "host": "local",
+ "subdomain": "prowlarr",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Prowlarr on my home host and expose it at
+prowlarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +prowlarr.<your-domain> URL.DashCaddy creates these volume mounts:
+/opt/prowlarr/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/prowlarr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Prowlarr → Update.
The config volume for Prowlarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Prowlarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Prowlarr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: prowlarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/qbittorrent:latest
+ Lightweight BitTorrent client with web UI
+qBittorrent ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using qBittorrent, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/qbittorrent:latest image.torrent.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "qbittorrent",
+ "host": "local",
+ "subdomain": "torrent",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": "",
+ "WEBUI_PORT": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy qBittorrent on my home host and expose it at
+torrent.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/qbittorrent/config:/config/downloads:/downloadsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZWEBUI_PORTOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/qbittorrent:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → qBittorrent → Update.
The config volume for qBittorrent is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with qBittorrent:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +qBittorrent is in the Downloads category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: qbittorrent. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/radarr:latest
+ Movie collection manager for Usenet and BitTorrent
+Radarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Radarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/radarr:latest image.radarr.<your-domain>./api/v3/system/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "radarr",
+ "host": "local",
+ "subdomain": "radarr",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Radarr on my home host and expose it at
+radarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +radarr.<your-domain> URL.DashCaddy creates these volume mounts:
+/opt/radarr/config:/config/downloads:/downloads/movies:/moviesAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/radarr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Radarr → Update.
The config volume for Radarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Radarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Radarr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: radarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/readarr:develop
+ Book and audiobook collection manager
+Readarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Readarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/readarr:develop image.readarr.<your-domain>./api/v1/system/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "readarr",
+ "host": "local",
+ "subdomain": "readarr",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Readarr on my home host and expose it at
+readarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/readarr/config:/config/downloads:/downloads/books:/booksAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/readarr:develop every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Readarr → Update.
The config volume for Readarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Readarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Readarr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: readarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
redis:alpine
+ In-memory data structure store and cache
+Redis ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Redis, not installing it.
+ +https://status.sami (or your host's dashboard URL).redis:alpine image.redis.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "redis",
+ "host": "local",
+ "subdomain": "redis",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Redis on my home host and expose it at
+redis.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/redis/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull redis:alpine every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Redis → Update.
The config volume for Redis is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Redis:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Redis is in the Database category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: redis. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
rocket.chat:latest
+ Team collaboration platform like Slack
+Rocket.Chat ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Rocket.Chat, not installing it.
+ +https://status.sami (or your host's dashboard URL).rocket.chat:latest image.chat.<your-domain>./api/info) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "rocketchat",
+ "host": "local",
+ "subdomain": "chat",
+ "port": "{{PORT}}",
+ "environment": {
+ "ROOT_URL": "",
+ "MONGO_URL": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Rocket.Chat on my home host and expose it at
+chat.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/rocketchat/uploads:/app/uploadsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +ROOT_URLMONGO_URLOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull rocket.chat:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Rocket.Chat → Update.
The config volume for Rocket.Chat is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Rocket.Chat:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Rocket.Chat is in the Communication category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: rocketchat. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
roundcube/roundcubemail:latest
+ Modern webmail client with rich features
+Roundcube ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Roundcube, not installing it.
+ +https://status.sami (or your host's dashboard URL).roundcube/roundcubemail:latest image.webmail.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "roundcube",
+ "host": "local",
+ "subdomain": "webmail",
+ "port": "{{PORT}}",
+ "environment": {
+ "ROUNDCUBEMAIL_DEFAULT_HOST": "",
+ "ROUNDCUBEMAIL_SMTP_SERVER": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Roundcube on my home host and expose it at
+webmail.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/roundcube/config:/var/roundcube/config/opt/roundcube/db:/var/roundcube/dbAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +ROUNDCUBEMAIL_DEFAULT_HOSTROUNDCUBEMAIL_SMTP_SERVEROverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull roundcube/roundcubemail:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Roundcube → Update.
The config volume for Roundcube is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Roundcube:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Roundcube is in the Communication category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: roundcube. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/sabnzbd:latest
+ Binary newsreader for Usenet downloads
+SABnzbd ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using SABnzbd, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/sabnzbd:latest image.sabnzbd.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "sabnzbd",
+ "host": "local",
+ "subdomain": "sabnzbd",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy SABnzbd on my home host and expose it at
+sabnzbd.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/sabnzbd/config:/config/downloads:/downloadsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/sabnzbd:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → SABnzbd → Update.
The config volume for SABnzbd is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with SABnzbd:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +SABnzbd is in the Downloads category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: sabnzbd. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
N/A
+ Multi-server SSH file manager — browse, edit, upload, and exec across all your machines from one browser tab
+Sami Files ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Sami Files, not installing it.
+ +https://status.sami (or your host's dashboard URL).N/A image.files.<your-domain>.http://127.0.0.1:8765/api/health) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "sami-files",
+ "host": "local",
+ "subdomain": "files",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Sami Files on my home host and expose it at
+files.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+All paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull N/A every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Sami Files → Update.
The config volume for Sami Files is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Sami Files:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Sami Files is in the Files category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: sami-files. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/seerr-team/seerr:latest
+ Media request and discovery manager for Plex, Jellyfin, and Emby
+Seerr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Seerr, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/seerr-team/seerr:latest image.requests.<your-domain>./api/v1/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "seerr",
+ "host": "local",
+ "subdomain": "requests",
+ "port": "{{PORT}}",
+ "environment": {
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Seerr on my home host and expose it at
+requests.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/seerr/config:/app/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +TZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/seerr-team/seerr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Seerr → Update.
The config volume for Seerr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Seerr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Seerr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: seerr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/sonarr:latest
+ Smart PVR for newsgroup and bittorrent users
+Sonarr ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Sonarr, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/sonarr:latest image.sonarr.<your-domain>./api/v3/system/status) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "sonarr",
+ "host": "local",
+ "subdomain": "sonarr",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Sonarr on my home host and expose it at
+sonarr.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/sonarr/config:/config/downloads:/downloads/tv:/tvAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/sonarr:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Sonarr → Update.
The config volume for Sonarr is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Sonarr:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Sonarr is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: sonarr. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
ghcr.io/alexjustesen/speedtest-tracker:latest
+ Internet speed monitoring over time
+Speedtest Tracker ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Speedtest Tracker, not installing it.
+ +https://status.sami (or your host's dashboard URL).ghcr.io/alexjustesen/speedtest-tracker:latest image.speedtest.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "speedtest",
+ "host": "local",
+ "subdomain": "speedtest",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "DB_CONNECTION": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Speedtest Tracker on my home host and expose it at
+speedtest.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/speedtest/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDDB_CONNECTIONOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull ghcr.io/alexjustesen/speedtest-tracker:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Speedtest Tracker → Update.
The config volume for Speedtest Tracker is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Speedtest Tracker:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Speedtest Tracker is in the Monitoring category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: speedtest. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
standardnotes/server:latest
+ End-to-end encrypted notes app
+Standard Notes ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Standard Notes, not installing it.
+ +https://status.sami (or your host's dashboard URL).standardnotes/server:latest image.notes.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "standardnotes",
+ "host": "local",
+ "subdomain": "notes",
+ "port": "{{PORT}}",
+ "environment": {
+ "RAILS_ENV": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Standard Notes on my home host and expose it at
+notes.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/standardnotes/data:/var/lib/serverAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +RAILS_ENVOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull standardnotes/server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Standard Notes → Update.
The config volume for Standard Notes is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Standard Notes:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Standard Notes is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: standardnotes. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
frooodle/s-pdf:latest
+ Self-hosted PDF manipulation tool - merge, split, convert, and more
+Stirling PDF ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Stirling PDF, not installing it.
+ +https://status.sami (or your host's dashboard URL).frooodle/s-pdf:latest image.pdf.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "stirling-pdf",
+ "host": "local",
+ "subdomain": "pdf",
+ "port": "{{PORT}}",
+ "environment": {
+ "DOCKER_ENABLE_SECURITY": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Stirling PDF on my home host and expose it at
+pdf.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/stirling-pdf/data:/usr/share/tessdata/opt/stirling-pdf/config:/configsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +DOCKER_ENABLE_SECURITYOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull frooodle/s-pdf:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Stirling PDF → Update.
The config volume for Stirling PDF is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Stirling PDF:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Stirling PDF is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: stirling-pdf. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/syncthing:latest
+ Continuous file synchronization between devices
+Syncthing ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Syncthing, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/syncthing:latest image.sync.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "syncthing",
+ "host": "local",
+ "subdomain": "sync",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Syncthing on my home host and expose it at
+sync.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/syncthing/config:/config/opt/syncthing/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/syncthing:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Syncthing → Update.
The config volume for Syncthing is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Syncthing:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Syncthing is in the Files category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: syncthing. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/tautulli:latest
+ Plex media server monitoring and statistics
+Tautulli ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Tautulli, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/tautulli:latest image.tautulli.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "tautulli",
+ "host": "local",
+ "subdomain": "tautulli",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Tautulli on my home host and expose it at
+tautulli.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/tautulli/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/tautulli:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Tautulli → Update.
The config volume for Tautulli is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Tautulli:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Tautulli is in the Media Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: tautulli. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
technitium/dns-server:latest
+ Modern DNS server with web UI for managing private zones
+Technitium DNS Server ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Technitium DNS Server, not installing it.
+ +https://status.sami (or your host's dashboard URL).technitium/dns-server:latest image.dns1.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "technitium",
+ "host": "local",
+ "subdomain": "dns1",
+ "port": "{{PORT}}",
+ "environment": {
+ "DNS_SERVER_DOMAIN": "",
+ "DNS_SERVER_ADMIN_PASSWORD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Technitium DNS Server on my home host and expose it at
+dns1.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/technitium/config:/etc/dnsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +DNS_SERVER_DOMAINDNS_SERVER_ADMIN_PASSWORDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull technitium/dns-server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Technitium DNS Server → Update.
The config volume for Technitium DNS Server is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Technitium DNS Server:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Technitium DNS Server is in the DNS category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: technitium. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/transmission:latest
+ Lightweight BitTorrent client
+Transmission ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Transmission, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/transmission:latest image.transmission.<your-domain>./transmission/web/) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "transmission",
+ "host": "local",
+ "subdomain": "transmission",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Transmission on my home host and expose it at
+transmission.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/transmission/config:/config/downloads:/downloadsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/transmission:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Transmission → Update.
The config volume for Transmission is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Transmission:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Transmission is in the Downloads category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: transmission. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
zadam/trilium:latest
+ Hierarchical knowledge base and note-taking app
+Trilium Notes ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Trilium Notes, not installing it.
+ +https://status.sami (or your host's dashboard URL).zadam/trilium:latest image.notes.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "trilium",
+ "host": "local",
+ "subdomain": "notes",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Trilium Notes on my home host and expose it at
+notes.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/trilium/data:/home/node/trilium-dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull zadam/trilium:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Trilium Notes → Update.
The config volume for Trilium Notes is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Trilium Notes:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Trilium Notes is in the Productivity category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: trilium. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
louislam/uptime-kuma:latest
+ Self-hosted monitoring tool like Uptime Robot
+Uptime Kuma ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Uptime Kuma, not installing it.
+ +https://status.sami (or your host's dashboard URL).louislam/uptime-kuma:latest image.uptime.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "uptime-kuma",
+ "host": "local",
+ "subdomain": "uptime",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Uptime Kuma on my home host and expose it at
+uptime.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +uptime.<your-domain> URL.DashCaddy creates these volume mounts:
+/opt/uptime-kuma:/app/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull louislam/uptime-kuma:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Uptime Kuma → Update.
The config volume for Uptime Kuma is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Uptime Kuma:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Uptime Kuma is in the Monitoring category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: uptime-kuma. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
lloesche/valheim-server:latest
+ Valheim dedicated server for multiplayer Viking adventures
+Valheim Server ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Valheim Server, not installing it.
+ +https://status.sami (or your host's dashboard URL).lloesche/valheim-server:latest image.valheim.<your-domain>.tcp://localhost:2456) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "valheim",
+ "host": "local",
+ "subdomain": "valheim",
+ "port": "{{PORT}}",
+ "environment": {
+ "SERVER_NAME": "",
+ "WORLD_NAME": "",
+ "SERVER_PASS": "",
+ "SERVER_PUBLIC": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Valheim Server on my home host and expose it at
+valheim.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/valheim/config:/config/opt/valheim/data:/opt/valheimAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +SERVER_NAMEWORLD_NAMESERVER_PASSSERVER_PUBLICOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull lloesche/valheim-server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Valheim Server → Update.
The config volume for Valheim Server is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Valheim Server:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Valheim Server is in the Gaming category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: valheim. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
vaultwarden/server:latest
+ Lightweight Bitwarden-compatible password manager
+Vaultwarden ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Vaultwarden, not installing it.
+ +https://status.sami (or your host's dashboard URL).vaultwarden/server:latest image.vault.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "vaultwarden",
+ "host": "local",
+ "subdomain": "vault",
+ "port": "{{PORT}}",
+ "environment": {
+ "DOMAIN": "",
+ "ADMIN_TOKEN": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Vaultwarden on my home host and expose it at
+vault.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/vaultwarden/data:/dataAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +DOMAINADMIN_TOKENOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull vaultwarden/server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Vaultwarden → Update.
The config volume for Vaultwarden is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Vaultwarden:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Vaultwarden is in the Security category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: vaultwarden. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
nginx:alpine
+ Glass-front console stereo that tunes curated real internet stations (SomaFM, KEXP, Radio Paradise, and more) through a beautiful analog UI
+Vintage Stereo ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Vintage Stereo, not installing it.
+ +https://status.sami (or your host's dashboard URL).nginx:alpine image.radio.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "vintage-radio",
+ "host": "local",
+ "subdomain": "radio",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Vintage Stereo on my home host and expose it at
+radio.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/vintage-radio/web:/usr/share/nginx/html:roAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull nginx:alpine every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Vintage Stereo → Update.
The config volume for Vintage Stereo is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Vintage Stereo:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Vintage Stereo is in the Media category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: vintage-radio. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
codercom/code-server:latest
+ Visual Studio Code in your browser
+VS Code Server ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using VS Code Server, not installing it.
+ +https://status.sami (or your host's dashboard URL).codercom/code-server:latest image.code.<your-domain>./healthz) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "vscode-server",
+ "host": "local",
+ "subdomain": "code",
+ "port": "{{PORT}}",
+ "environment": {
+ "PASSWORD": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy VS Code Server on my home host and expose it at
+code.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +code.<your-domain> URL.DashCaddy creates these volume mounts:
+/opt/vscode/config:/home/coder/.config/opt/vscode/projects:/home/coder/projectsAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PASSWORDOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull codercom/code-server:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → VS Code Server → Update.
The config volume for VS Code Server is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with VS Code Server:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +VS Code Server is in the Development category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: vscode-server. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
containrrr/watchtower:latest
+ Automatic Docker container image updates
+Watchtower ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Watchtower, not installing it.
+ +https://status.sami (or your host's dashboard URL).containrrr/watchtower:latest image.watchtower.<your-domain>./v1/update) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "watchtower",
+ "host": "local",
+ "subdomain": "watchtower",
+ "port": "{{PORT}}",
+ "environment": {
+ "WATCHTOWER_CLEANUP": "",
+ "WATCHTOWER_SCHEDULE": "",
+ "WATCHTOWER_HTTP_API_METRICS": "",
+ "WATCHTOWER_HTTP_API_TOKEN": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Watchtower on my home host and expose it at
+watchtower.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/var/run/docker.sock:/var/run/docker.sockAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +WATCHTOWER_CLEANUPWATCHTOWER_SCHEDULEWATCHTOWER_HTTP_API_METRICSWATCHTOWER_HTTP_API_TOKENOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull containrrr/watchtower:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Watchtower → Update.
The config volume for Watchtower is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Watchtower:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Watchtower is in the Management category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: watchtower. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
N/A
+ Live weather widget with temperature, conditions, and wind
+Weather ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Weather, not installing it.
+ +https://status.sami (or your host's dashboard URL).N/A image.weather.<your-domain>./healthz) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "weather",
+ "host": "local",
+ "subdomain": "weather",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Weather on my home host and expose it at
+weather.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+All paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull N/A every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Weather → Update.
The config volume for Weather is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Weather:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Weather is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: weather. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
traefik/whoami:latest
+ Simple HTTP request debugging service
+Whoami ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using Whoami, not installing it.
+ +https://status.sami (or your host's dashboard URL).traefik/whoami:latest image.whoami.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "whoami",
+ "host": "local",
+ "subdomain": "whoami",
+ "port": "{{PORT}}",
+
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy Whoami on my home host and expose it at
+whoami.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/whoami/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +None. The container runs with its upstream defaults.
+Override any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull traefik/whoami:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → Whoami → Update.
The config volume for Whoami is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with Whoami:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +Whoami is in the Utilities category. Common pairings:
+ + +
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: whoami. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+
linuxserver/wireguard:latest
+ Fast, modern, secure VPN tunnel
+WireGuard VPN ships as a self-contained Docker image that DashCaddy provisions with one click. The platform handles the container lifecycle, DNS, reverse proxy, HTTPS certificate, and persistent storage so you can focus on using WireGuard VPN, not installing it.
+ +https://status.sami (or your host's dashboard URL).linuxserver/wireguard:latest image.vpn.<your-domain>./) to pass.If you script deployments or use the MCP / AI Intent Router, install with:
+curl -X POST https://your-dashcaddy-host/api/v1/apps/deploy \\
+ -H "Authorization: Bearer $DASHCADDY_API_TOKEN" \\
+ -H "Content-Type: application/json" \\
+ -d '{
+ "template": "wireguard",
+ "host": "local",
+ "subdomain": "vpn",
+ "port": "{{PORT}}",
+ "environment": {
+ "PUID": "",
+ "PGID": "",
+ "TZ": "",
+ "SERVERURL": "",
+ "SERVERPORT": "",
+ "PEERS": ""
+ },
+ "labels": { "managed-by": "dashcaddy" }
+ }'
+ Response returns a deployment ID. Poll GET /api/v1/apps/{id}/status until state === "running".
From any chat surface wired to DashCaddy's MCP server, just say:
+++"Deploy WireGuard VPN on my home host and expose it at
+vpn.sami"
The Intent Router will pick the right template, prompt you for any missing fields, and start the deployment.
+ +DashCaddy creates these volume mounts:
+/opt/wireguard/config:/configAll paths are absolute host paths; the left side is the container-side mount. Restarting the container never deletes the data; reinstalling the template preserves it unless you explicitly check Wipe data on the deploy form.
+ +PUIDPGIDTZSERVERURLSERVERPORTPEERSOverride any of these from the deploy form's Environment panel, or programmatically in the API environment object.
DashCaddy's built-in Watchtower integration will pull linuxserver/wireguard:latest every 24 hours and restart your container with zero downtime if the image digest changes. To force an update immediately, click Apps → WireGuard VPN → Update.
The config volume for WireGuard VPN is included in DashCaddy's default nightly snapshot. To restore on a fresh host, redeploy the same template and DashCaddy will prompt to restore from the most recent snapshot during install.
+ +Common issues with WireGuard VPN:
+For layer-by-layer diagnostics, see the Troubleshooting guide.
+ +WireGuard VPN is in the Networking category. Common pairings:
+
+ Last reviewed against DashCaddy product version in dashcaddy-api/src/docker/app-templates.js.
+ Template ID: wireguard. If anything here looks wrong, edit the file and the change will appear in the next docs rebuild.
+