Comprehensive documentation overhaul for Charon features: Rewrite features.md as marketing overview (87% reduction) Create comprehensive dns-challenge.md for new DNS feature Expand 18 feature stub pages into complete documentation: SSL certificates, CrowdSec, WAF, ACLs, rate limiting Security headers, proxy headers, web UI, Docker integration Caddyfile import, logs, WebSocket, backup/restore Live reload, localization, API, UI themes, supply chain security Update README.md with DNS Challenge in Top Features Total: ~2,000+ lines of new user-facing documentation Refs: #21, #461
4.5 KiB
title, description, category
| title | description | category |
|---|---|---|
| Caddyfile Import | Import existing Caddyfile configurations with one click | migration |
Caddyfile Import
Migrating from another Caddy setup? Import your existing Caddyfile configurations with one click. Your existing work transfers seamlessly—no need to start from scratch.
Overview
Caddyfile import parses your existing Caddy configuration files and converts them into Charon-managed hosts. This enables smooth migration from standalone Caddy installations, other Caddy-based tools, or configuration backups.
Supported Configurations
- Reverse Proxy Sites: Domain → backend mappings
- File Server Sites: Static file hosting configurations
- TLS Settings: Certificate paths and ACME settings
- Headers: Custom header configurations
- Redirects: Redirect rules and rewrites
Why Use This
Preserve Existing Work
- Don't rebuild configurations from scratch
- Maintain proven routing rules
- Keep customizations intact
Reduce Migration Risk
- Preview imports before applying
- Identify conflicts and duplicates
- Rollback if issues occur
Accelerate Adoption
- Evaluate Charon without commitment
- Run imports on staging first
- Gradual migration at your pace
How to Import
Step 1: Access Import Tool
- Navigate to Settings → Import / Export
- Click Import Caddyfile
Step 2: Provide Configuration
Choose one of three methods:
Paste Content:
example.com {
reverse_proxy localhost:3000
}
api.example.com {
reverse_proxy localhost:8080
}
Upload File:
- Click Choose File
- Select your Caddyfile
Fetch from URL:
- Enter URL to raw Caddyfile content
- Useful for version-controlled configurations
Step 3: Preview and Confirm
The import preview shows:
- Hosts Found: Number of site blocks detected
- Parse Warnings: Non-fatal issues or unsupported directives
- Conflicts: Domains that already exist in Charon
Step 4: Execute Import
Click Import to create hosts. The process handles each host individually—one failure doesn't block others.
Import Results Modal
After import completes, a summary modal displays:
| Category | Description |
|---|---|
| Created | New hosts added to Charon |
| Updated | Existing hosts modified (if overwrite enabled) |
| Skipped | Hosts skipped due to conflicts or errors |
| Warnings | Non-blocking issues to review |
Example Results
Import Complete
✓ Created: 12 hosts
↻ Updated: 3 hosts
○ Skipped: 2 hosts
⚠ Warnings: 1
Details:
✓ example.com → localhost:3000
✓ api.example.com → localhost:8080
○ old.example.com (already exists, overwrite disabled)
⚠ staging.example.com (unsupported directive: php_fastcgi)
Configuration Options
Overwrite Existing
| Setting | Behavior |
|---|---|
| Off (default) | Skip hosts that already exist |
| On | Replace existing hosts with imported configuration |
Import Disabled Hosts
Create hosts but leave them disabled for review before enabling.
TLS Handling
| Source TLS Setting | Charon Behavior |
|---|---|
| ACME configured | Enable Let's Encrypt |
| Custom certificates | Create host, flag for manual cert upload |
| No TLS | Create HTTP-only host |
Migration from Other Caddy Setups
From Caddy Standalone
- Locate your Caddyfile (typically
/etc/caddy/Caddyfile) - Copy contents or upload file
- Import into Charon
- Verify hosts work correctly
- Point DNS to Charon
- Decommission old Caddy
From Other Management Tools
Export Caddyfile from your current tool, then import into Charon. Most Caddy-based tools provide export functionality.
Partial Migrations
Import specific site blocks by editing the Caddyfile before import. Remove sites you want to migrate later or manage separately.
Limitations
Some Caddyfile features require manual configuration after import:
- Custom plugins/modules
- Complex matcher expressions
- Snippet references (imported inline)
- Global options (applied separately)
Troubleshooting
| Issue | Solution |
|---|---|
| Parse error | Check Caddyfile syntax validity |
| Missing hosts | Ensure site blocks have valid domains |
| TLS warnings | Configure certificates manually post-import |
| Duplicate domains | Enable overwrite or rename in source |
Related
- Web UI - Managing imported hosts
- SSL Certificates - Certificate configuration
- Back to Features