refactor: Phase 1 code cleanup - constants, logging, and repository organization

This commit is contained in:
2026-03-28 18:54:39 -07:00
parent f1b0ac43d0
commit 6c3848102b
24 changed files with 17078 additions and 50 deletions

View File

@@ -0,0 +1,149 @@
DashCaddy v1.0
==================================
Copyright (c) 2026 Sami Ahmed. All rights reserved.
This software is provided to you, Nick G, for testing and evaluation
purposes only. This is pre-release software (beta). You may not
redistribute, modify, or share this software or any of its components
without written permission from the author. By using this software you
acknowledge that Sami Ahmed is the sole author and copyright holder.
Your feedback, bug reports, and pen-testing findings are welcome and
appreciated — that's the whole point of this test build.
WHAT IS DASHCADDY?
------------------
DashCaddy is a home lab management platform. It gives you a single
dashboard to manage Docker containers, a Caddy reverse proxy, and DNS —
all from a web browser. Think of it as a control panel for self-hosted
services on your home network.
With DashCaddy you can:
- Deploy apps (Plex, Jellyfin, Sonarr, Radarr, etc.) with one click
- Manage your reverse proxy (Caddy) so each app gets its own domain
- Access everything through a clean web dashboard
- Use HTTPS on your local network with an internal Certificate Authority
WHAT YOU NEED
-------------
- Windows 10 or 11 (64-bit)
- 4 GB RAM minimum
- 2 GB free disk space
- Internet connection (for downloading Docker and Caddy during setup)
- Hardware virtualization enabled in BIOS (required for Docker/WSL2)
HOW TO INSTALL
--------------
1. Double-click "DashCaddy Installer 1.0.0.exe"
- Windows SmartScreen may warn you since this isn't signed software.
Click "More info" then "Run anyway" to proceed.
2. WELCOME SCREEN
The installer will detect your OS and show you what's included.
Click "Next" to continue.
3. DEPENDENCIES
The installer checks if Docker and Caddy are installed on your PC.
- If Docker is missing, it will download and install Docker Desktop
for you. This may require a restart to set up WSL2.
- If Caddy is missing, it will download and install the Caddy binary.
Click "Next" once both show green checkmarks.
4. INSTALL PATH
Choose where DashCaddy will live on your machine.
Default is C:\DashCaddy — that's fine for most people.
5. TIER SELECTION
Pick what you want to set up:
- Basic: Dashboard only (static page, no Docker)
- Standard (recommended): Dashboard + API server in Docker
- Full Stack: Everything above + DNS management via Technitium
For testing, "Standard" is the best starting point.
6. ACCESS MODE
How do you want to reach the dashboard?
- Local Only: Access via http://localhost:8080 (simplest)
- Public Domain: Use a real domain with Let's Encrypt HTTPS
- Custom TLD: Use made-up domains like dashcaddy.home, plex.home
(requires a DNS server to resolve those names)
For testing, "Local Only" is the easiest. You can change this later.
7. DASHBOARD SETUP
Customize the name, colors, and logo. Defaults are fine to start.
8. INSTALLATION
Watch the progress bar as the installer:
- Copies dashboard and API files
- Generates your Caddyfile (reverse proxy config)
- Generates docker-compose.yml
- Creates encryption keys for credential storage
- Starts Caddy and the Docker container
- Runs health checks
9. COMPLETE
You'll see a success screen with your dashboard URL. Click "Open
Dashboard" to launch it in your browser.
USING THE DASHBOARD
-------------------
Once installed, the dashboard is your home base:
- APP SELECTOR: Browse 50+ app templates (media servers, download
managers, chat platforms, etc.). Click "Deploy" on any app and
DashCaddy creates the Docker container, sets up the reverse proxy,
and adds it to your dashboard automatically.
- SERVICE CARDS: Each deployed app shows as a card on the dashboard
with status (online/offline), quick links, and controls.
- CADDY MANAGEMENT: View and reload your reverse proxy configuration
without touching config files.
- DNS MANAGEMENT (Full Stack tier): Manage DNS records so your custom
domains resolve to the right services.
WHAT TO TEST / PENTEST
----------------------
Things I'd especially like feedback on:
1. Does the installer run cleanly on your machine?
2. Do Docker and Caddy get installed without issues?
3. Can you deploy an app from the app selector?
4. Try breaking things — bad inputs, weird characters in names,
rapid clicking, deploying multiple apps at once.
5. Security: the API runs on port 3001. See if you can find any
vulnerabilities (injection, auth bypass, path traversal, etc.).
6. Try the different access modes if you're feeling adventurous.
Report anything you find back to me — crashes, confusing steps, security
issues, or just things that felt weird. Screenshots are always helpful.
UNINSTALLING
------------
To remove DashCaddy:
1. Stop Docker containers: docker compose down
(from the dashcaddy-api folder inside your install path)
2. Stop Caddy (kill the process or close the terminal)
3. Delete the installation folder (e.g. C:\DashCaddy)
4. Optionally uninstall Docker Desktop from Windows Settings
KNOWN LIMITATIONS (beta)
------------------------
- The installer exe is not code-signed, so Windows SmartScreen will
flag it. This is normal for pre-release software.
- Docker Desktop's WSL2 setup may require a Windows restart.
- Custom TLD mode requires a DNS server. You can deploy Technitium
DNS directly from the app selector and plug it into the dashboard.
- Some app templates may need manual configuration after deployment.
Thanks for testing, Nick. Your feedback helps make this better.
- Sami