# DashCaddy Installer - Quick Start

## For Developers

### Setup & Run

```bash
# Install dependencies
npm install

# Run in development mode
npm start

# Build for Windows
npm run build:win
```

The built installer will be at: `dist/win-unpacked/DashCaddy Installer.exe`

## For End Users

### Running the Installer

1. **Download** the DashCaddy Installer executable
2. **Run** the installer (no installation required - it's portable)
3. **Follow** the 5-step wizard:

#### Step 1: Welcome
- Review features and system requirements
- Confirm detected platform

#### Step 2: Choose Folders
- Select installation directory (default: `C:\DashCaddy`)
- Optionally customize Docker data and Caddy config paths
- Click **Next**

#### Step 3: Check Dependencies
- Installer checks for Docker and Caddy
- If missing, click **Install** buttons to install them
- Wait for installation to complete
- Click **Install** when both are ready

#### Step 4: Installation
- Watch progress as DashCaddy is installed
- Files are copied and configured automatically
- Takes 1-3 minutes depending on system

#### Step 5: Complete
- Installation successful!
- Click **Open Dashboard** to launch DashCaddy
- Dashboard opens at `http://localhost:8080`

### What Gets Installed

The installer creates this structure:

```
C:\DashCaddy\
├── dashboard\          # Web dashboard files
├── api\               # API server
├── docker-data\       # Docker volumes
├── caddy\            # Caddy configuration
├── Caddyfile         # Reverse proxy config
├── docker-compose.yml # Container orchestration
└── .dashcaddy-config.json # Installation settings
```

### System Requirements

- **OS**: Windows 10/11, macOS 10.15+, or Linux
- **RAM**: 4GB minimum, 8GB recommended
- **Disk**: 2GB free space
- **Docker**: Required (installer can install)
- **Caddy**: Required (installer can install)

### Accessing DashCaddy

After installation:

- **Dashboard**: http://localhost:8080
- **API**: http://localhost:3001
- **Caddy Admin**: http://localhost:2021

### Troubleshooting

#### Installer Won't Start
- Ensure you have administrator/sudo privileges
- Check antivirus isn't blocking the installer
- Try running as administrator (Windows)

#### Dependencies Won't Install
- Check internet connection
- Manually install Docker from docker.com
- Manually install Caddy from caddyserver.com

#### Dashboard Won't Open
- Check if Caddy is running: `caddy version`
- Check if Docker is running: `docker ps`
- Verify port 8080 isn't in use
- Check installation logs

#### Services Not Starting
- Ensure Docker daemon is running
- Check firewall settings
- Verify installation paths are correct

### Uninstalling

To remove DashCaddy:

1. Stop services:
   ```bash
   cd C:\DashCaddy
   docker compose down
   taskkill /IM caddy.exe /F
   ```

2. Delete installation directory:
   ```bash
   rmdir /s C:\DashCaddy
   ```

### Next Steps

After installation:

1. **Add Services**: Click "+" to deploy Docker containers
2. **Configure DNS**: Set up custom domains (optional)
3. **Import Existing**: Import services from other systems
4. **Customize**: Change themes, logos, and settings

### Getting Help

- **Documentation**: Check README.md in installation directory
- **Logs**: View container logs in dashboard
- **Support**: Open GitHub issue for bugs

## Development Notes

### Testing the Installer

```bash
# Run with DevTools for debugging
npm run dev

# Test specific functionality
npm test

# Build and test portable exe
npm run build:win
./dist/win-unpacked/DashCaddy\ Installer.exe
```

### Modifying the Installer

Key files to edit:

- **UI**: `src/renderer/wizard.js` and `styles.css`
- **Logic**: `src/main/index.js` (IPC handlers)
- **Deployment**: `src/main/file-deployer.js`
- **Config**: `src/main/caddyfile-generator.js`

### Adding Features

1. Add IPC handler in `src/main/index.js`
2. Expose in `src/preload/index.js`
3. Call from `src/renderer/wizard.js`
4. Update UI in `styles.css` if needed

## Tips

- **Portable**: The Windows .exe is fully portable - no installation needed
- **Upgrades**: Installer detects existing installations and can upgrade
- **Backups**: Installation config saved in `.dashcaddy-config.json`
- **Logs**: Check console with DevTools (Ctrl+Shift+I in dev mode)

## What's Next?

After successful installation, explore:

- **App Templates**: 50+ pre-configured applications
- **DNS Integration**: Set up local domains with Cloudflare
- **Monitoring**: Real-time service health checks
- **Backups**: Export/import dashboard configurations
