Skip to main content

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

  1. Navigate to SettingsImport / Export
  2. 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:

CategoryDescription
CreatedNew hosts added to Charon
UpdatedExisting hosts modified (if overwrite enabled)
SkippedHosts skipped due to conflicts or errors
WarningsNon-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

SettingBehavior
Off (default)Skip hosts that already exist
OnReplace existing hosts with imported configuration

Import Disabled Hosts

Create hosts but leave them disabled for review before enabling.

TLS Handling

Source TLS SettingCharon Behavior
ACME configuredEnable Let's Encrypt
Custom certificatesCreate host, flag for manual cert upload
No TLSCreate HTTP-only host

Migration from Other Caddy Setups

From Caddy Standalone

  1. Locate your Caddyfile (typically /etc/caddy/Caddyfile)
  2. Copy contents or upload file
  3. Import into Charon
  4. Verify hosts work correctly
  5. Point DNS to Charon
  6. 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

IssueSolution
Parse errorCheck Caddyfile syntax validity
Missing hostsEnsure site blocks have valid domains
TLS warningsConfigure certificates manually post-import
Duplicate domainsEnable overwrite or rename in source