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:
230
dashcaddy-installer/README.md
Normal file
230
dashcaddy-installer/README.md
Normal 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
|
||||
Reference in New Issue
Block a user