Enter your 6-digit authentication code

Lost access? Recover with saved Base32 key →

### Recover TOTP Access

Paste the Base32 secret you saved when you first set up TOTP (e.g. `JBSWY3DPEHPK3PXP`). If you don't have it, you'll need to SSH into the server to rotate the encryption key.

Secret accepted. Add it to your authenticator app and enter a 6-digit code to confirm.

🌤️
--
--°
--
--
☆ FREE TIER

### DashCaddy Verification Info

Current version details and updater verification status.

Loading…
last check: —
📄 Logs Page
Internet OFF
--
Auth NO
Not configured
Tailscale —
Loading…
🔐
DashCA OFF
--
--
Devices on Tailscale
0 selected

## Welcome to DashCaddy! 🎉

Let's set up your self-hosted app dashboard. This will only take a few minutes.

Your Timezone
Auto-detected from your browser. All deployed apps will use this timezone.

### Choose your configuration:

🚀
Simple
Access apps via IP:Port only. No DNS or SSL setup needed.
Example: http://<your-ip>:8080
🏠
Professional Home Lab
Custom TLD + Private DNS + Internal CA. Full HTTPS with your own certificate authority.
Example: https://uptime.home
🌍
Public Server
Real domain + Public DNS + Let's Encrypt. Internet-accessible with trusted SSL.
Example: https://cloud.example.com
⚙️
Custom
I'll configure everything myself. Show me all options.
Full control over every setting

## Professional Home Lab Setup

Configure your custom TLD and certificate authority

🌐 Custom Top-Level Domain (TLD)
Your apps will use this TLD. Examples: .sami, .home, .lab, .local, .internal
📱 Preview: uptime.home, nextcloud.home
🔒 Certificate Authority Name
This name appears in browser certificate details. Make it memorable!
🗂️ DNS Provider
DashCaddy will automatically create DNS records for your apps
🔑 DNS Admin Token / API Key
ℹ️ How to get your token

1. Open Technitium DNS web panel
2. Go to Settings → API
3. Create a new token with "Administration" permission
4. Copy the token and paste it here

## Simple Setup

Access your apps directly via IP addresses and ports

### ✓ What you'll have:

- Direct access via IP:Port (e.g., http://<your-ip>:8080)
- No DNS configuration needed
- No SSL/certificate setup
- Apps work immediately after deployment

### ⚠️ Limitations:

- Must remember IP:Port for each app
- No pretty URLs
- HTTP only (no HTTPS encryption)
- Not recommended for sensitive data

Default Server IP Address
Use "localhost" for same-host deployments, or your server's IP

## Public Server Setup

Configure for internet-accessible apps with Let's Encrypt SSL

🌍 Your Domain
Your registered domain name (must point to this server)
📧 Email for Let's Encrypt
Required for Let's Encrypt certificate renewal notifications
🔀 App Routing Mode
Subdirectory (example.com/app)
Only needs a single DNS record. Recommended for most setups.
Subdomain (app.example.com)
Requires wildcard DNS (*.example.com) or per-app DNS records

#### ⚠️ Requirements:

- Port 80 and 443 must be open to the internet
- Domain DNS must point to this server's public IP
- Server must be reachable from the internet
- Only one DNS record needed (for the main domain)

## Review Your Configuration

Make sure everything looks correct before finishing

💾
Disk Usage & Health-Check Data
DashCaddy's health checks log response times, uptime history, and incidents for every monitored service. Over time this data accumulates and can consume significant disk space — especially on small VPS or SD-card installs. After setup, open Health → Configure → Global Settings to set a data retention period (default 30 days), adjust the polling interval, and configure a disk-usage warning threshold so you're alerted before storage runs low.
✓ You can change these settings later
Go to Settings → System Configuration to edit your setup anytime

## ⚠️ Disk Usage Note

Important information about storage before you finish

⚠️
Disk Usage Note: DashCaddy stores up to 500 health check entries per service (plus container statistics and event logs). At high check frequencies this may consume significant disk space — on a host with many services the history file can grow to tens of megabytes. Adjust the health check interval, max entries per service, and health retention period in Disk Safety (the 💾 Disk button in the top bar) to control disk usage.
📋 Recommended after setup

- Open the 💾 Disk button in the top bar (opens the Disk Safety modal)
- Set a health check polling interval (default: 30s)
- Set a health retention period (default: 30 days)
- Cap max health entries per service (default: 500)
- Cap max stats entries (default: 500)
- Click Clean Up Now to purge old data immediately

✓ You can change these settings later
Go to Settings → System Configuration to edit your setup anytime