Initial commit: DashCaddy v1.0

Full codebase including API server (32 modules + routes), dashboard frontend,
DashCA certificate distribution, installer script, and deployment skills.
This commit is contained in:
2026-03-05 02:26:12 -08:00
commit f61e85d9a7
337 changed files with 75282 additions and 0 deletions

View File

@@ -0,0 +1,230 @@
# DashCaddy Installer
A cross-platform Electron application that provides a guided installation wizard for DashCaddy - the unified management platform for Docker containers and Caddy reverse proxy.
## ✨ Features
- **🎯 Guided 5-Step Wizard** - Simple, intuitive installation process
- **🔍 Automatic Dependency Detection** - Checks for Docker and Caddy
- **📦 One-Click Dependency Installation** - Installs missing requirements
- **🖥️ Cross-Platform Support** - Windows, macOS, and Linux
- **📁 Smart File Deployment** - Copies and configures all necessary files
- **⚙️ Auto-Configuration** - Generates Caddyfile and docker-compose.yml
- **🚀 Service Management** - Starts services and opens dashboard
- **💾 Configuration Persistence** - Saves settings for upgrades
- **🎨 Modern UI** - Clean, responsive interface with progress tracking
## 🚀 Quick Start
### For End Users
1. **Download** the installer for your platform
2. **Run** the executable (portable, no installation needed)
3. **Follow** the wizard steps
4. **Access** your dashboard at http://localhost:8080
See [QUICK_START.md](QUICK_START.md) for detailed user instructions.
### For Developers
```bash
# Install dependencies
npm install
# Run in development mode with DevTools
npm run dev
# Build for Windows
npm run build:win
```
See [BUILD_GUIDE.md](BUILD_GUIDE.md) for comprehensive build instructions.
## 📋 System Requirements
- **Operating System**: Windows 10/11, macOS 10.15+, or Linux
- **RAM**: 4GB minimum, 8GB recommended
- **Disk Space**: 2GB free space
- **Dependencies**: Docker and Caddy (installer can install these)
## 🏗️ Project Structure
```
dashcaddy-installer/
├── src/
│ ├── main/ # Electron main process
│ │ ├── index.js # Main entry & IPC handlers
│ │ ├── dependency-checker.js # Docker/Caddy detection
│ │ ├── config-manager.js # Configuration management
│ │ ├── file-deployer.js # File copying & deployment
│ │ ├── caddyfile-generator.js # Config generation
│ │ ├── browser-launcher.js # Browser integration
│ │ └── service-manager.js # Service control
│ ├── renderer/ # UI layer
│ │ ├── index.html # Main HTML
│ │ ├── wizard.js # Wizard logic
│ │ └── styles.css # Styling
│ ├── preload/ # IPC bridge
│ │ └── index.js # Secure IPC exposure
│ └── shared/ # Shared utilities
│ ├── constants.js # App constants
│ └── platform-utils.js # Platform detection
├── templates/ # Configuration templates
│ ├── Caddyfile.template # Caddyfile template
│ ├── docker-compose.template.yml
│ └── README.md
├── assets/ # Images & icons
│ ├── icon.png # App icon
│ └── dashcaddy-logo.png
├── dist/ # Build output (generated)
├── BUILD_GUIDE.md # Comprehensive build guide
├── QUICK_START.md # User quick start guide
└── package.json # Dependencies & config
```
## 🛠️ Development
### Setup
```bash
# Clone the repository
git clone <repository-url>
cd dashcaddy-installer
# Install dependencies
npm install
```
### Running
```bash
# Development mode with DevTools
npm run dev
# Production mode
npm start
```
### Testing
```bash
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run property-based tests
npm test -- --testNamePattern="property"
```
### Building
```bash
# Build for current platform
npm run build
# Build for specific platforms
npm run build:win # Windows
npm run build:mac # macOS
npm run build:linux # Linux
```
**Build Output:**
- Windows: `dist/win-unpacked/DashCaddy Installer.exe` (168MB portable)
- macOS: `dist/DashCaddy Installer.dmg`
- Linux: `dist/DashCaddy Installer.AppImage`
## 📖 Documentation
- **[BUILD_GUIDE.md](BUILD_GUIDE.md)** - Complete build and development guide
- **[QUICK_START.md](QUICK_START.md)** - User installation guide
- **[templates/README.md](templates/README.md)** - Template documentation
## 🎯 Installation Wizard Steps
### 1. Welcome
- Introduction to DashCaddy
- Platform detection
- Feature overview
### 2. Choose Folders
- Select installation directory
- Configure Docker data path
- Set Caddy config location
### 3. Check Dependencies
- Detect Docker installation
- Detect Caddy installation
- Install missing dependencies
### 4. Installation
- Deploy dashboard files
- Deploy API server
- Install npm dependencies
- Generate configurations
- Start services
### 5. Complete
- Installation summary
- Dashboard URL
- Quick access button
## 🔧 Configuration
### Source Directories
The installer copies files from:
- **Dashboard**: `../status/``{install}/dashboard/`
- **API Server**: `../dashcaddy-api/``{install}/api/`
### Generated Files
The installer creates:
- `Caddyfile` - Reverse proxy configuration
- `docker-compose.yml` - Container orchestration
- `.dashcaddy-config.json` - Installation settings
### Default Ports
- **Dashboard**: 8080
- **API Server**: 3001
- **Caddy Admin**: 2019
## 🐛 Troubleshooting
### Build Issues
- Ensure Node.js 18+ is installed
- Delete `node_modules` and run `npm install`
- Check that source directories exist
### Runtime Issues
- Run with `npm run dev` to see console errors
- Check that Docker daemon is running
- Verify Caddy is installed and accessible
- Ensure ports 8080, 3001, 2021 are available
### Deployment Issues
- Verify source paths in `file-deployer.js`
- Check write permissions on installation directory
- Ensure sufficient disk space
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request
## 📝 License
MIT
## 🙏 Acknowledgments
Built with:
- [Electron](https://www.electronjs.org/) - Cross-platform desktop apps
- [electron-builder](https://www.electron.build/) - Build and packaging
- [Jest](https://jestjs.io/) - Testing framework
- [fast-check](https://fast-check.dev/) - Property-based testing