Files
Charon/docs/features/caddyfile-import.md
GitHub Actions ca477c48d4 chore: Enhance documentation for E2E testing:
- Added clarity and structure to README files, including recent updates and getting started sections.
- Improved manual verification documentation for CrowdSec authentication, emphasizing expected outputs and success criteria.
- Updated debugging guide with detailed output examples and automatic trace capture information.
- Refined best practices for E2E tests, focusing on efficient polling, locator strategies, and state management.
- Documented triage report for DNS Provider feature tests, highlighting issues fixed and test results before and after improvements.
- Revised E2E test writing guide to include when to use specific helper functions and patterns for better test reliability.
- Enhanced troubleshooting documentation with clear resolutions for common issues, including timeout and token configuration problems.
- Updated tests README to provide quick links and best practices for writing robust tests.
2026-03-24 01:47:22 +00:00

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

  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:

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

  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

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