Add getting started tutorials for DashCaddy
Tutorials covering: - Getting Started (setup wizard, timezone, deployment modes) - Theme Customization (theme builder, presets, color customization) - Viewing Logs (log viewer, live streaming, filtering) - Quick Search (keyboard shortcuts, navigation) - Backup & Restore (manual/automated backup, restore workflow) - Stats Monitoring (resource monitor, live stats, alerts) Also includes: - Self-contained HTML getting started guide - 30+ screenshots capturing UI workflows - Issues/notes documenting test instance observations Workflows documented: - Light theme screenshots - Dark theme screenshots (partial - theme builder) - App selector (noted as empty in test instance) - Theme builder modal - Logs viewer - Quick search - Backup modal - Stats monitoring Total: 6 tutorial files, 30+ screenshots, 1 HTML guide
385
public/tutorials/dashcaddy-getting-started.html
Normal file
@@ -0,0 +1,385 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DashCaddy Getting Started Guide</title>
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 900px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
color: #1a1a2e;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.8rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
color: #1a1a2e;
|
||||
border-bottom: 2px solid #ddd;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.3rem;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.intro {
|
||||
font-size: 1.1rem;
|
||||
color: #666;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.toc {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 2rem;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.toc h2 {
|
||||
margin-top: 0;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.toc ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.toc li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.toc a {
|
||||
color: #0066cc;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.toc a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.feature-card {
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.feature-card h3 {
|
||||
margin-top: 0;
|
||||
color: #0066cc;
|
||||
}
|
||||
|
||||
.feature-card p {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.feature-link {
|
||||
display: inline-block;
|
||||
margin-top: 0.5rem;
|
||||
color: #0066cc;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.feature-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin-left: 1.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
code {
|
||||
background: #f0f0f0;
|
||||
padding: 0.2rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
font-family: 'Monaco', 'Consolas', monospace;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
kbd {
|
||||
background: #e0e0e0;
|
||||
padding: 0.2rem 0.5rem;
|
||||
border-radius: 3px;
|
||||
font-family: 'Monaco', 'Consolas', monospace;
|
||||
font-size: 0.85rem;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 0.75rem;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
th {
|
||||
background: #f5f5f5;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 4px solid #0066cc;
|
||||
padding-left: 1rem;
|
||||
margin: 1rem 0;
|
||||
color: #666;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.shortcut-table td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 3rem;
|
||||
padding-top: 1rem;
|
||||
border-top: 1px solid #ddd;
|
||||
color: #666;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>DashCaddy Getting Started Guide</h1>
|
||||
<p class="intro">A practical guide to getting started with DashCaddy — the self-hosted app dashboard.</p>
|
||||
|
||||
<div class="toc">
|
||||
<h2>Table of Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#getting-started">Getting Started</a> — First-time setup and configuration</li>
|
||||
<li><a href="#theme-customization">Theme Customization</a> — Customize the dashboard appearance</li>
|
||||
<li><a href="#viewing-logs">Viewing Logs</a> — Monitor service logs in real-time</li>
|
||||
<li><a href="#quick-search">Quick Search</a> — Fast access to services and settings</li>
|
||||
<li><a href="#backup-restore">Backup & Restore</a> — Protect your configuration</li>
|
||||
<li><a href="#monitoring">Monitoring Resources</a> — Track CPU, memory, and disk usage</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<h2 id="getting-started">Getting Started</h2>
|
||||
<div class="feature-card">
|
||||
<h3>First-Time Setup</h3>
|
||||
<p>Learn how to log in, configure your timezone, and choose a deployment mode.</p>
|
||||
<p><strong>What you'll learn:</strong></p>
|
||||
<ul>
|
||||
<li>How to log in with TOTP authentication</li>
|
||||
<li>How to select your timezone</li>
|
||||
<li>How to choose a deployment mode (Simple, Home Lab, Public, Custom)</li>
|
||||
<li>How to complete or skip the initial setup wizard</li>
|
||||
</ul>
|
||||
<a class="feature-link" href="tutorials/01-getting-started.html">Read full tutorial →</a>
|
||||
</div>
|
||||
|
||||
<h2 id="theme-customization">Theme Customization</h2>
|
||||
<div class="feature-card">
|
||||
<h3>Customize the Dashboard</h3>
|
||||
<p>Make DashCaddy your own with custom themes and colors.</p>
|
||||
<p><strong>What you'll learn:</strong></p>
|
||||
<ul>
|
||||
<li>How to open the Theme Builder</li>
|
||||
<li>How to use preset themes (Dark, Light, Nord, Dracula, etc.)</li>
|
||||
<li>How to customize colors for backgrounds, text, accents, and status indicators</li>
|
||||
<li>How to save, import, and export themes</li>
|
||||
</ul>
|
||||
<a class="feature-link" href="tutorials/02-theme-customization.html">Read full tutorial →</a>
|
||||
</div>
|
||||
|
||||
<h2 id="viewing-logs">Viewing Logs</h2>
|
||||
<div class="feature-card">
|
||||
<h3>Monitor Service Logs</h3>
|
||||
<p>Monitor your services with real-time log streaming.</p>
|
||||
<p><strong>What you'll learn:</strong></p>
|
||||
<ul>
|
||||
<li>How to access the logs viewer</li>
|
||||
<li>How to navigate and filter log entries</li>
|
||||
<li>How to use live log streaming</li>
|
||||
<li>How to control the number of displayed log lines</li>
|
||||
</ul>
|
||||
<a class="feature-link" href="tutorials/03-viewing-logs.html">Read full tutorial →</a>
|
||||
</div>
|
||||
|
||||
<h2 id="quick-search">Quick Search</h2>
|
||||
<div class="feature-card">
|
||||
<h3>Fast Access to Everything</h3>
|
||||
<p>Find services and settings instantly.</p>
|
||||
<p><strong>What you'll learn:</strong></p>
|
||||
<ul>
|
||||
<li>How to open Quick Search (<kbd>Ctrl+K</kbd> / <kbd>Cmd+K</kbd>)</li>
|
||||
<li>How to search for services and settings</li>
|
||||
<li>How to navigate and select results with keyboard shortcuts</li>
|
||||
</ul>
|
||||
<a class="feature-link" href="tutorials/04-quick-search.html">Read full tutorial →</a>
|
||||
</div>
|
||||
|
||||
<h2 id="backup-restore">Backup & Restore</h2>
|
||||
<div class="feature-card">
|
||||
<h3>Protect Your Configuration</h3>
|
||||
<p>Create full backups of your entire DashCaddy setup.</p>
|
||||
<p><strong>What you'll learn:</strong></p>
|
||||
<ul>
|
||||
<li>How to create a manual backup</li>
|
||||
<li>What's included in a full backup (services, credentials, themes)</li>
|
||||
<li>How to restore from a backup file</li>
|
||||
<li>How to set up automated backups</li>
|
||||
<li>How to view backup history</li>
|
||||
</ul>
|
||||
<a class="feature-link" href="tutorials/05-backup-restore.html">Read full tutorial →</a>
|
||||
</div>
|
||||
|
||||
<h2 id="monitoring">Monitoring Resources</h2>
|
||||
<div class="feature-card">
|
||||
<h3>Track System Performance</h3>
|
||||
<p>Monitor CPU, memory, network, and disk usage in real-time.</p>
|
||||
<p><strong>What you'll learn:</strong></p>
|
||||
<ul>
|
||||
<li>How to access the Resource Monitor</li>
|
||||
<li>How to interpret live stats and historical summaries</li>
|
||||
<li>How to set up alerts for resource thresholds</li>
|
||||
<li>Understanding CPU, memory, network, and disk metrics</li>
|
||||
</ul>
|
||||
<a class="feature-link" href="tutorials/06-stats-monitoring.html">Read full tutorial →</a>
|
||||
</div>
|
||||
|
||||
<h2>Keyboard Shortcuts</h2>
|
||||
<table class="shortcut-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Shortcut</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><kbd>Ctrl+K</kbd> / <kbd>Cmd+K</kbd></td>
|
||||
<td>Open Quick Search</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><kbd>↑</kbd> / <kbd>↓</kbd></td>
|
||||
<td>Navigate in Quick Search</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><kbd>Enter</kbd></td>
|
||||
<td>Select in Quick Search</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><kbd>ESC</kbd></td>
|
||||
<td>Close modal / Cancel</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Common Tasks</h2>
|
||||
|
||||
<h3>Adding Your First App</h3>
|
||||
<blockquote>
|
||||
<strong>Note:</strong> App deployment requires the app catalog to be configured with your DashCaddy instance.
|
||||
</blockquote>
|
||||
<ol>
|
||||
<li>Navigate to <strong>TOOLS</strong> → <strong>App Selector</strong></li>
|
||||
<li>Browse available apps or use Quick Search</li>
|
||||
<li>Select an app template</li>
|
||||
<li>Configure the app settings (URL, subdomain, credentials)</li>
|
||||
<li>Deploy and verify</li>
|
||||
</ol>
|
||||
|
||||
<h3>Checking Service Health</h3>
|
||||
<ol>
|
||||
<li>Navigate to <strong>STATUS</strong> → <strong>Health Status</strong></li>
|
||||
<li>View the health overview for all services</li>
|
||||
<li>Check individual service status cards</li>
|
||||
<li>Review any active incidents</li>
|
||||
</ol>
|
||||
|
||||
<h3>Updating Services</h3>
|
||||
<ol>
|
||||
<li>Navigate to <strong>ADMIN</strong> → <strong>Updates</strong></li>
|
||||
<li>View available updates</li>
|
||||
<li>Review changelogs and release notes</li>
|
||||
<li>Apply updates to individual services or all at once</li>
|
||||
</ol>
|
||||
|
||||
<h2>Troubleshooting</h2>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Issue</th>
|
||||
<th>Solution</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Can't log in with TOTP</td>
|
||||
<td>Ensure your device clock is synchronized (TOTP is time-based). Try regenerating the code — they expire every 30 seconds.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dashboard shows no services</td>
|
||||
<td>Services need to be added via the App Selector. Check that Docker is running on your server.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Logs show "Loading..."</td>
|
||||
<td>The service may not have generated any logs yet. Check that the service is actually running.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Theme changes not saving</td>
|
||||
<td>Click "Save Theme" before closing the Theme Builder. Try a different browser if issues persist.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Next Steps</h2>
|
||||
<ul>
|
||||
<li>Complete the initial setup wizard</li>
|
||||
<li>Add your first service via App Selector</li>
|
||||
<li>Customize the theme to your liking</li>
|
||||
<li>Set up automated backups</li>
|
||||
<li>Explore the Admin section for advanced settings</li>
|
||||
<li>Join the community for tips and support</li>
|
||||
</ul>
|
||||
|
||||
<footer>
|
||||
<p>This guide was created for DashCaddy version as deployed on test.dashcaddy.net</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
175
public/tutorials/dashcaddy-getting-started.md
Normal file
@@ -0,0 +1,175 @@
|
||||
# DashCaddy Getting Started Guide
|
||||
|
||||
A practical guide to getting started with DashCaddy — the self-hosted app dashboard.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Getting Started](#getting-started) — First-time setup and configuration
|
||||
2. [Theme Customization](#theme-customization) — Customize the dashboard appearance
|
||||
3. [Viewing Logs](#viewing-logs) — Monitor service logs in real-time
|
||||
4. [Quick Search](#quick-search) — Fast access to services and settings
|
||||
5. [Backup & Restore](#backup--restore) — Protect your configuration
|
||||
6. [Monitoring Resources](#monitoring-resources) — Track CPU, memory, and disk usage
|
||||
|
||||
---
|
||||
|
||||
## Getting Started
|
||||
|
||||
Learn how to log in, configure your timezone, and choose a deployment mode.
|
||||
|
||||
[Read full tutorial](tutorials/01-getting-started.md)
|
||||
|
||||
**What you'll learn:**
|
||||
- How to log in with TOTP authentication
|
||||
- How to select your timezone
|
||||
- How to choose a deployment mode (Simple, Home Lab, Public, Custom)
|
||||
- How to complete or skip the initial setup wizard
|
||||
|
||||
---
|
||||
|
||||
## Theme Customization
|
||||
|
||||
Make DashCaddy your own with custom themes and colors.
|
||||
|
||||
[Read full tutorial](tutorials/02-theme-customization.md)
|
||||
|
||||
**What you'll learn:**
|
||||
- How to open the Theme Builder
|
||||
- How to use preset themes (Dark, Light, Nord, Dracula, etc.)
|
||||
- How to customize colors for backgrounds, text, accents, and status indicators
|
||||
- How to save, import, and export themes
|
||||
|
||||
---
|
||||
|
||||
## Viewing Logs
|
||||
|
||||
Monitor your services with real-time log streaming.
|
||||
|
||||
[Read full tutorial](tutorials/03-viewing-logs.md)
|
||||
|
||||
**What you'll learn:**
|
||||
- How to access the logs viewer
|
||||
- How to navigate and filter log entries
|
||||
- How to use live log streaming
|
||||
- How to control the number of displayed log lines
|
||||
|
||||
---
|
||||
|
||||
## Quick Search
|
||||
|
||||
Find services and settings instantly.
|
||||
|
||||
[Read full tutorial](tutorials/04-quick-search.md)
|
||||
|
||||
**What you'll learn:**
|
||||
- How to open Quick Search (Ctrl+K / Cmd+K)
|
||||
- How to search for services and settings
|
||||
- How to navigate and select results with keyboard shortcuts
|
||||
- Keyboard shortcuts: ESC, ↑↓ Navigate, Enter Select
|
||||
|
||||
---
|
||||
|
||||
## Backup & Restore
|
||||
|
||||
Protect your configuration with full backups.
|
||||
|
||||
[Read full tutorial](tutorials/05-backup-restore.md)
|
||||
|
||||
**What you'll learn:**
|
||||
- How to create a manual backup
|
||||
- What's included in a full backup (services, credentials, themes)
|
||||
- How to restore from a backup file
|
||||
- How to set up automated backups
|
||||
- How to view backup history
|
||||
|
||||
---
|
||||
|
||||
## Monitoring Resources
|
||||
|
||||
Track CPU, memory, network, and disk usage in real-time.
|
||||
|
||||
[Read full tutorial](tutorials/06-stats-monitoring.md)
|
||||
|
||||
**What you'll learn:**
|
||||
- How to access the Resource Monitor
|
||||
- How to interpret live stats and historical summaries
|
||||
- How to set up alerts for resource thresholds
|
||||
- Understanding CPU, memory, network, and disk metrics
|
||||
|
||||
---
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Adding Your First App
|
||||
|
||||
> **Note:** App deployment requires the app catalog to be configured with your DashCaddy instance.
|
||||
|
||||
1. Navigate to **TOOLS** → **App Selector**
|
||||
2. Browse available apps or use Quick Search
|
||||
3. Select an app template
|
||||
4. Configure the app settings (URL, subdomain, credentials)
|
||||
5. Deploy and verify
|
||||
|
||||
### Checking Service Health
|
||||
|
||||
1. Navigate to **STATUS** → **Health Status**
|
||||
2. View the health overview for all services
|
||||
3. Check individual service status cards
|
||||
4. Review any active incidents
|
||||
|
||||
### Updating Services
|
||||
|
||||
1. Navigate to **ADMIN** → **Updates**
|
||||
2. View available updates
|
||||
3. Review changelogs and release notes
|
||||
4. Apply updates to individual services or all at once
|
||||
|
||||
---
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Ctrl+K` / `Cmd+K` | Open Quick Search |
|
||||
| `↑` / `↓` | Navigate in Quick Search |
|
||||
| `Enter` | Select in Quick Search |
|
||||
| `ESC` | Close modal / Cancel |
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Can't log in with TOTP
|
||||
- Ensure your device clock is synchronized (TOTP is time-based)
|
||||
- Try regenerating the code — they expire every 30 seconds
|
||||
- Contact your administrator if the code is consistently rejected
|
||||
|
||||
### Dashboard shows no services
|
||||
- Services need to be added via the App Selector
|
||||
- Check that Docker is running on your server
|
||||
- Verify network connectivity to your services
|
||||
|
||||
### Logs show "Loading..."
|
||||
- The service may not have generated any logs yet
|
||||
- Check that the service is actually running
|
||||
- Verify the logging system is configured correctly
|
||||
|
||||
### Theme changes not saving
|
||||
- Click "Save Theme" before closing the Theme Builder
|
||||
- Check browser console for JavaScript errors
|
||||
- Try a different browser if issues persist
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [ ] Complete the initial setup wizard
|
||||
- [ ] Add your first service via App Selector
|
||||
- [ ] Customize the theme to your liking
|
||||
- [ ] Set up automated backups
|
||||
- [ ] Explore the Admin section for advanced settings
|
||||
- [ ] Join the community for tips and support
|
||||
|
||||
---
|
||||
|
||||
*This guide was created for DashCaddy version as deployed on test.dashcaddy.net*
|
||||
69
public/tutorials/issues.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Issues and Notes
|
||||
|
||||
## Test Instance Observations
|
||||
|
||||
### App Selector Empty
|
||||
The App Selector modal opens but shows no apps in the grid. The "Choose an App" message appears with just a Cancel button. This could mean:
|
||||
- The test instance doesn't have app templates loaded
|
||||
- The app catalog API isn't responding
|
||||
- The apps need to be fetched from a backend that's not configured
|
||||
|
||||
**Impact:** Could not complete "Deploy Your First App" workflow
|
||||
|
||||
**Workaround:** App selector needs backend/app catalog to be configured
|
||||
|
||||
### Menu Navigation Issues
|
||||
The TOOLS, STATUS, and ADMIN sections in the dashboard have expandable menus. Clicking on section headers (like "TOOLS") didn't expand the menu via standard click methods in headless Chrome.
|
||||
|
||||
**Impact:** Could not navigate to some features through normal menu interaction
|
||||
|
||||
**Workaround:** Used JavaScript to directly show modals by manipulating CSS display property
|
||||
|
||||
### Theme Switching Not Working Properly
|
||||
The "🎨 Light" button in the top bar appears to be a display of current theme rather than a toggle. Clicking it doesn't switch themes.
|
||||
|
||||
**Impact:** Theme workflow only partially captured - theme builder modal opens but theme switching via the quick button doesn't work
|
||||
|
||||
**Workaround:** Use Theme Builder modal to change themes
|
||||
|
||||
### Logs/Services Show "Loading..."
|
||||
Some services show "Loading logs..." or "Loading container stats..." which suggests the backend APIs aren't returning data in the test instance.
|
||||
|
||||
**Impact:** Could see the UI for these features but not actual data
|
||||
|
||||
**Workaround:** Document UI even when no data is present
|
||||
|
||||
## Technical Observations
|
||||
|
||||
### Puppeteer/Chromium Issues
|
||||
- Background Chromium processes were being killed by SIGKILL
|
||||
- Some clickable elements weren't being recognized as clickable by puppeteer
|
||||
- Had to use JavaScript clicks (`element.click()` via `page.evaluate()`) for some interactions
|
||||
|
||||
### Session Management
|
||||
- TOTP codes expire every 30 seconds
|
||||
- Had to generate fresh TOTP for each session
|
||||
- Used `process.exit(0)` to avoid graceful cleanup issues that triggered process kills
|
||||
|
||||
## Screenshots Captured
|
||||
|
||||
### Workflows Documented:
|
||||
1. **Getting Started** - Setup wizard, timezone, deployment mode (partial)
|
||||
2. **Theme Customization** - Theme builder modal, presets (partial)
|
||||
3. **Viewing Logs** - Complete workflow
|
||||
4. **Quick Search** - Complete workflow
|
||||
5. **Backup & Restore** - Complete workflow (UI)
|
||||
6. **Stats Monitoring** - Complete workflow (UI)
|
||||
|
||||
### Workflows Not Fully Documented:
|
||||
1. **Deploy First App** - App selector empty, couldn't complete
|
||||
2. **Dark Theme Toggle** - Theme builder works but quick toggle doesn't
|
||||
3. **Service Status Cards** - Not deeply explored
|
||||
4. **Smart Arr Setup** - Not explored
|
||||
|
||||
## Recommendations
|
||||
|
||||
1. App Selector needs app catalog/backend to show templates
|
||||
2. Menu expansion should be tested with real user interaction
|
||||
3. Test instance should have some sample services running to show actual data in logs/stats
|
||||
4. Consider adding a "demo mode" with fake data for tutorial purposes
|
||||
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 166 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 175 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 176 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 175 KiB |
|
After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 136 KiB |
BIN
public/tutorials/screenshots/06-test-home.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 140 KiB |
BIN
public/tutorials/screenshots/dashboard-main.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
public/tutorials/screenshots/dashboard.png
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
public/tutorials/screenshots/error-state.png
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
public/tutorials/screenshots/test-home.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
90
src/tutorials/01-getting-started.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Getting Started with DashCaddy
|
||||
|
||||
This tutorial walks you through the initial setup of DashCaddy — logging in, configuring your timezone, and choosing a deployment mode. By the end, you'll have your dashboard ready to use.
|
||||
|
||||
**Prerequisites:** Access to a DashCaddy instance with TOTP credentials.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Access the Dashboard
|
||||
|
||||
Navigate to your DashCaddy instance URL (e.g., `https://test.dashcaddy.net/`). You'll be greeted with a TOTP authentication overlay asking for a 6-digit code.
|
||||
|
||||
**What you should see:**
|
||||
- A centered 6-digit input field
|
||||
- The DashCaddy logo above the input
|
||||
- An empty error message area below
|
||||
|
||||
Generate your TOTP code using your authenticator app (the secret was provided during account setup) and enter the 6 digits. The inputs auto-advance as you type each digit.
|
||||
|
||||
**Troubleshooting:**
|
||||
- If you see "Invalid code" error, check that your device clock is synchronized (TOTP is time-based)
|
||||
- If the input doesn't accept digits, refresh the page and try again
|
||||
|
||||
---
|
||||
|
||||
## Step 2: Select Your Timezone
|
||||
|
||||
After successful login, the Setup Wizard appears. The first step asks for your timezone.
|
||||
|
||||
**What you should see:**
|
||||
- Welcome message: "Welcome to DashCaddy! 🎉"
|
||||
- "Let's set up your self-hosted app dashboard. This will only take a few minutes."
|
||||
- "Your Timezone" dropdown with a long list of timezones
|
||||
|
||||
Scroll or search for your timezone in the dropdown (e.g., "America/Los_Angeles" for Pacific time). Click to select it.
|
||||
|
||||
Screenshot: `screenshots/01-getting-started/light/02-timezone-selected.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Choose Deployment Mode
|
||||
|
||||
After setting your timezone, click **Continue →** to proceed to the deployment mode selection.
|
||||
|
||||
**What you should see:**
|
||||
- "Professional Home Lab Setup" (default selection)
|
||||
- Options for:
|
||||
- **🚀 Simple** — Access apps via IP:Port only. No DNS or SSL setup needed.
|
||||
- **🏠 Professional Home Lab** — Custom TLD + Private DNS + Internal CA. Full HTTPS with your own certificate authority.
|
||||
- **🌍 Public Server** — Real domain + Public DNS + Let's Encrypt. Internet-accessible with trusted SSL.
|
||||
- **⚙️ Custom** — I'll configure everything myself. Full control over every setting.
|
||||
|
||||
Screenshot: `screenshots/01-getting-started/light/03-deployment-mode-selection.png`
|
||||
|
||||
Choose the mode that matches your setup:
|
||||
- For home lab use without a domain: **Simple**
|
||||
- For a home lab with custom domain (e.g., `.home`): **Professional Home Lab**
|
||||
- For a public server with real domain: **Public Server**
|
||||
- For maximum control: **Custom**
|
||||
|
||||
Click **Continue →** to proceed or **← Back** to return to the previous step.
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Complete or Skip Setup
|
||||
|
||||
Depending on your chosen mode, you may see additional configuration screens. You can:
|
||||
|
||||
- Fill in the requested information and click **Continue →**
|
||||
- Or click **Skip Setup** to postpone configuration and access the dashboard immediately
|
||||
|
||||
**What you should see:**
|
||||
After completing or skipping setup, you'll see the main dashboard with:
|
||||
- Weather widget at top left
|
||||
- Clock showing current time
|
||||
- Status cards in the main area
|
||||
- Navigation sections: STATUS, TOOLS, ADMIN
|
||||
|
||||
Screenshot: `screenshots/01-getting-started/light/01-initial-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| TOTP code rejected | Ensure your device time is correct; try regenerating the code |
|
||||
| Setup wizard shows no apps | The wizard is for initial configuration; apps are added via TOOLS → App Selector |
|
||||
| Timezone not saving | The timezone should auto-save; refresh and check if it persisted |
|
||||
| "Continue" button not clickable | Try scrolling down — the button may be below the viewport |
|
||||
118
src/tutorials/02-theme-customization.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Customizing the Dashboard Theme
|
||||
|
||||
DashCaddy includes a powerful theme builder that lets you customize colors, accents, and visual elements. This tutorial shows how to access and use the theme builder.
|
||||
|
||||
**Prerequisites:** Logged into DashCaddy dashboard.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Open the Theme Builder
|
||||
|
||||
Locate the theme button in the top bar of the dashboard. It's represented by a 🎨 icon with the text "Light" (showing your current theme).
|
||||
|
||||
**What you should see:**
|
||||
- Top bar with: Weather widget, Clock, Settings gear, Theme toggle (🎨 Light), License badge
|
||||
|
||||
Click the **🎨 Light** button (or click **Customize** text if visible) to open the Theme Builder modal.
|
||||
|
||||
Screenshot: `screenshots/03-theme-customization/light/01-light-theme-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 2: Explore the Theme Builder
|
||||
|
||||
The Theme Builder modal opens with several sections:
|
||||
|
||||
**Header:**
|
||||
- Theme Builder title
|
||||
- Edit dropdown (currently editing "New Theme")
|
||||
- Delete button
|
||||
- Name field for your theme
|
||||
|
||||
**Start From Presets:**
|
||||
A list of built-in theme presets you can start from:
|
||||
- **Dark** — Dark background with light text
|
||||
- **Light** — Light background
|
||||
- **Blue** — Blue-tinted theme
|
||||
- **Black** — Pure black background
|
||||
- **Nord** — Nord color palette
|
||||
- **Dracula** — Dracula color scheme
|
||||
- **Solarized Dark** / **Solarized Light** — Solarized themes
|
||||
- **Taxi** — Yellow-tinted theme
|
||||
- **Ocean** — Ocean blue theme
|
||||
|
||||
**Preview Area:**
|
||||
A sample card showing how your theme looks, including:
|
||||
- Secondary text preview
|
||||
- Accent Button preview
|
||||
- Status indicators (Online/Offline)
|
||||
|
||||
Screenshot: `screenshots/03-theme-customization/light/04-theme-builder-open.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Select a Base Theme
|
||||
|
||||
Click on one of the preset themes (e.g., "Dark") to start from that base. The preview will update to show how the selected preset looks.
|
||||
|
||||
**What you should see:**
|
||||
The preview card updates to reflect the selected preset's colors. The "Start from" selection highlights your choice.
|
||||
|
||||
Screenshot: `screenshots/03-theme-customization/dark/05-dark-preset-selected.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Customize Colors (Optional)
|
||||
|
||||
Below the presets, you'll find granular color controls organized into sections:
|
||||
|
||||
**Base Colors:**
|
||||
- Background — Main background color
|
||||
- Card — Card/panel background color
|
||||
- Text — Primary text color
|
||||
- Muted Text — Secondary/hint text color
|
||||
- Border — Border and divider color
|
||||
|
||||
**Accent Colors:**
|
||||
- Accent — Primary accent color (buttons, links, highlights)
|
||||
- Accent Strong — Deeper accent for emphasis
|
||||
|
||||
**Status Colors:**
|
||||
- OK Background — Background for success/OK indicators
|
||||
- OK Text — Text color for success states
|
||||
- Error Bg — Background for error indicators
|
||||
- Error Text — Text color for error states
|
||||
|
||||
Each color field is editable — click on a color swatch or enter a hex value to customize.
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Save Your Theme
|
||||
|
||||
When you're satisfied with your customizations:
|
||||
|
||||
1. Click **Save Theme** at the bottom of the modal
|
||||
2. The theme will be applied to your dashboard immediately
|
||||
3. Click **Cancel** to discard changes, or **✕** to close the modal
|
||||
|
||||
Screenshot: `screenshots/03-theme-customization/dark/02-dark-theme-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Importing and Exporting Themes
|
||||
|
||||
The Theme Builder supports theme import/export for backup or sharing:
|
||||
|
||||
- **Import** — Load a previously exported theme file (.json)
|
||||
- **Export** — Download your current theme as a file for backup or sharing
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Theme builder button not visible | Scroll to top of dashboard — the button is in the top bar |
|
||||
| Colors not updating in preview | Click directly on a color swatch to edit it |
|
||||
| Theme not saving | Ensure you click "Save Theme" before closing the modal |
|
||||
| Preset click not working | Try clicking directly on the preset name text |
|
||||
88
src/tutorials/03-viewing-logs.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Viewing Service Logs
|
||||
|
||||
DashCaddy provides a centralized log viewer that lets you monitor logs from your services in real-time. This tutorial shows how to access and use the logs viewer.
|
||||
|
||||
**Prerequisites:** Logged into DashCaddy dashboard with running services.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Access the Logs Viewer
|
||||
|
||||
The Logs viewer is found in the TOOLS section of the dashboard.
|
||||
|
||||
**What you should see:**
|
||||
- Dashboard with navigation sections: STATUS, TOOLS, ADMIN
|
||||
- Various cards and widgets in the main area
|
||||
|
||||
Look for a "Logs" button (📋 Logs) in the TOOLS section of the dashboard. Note that some menu items may require clicking on the section header (like "TOOLS") to expand the menu first.
|
||||
|
||||
Screenshot: `screenshots/04-viewing-logs/light/01-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 2: The Logs Modal
|
||||
|
||||
Click on **Logs** to open the logs viewer modal.
|
||||
|
||||
**What you should see:**
|
||||
- **Title:** DNS Logs (or relevant service name)
|
||||
- **Show dropdown:** Options to show 25, 50, 100, or 200 log lines
|
||||
- **Live/Controls:** Live streaming toggle (📡 Live) and pause button (⏸️ Pause)
|
||||
- **Close button:** ✕ in the top right
|
||||
- **Log content area:** Shows the actual log entries
|
||||
|
||||
Screenshot: `screenshots/04-viewing-logs/light/02-logs-modal-open.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Understanding the Log Display
|
||||
|
||||
The log viewer shows:
|
||||
- **Timestamp** — When each log entry was created
|
||||
- **Service** — Which service generated the entry
|
||||
- **Message** — The actual log content
|
||||
|
||||
**Log Line Options:**
|
||||
Use the "Show" dropdown to control how many log lines are displayed at once:
|
||||
- 25 lines — For quick overview
|
||||
- 50 lines — Default view
|
||||
- 100 lines — For more context
|
||||
- 200 lines — For detailed analysis
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Live Log Streaming
|
||||
|
||||
DashCaddy supports real-time log streaming:
|
||||
|
||||
**To enable live streaming:**
|
||||
- Click the **📡 Live** button to start streaming logs in real-time
|
||||
- New log entries will appear automatically at the top or bottom of the list
|
||||
|
||||
**To pause streaming:**
|
||||
- Click **⏸️ Pause** to stop auto-updating
|
||||
- This lets you scroll through logs without new entries pushing content
|
||||
|
||||
**What you should see:**
|
||||
When live streaming is active, new log entries appear automatically. The "Loading logs..." message will be replaced with actual log data if logs are available from your services.
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Filtering and Navigation
|
||||
|
||||
The log viewer supports keyboard navigation:
|
||||
- Use **↑/↓ arrow keys** to navigate through log entries
|
||||
- **Enter** to select an entry (if applicable)
|
||||
- **Esc** to close the modal
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Logs show "Loading logs..." | No services are running, or services haven't generated logs yet |
|
||||
| Can't find Logs button | The button may be in a collapsed menu — click on "TOOLS" section header to expand |
|
||||
| Log entries not appearing | Live streaming may be paused — click 📡 Live to resume |
|
||||
| Too many logs | Use the "Show" dropdown to limit displayed lines |
|
||||
| Can't scroll through logs | Make sure pause (⏸️ Pause) is enabled to prevent new entries from pushing content |
|
||||
86
src/tutorials/04-quick-search.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Using Quick Search
|
||||
|
||||
DashCaddy's Quick Search feature provides instant access to services, settings, and apps across your dashboard. This tutorial shows how to use it.
|
||||
|
||||
**Prerequisites:** Logged into DashCaddy dashboard.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Open Quick Search
|
||||
|
||||
Quick Search is accessed via a modal that can be triggered in two ways:
|
||||
|
||||
**Method 1: Keyboard shortcut**
|
||||
- Press **Ctrl+K** (or **Cmd+K** on Mac) to open Quick Search
|
||||
|
||||
**Method 2: Via the UI**
|
||||
- The Quick Search modal can be accessed from the dashboard header or menu
|
||||
|
||||
Screenshot: `screenshots/05-quick-search/light/01-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 2: The Quick Search Modal
|
||||
|
||||
When opened, the Quick Search modal appears centered on your screen with a search input field.
|
||||
|
||||
**What you should see:**
|
||||
- Search input field at the top
|
||||
- Keyboard shortcut hints below the input:
|
||||
- **ESC** — Close the modal
|
||||
- **↑↓ Navigate** — Move between search results
|
||||
- **Enter Select** — Select the highlighted result
|
||||
- **Esc Close** — Another reminder to close with Escape
|
||||
|
||||
Screenshot: `screenshots/05-quick-search/light/02-quick-search-open.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Search for Services or Settings
|
||||
|
||||
Click on the search input field and start typing. Quick Search supports fuzzy matching and will show results as you type.
|
||||
|
||||
**What to search for:**
|
||||
- Service names (e.g., "Plex", "Gitea", "Nextcloud")
|
||||
- Settings names (e.g., "backup", "theme", "notifications")
|
||||
- Dashboard features (e.g., "logs", "stats", "docker")
|
||||
|
||||
Screenshot: `screenshots/05-quick-search/light/03-quick-search-typed.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Navigate and Select Results
|
||||
|
||||
Use the keyboard to navigate through search results:
|
||||
|
||||
1. **↑/↓ arrows** — Move the selection highlight up or down through results
|
||||
2. **Enter** — Select and open the highlighted item
|
||||
3. **ESC** — Close the Quick Search modal without selecting anything
|
||||
|
||||
**Result types may include:**
|
||||
- Services (apps you've deployed)
|
||||
- Settings pages
|
||||
- Dashboard features and modals
|
||||
- Documentation links
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Quick Actions
|
||||
|
||||
Depending on the selected result, Quick Search can:
|
||||
- Open a service's management modal
|
||||
- Navigate to a settings page
|
||||
- Open a specific dashboard feature
|
||||
- Show detailed information about a service
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Quick Search doesn't open | Try the keyboard shortcut (Ctrl+K/Cmd+K) |
|
||||
| No results appearing | Try shorter search terms; check spelling |
|
||||
| Results not relevant | Quick Search may need services to be configured first |
|
||||
| Can't select with Enter | Make sure a result is highlighted (has focus) |
|
||||
| Modal won't close | Press ESC to close; if it doesn't work, click outside the modal |
|
||||
108
src/tutorials/05-backup-restore.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Backup & Restore Your Configuration
|
||||
|
||||
DashCaddy includes a comprehensive backup system that saves your entire configuration — services, credentials, themes, and settings — into a single file. This tutorial shows how to create backups and restore from them.
|
||||
|
||||
**Prerequisites:** Logged into DashCaddy dashboard.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Access the Backup Modal
|
||||
|
||||
The Backup feature is found in the TOOLS section of the dashboard.
|
||||
|
||||
**What you should see:**
|
||||
- Dashboard with STATUS, TOOLS, ADMIN navigation
|
||||
- Service cards and widgets
|
||||
|
||||
Navigate to the TOOLS section and click on **Backup** to open the Backup & Restore modal.
|
||||
|
||||
Screenshot: `screenshots/06-backup-restore/light/01-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 2: The Backup Modal
|
||||
|
||||
The Backup modal opens with three tabs and detailed information about what gets backed up.
|
||||
|
||||
**What you should see:**
|
||||
- **Title:** 💾 Backup & Restore
|
||||
- **Description:** "Full backup of your entire DashCaddy setup — server config, credentials, themes, and browser preferences in one file."
|
||||
- **Tab buttons:** Manual, Automated, History
|
||||
|
||||
Screenshot: `screenshots/06-backup-restore/light/02-backup-modal-open.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Manual Backup (Export)
|
||||
|
||||
The **Manual** tab is selected by default and contains export options.
|
||||
|
||||
**What you should see:**
|
||||
- **📤 Export Backup** section with description:
|
||||
- "Downloads everything — services, Caddyfile, credentials, encryption key, themes, and all browser preferences."
|
||||
- **⬇️ Download Full Backup** button
|
||||
|
||||
**To create a manual backup:**
|
||||
1. Click **⬇️ Download Full Backup**
|
||||
2. Your browser will download a backup file (typically `.tar.gz` or similar archive)
|
||||
3. Save this file in a safe location
|
||||
|
||||
The backup file includes:
|
||||
- All service configurations
|
||||
- Caddy reverse proxy configuration
|
||||
- Encrypted credentials
|
||||
- Encryption keys
|
||||
- Custom themes
|
||||
- Browser preferences and settings
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Restore from Backup
|
||||
|
||||
The **📥 Restore Backup** section lets you restore from a previously saved backup file.
|
||||
|
||||
**To restore from backup:**
|
||||
1. Click the upload/restore button (may be labeled differently in your version)
|
||||
2. Select your backup file from your computer
|
||||
3. Confirm the restore operation when prompted
|
||||
4. Wait for the restore process to complete
|
||||
|
||||
**⚠️ Warning:** Restoring a backup will replace your current configuration. Make sure to:
|
||||
- Export your current configuration first (if needed)
|
||||
- Verify the backup file is from a trusted source
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Automated Backups
|
||||
|
||||
The **Automated** tab lets you schedule regular backups.
|
||||
|
||||
**What you might see:**
|
||||
- Backup schedule configuration
|
||||
- Options for backup frequency (daily, weekly, etc.)
|
||||
- Backup retention settings
|
||||
|
||||
Configure automated backups to ensure you always have recent restore points available.
|
||||
|
||||
---
|
||||
|
||||
## Step 6: Backup History
|
||||
|
||||
The **History** tab shows previous backup operations.
|
||||
|
||||
**What you might see:**
|
||||
- List of past backups
|
||||
- Timestamps for each backup
|
||||
- Restore options for individual backups
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Download button not working | Check browser popup blocker; try a different browser |
|
||||
| Backup file won't upload | Ensure you're uploading the correct file format; check file size limits |
|
||||
| Restore fails | Verify the backup file is complete and not corrupted |
|
||||
| Automated backup not running | Check that the DashCaddy service is running; verify schedule settings |
|
||||
| Forgotten encryption key | Without the encryption key from backup, some credentials may not restore |
|
||||
113
src/tutorials/06-stats-monitoring.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# Monitoring Resources with Stats
|
||||
|
||||
DashCaddy's Stats feature provides real-time and historical monitoring of CPU, memory, network, and disk usage for your containers. This tutorial shows how to access and interpret the monitoring data.
|
||||
|
||||
**Prerequisites:** Logged into DashCaddy dashboard with Docker containers running.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Access the Stats Modal
|
||||
|
||||
The Stats monitoring is found in the STATUS section of the dashboard.
|
||||
|
||||
**What you should see:**
|
||||
- Dashboard with STATUS, TOOLS, ADMIN navigation
|
||||
- Various service cards and status indicators
|
||||
|
||||
Navigate to the STATUS section and click on **Stats** to open the Resource Monitor.
|
||||
|
||||
Screenshot: `screenshots/07-stats-monitoring/light/01-dashboard.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 2: The Stats Modal
|
||||
|
||||
The Stats modal opens with resource monitoring data organized into tabs.
|
||||
|
||||
**What you should see:**
|
||||
- **Title:** 📊 Resource Monitor
|
||||
- **Description:** "Real-time and historical CPU, memory, network, and disk usage for containers."
|
||||
- **Tabs:** Live Stats, 24h Summary, Alerts
|
||||
|
||||
Screenshot: `screenshots/07-stats-monitoring/light/02-stats-modal-open.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Live Stats View
|
||||
|
||||
The **Live Stats** tab shows real-time resource usage.
|
||||
|
||||
**What you might see:**
|
||||
- Container list with real-time metrics
|
||||
- CPU usage percentage per container
|
||||
- Memory usage (used/available)
|
||||
- Network I/O rates
|
||||
- Disk I/O rates
|
||||
- Auto-refresh indicator: "Auto-refresh every 5s"
|
||||
|
||||
**Refresh controls:**
|
||||
- **🔄 Refresh Now** — Manually trigger a refresh of all stats
|
||||
- Automatic refresh can be paused if needed
|
||||
|
||||
Screenshot: `screenshots/07-stats-monitoring/light/02-stats-modal-open.png`
|
||||
|
||||
---
|
||||
|
||||
## Step 4: 24h Summary View
|
||||
|
||||
The **24h Summary** tab shows aggregated statistics over the past 24 hours.
|
||||
|
||||
**What you might see:**
|
||||
- Peak CPU usage
|
||||
- Average memory usage
|
||||
- Total network traffic
|
||||
- Disk usage trends
|
||||
- Historical graphs if available
|
||||
|
||||
This view helps identify resource usage patterns and plan for capacity needs.
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Alerts View
|
||||
|
||||
The **Alerts** tab shows any resource-related alerts.
|
||||
|
||||
**What you might see:**
|
||||
- High CPU warnings
|
||||
- Memory pressure alerts
|
||||
- Disk space warnings
|
||||
- Network issues
|
||||
|
||||
Alerts help you stay on top of problems before they cause service disruptions.
|
||||
|
||||
---
|
||||
|
||||
## Understanding the Metrics
|
||||
|
||||
**CPU Usage:**
|
||||
- Shows percentage of CPU being used by each container
|
||||
- High CPU (>80%) sustained may indicate performance issues
|
||||
|
||||
**Memory Usage:**
|
||||
- Shows RAM used vs. available
|
||||
- Watch for containers with memory limits approaching capacity
|
||||
|
||||
**Network I/O:**
|
||||
- Bytes/packets in and out
|
||||
- Helps identify unexpected network activity
|
||||
|
||||
**Disk I/O:**
|
||||
- Read/write speeds
|
||||
- Important for storage-heavy workloads
|
||||
|
||||
---
|
||||
|
||||
## Common Issues
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Stats show "Loading container stats..." | No containers running, or Docker is not responding |
|
||||
| Auto-refresh not working | Click "🔄 Refresh Now" manually; check Docker daemon |
|
||||
| Missing container in stats | Container may have stopped; check container status |
|
||||
| Network stats show zeros | Network monitoring may not be enabled for that container |
|
||||
| High CPU alerts | Check which container is using resources; consider resource limits |
|
||||