Damp

Migrate from DDEV

Switch from DDEV to DAMP DevContainers

Switch from DDEV to DAMP and get native VS Code DevContainers, visual service management, and simplified configuration.

Why Migrate?

FeatureDDEVDAMP
DevContainers⚠️ Manual✅ Native VS Code integration
Configuration.ddev/ folder.devcontainer/ (standard)
Visual Management❌ CLI only✅ GUI application
Service InstallationYAML configClick to install
Laravel Focus⚠️ Generic✅ Laravel-optimized

Keep Your Code

DAMP replaces DDEV's .ddev/ folder with .devcontainer/ - your project code stays the same!

Migration Process

Stop DDEV

Stop all DDEV containers:

# In your project directory
ddev stop

# Optional: Remove DDEV containers completely
ddev delete -O

Export DDEV Database

Export your database before stopping DDEV:

# While DDEV is running
ddev export-db --file=backup.sql.gz

Or use direct mysqldump:

ddev mysql -e "mysqldump -u root -proot db > backup.sql"

Open DAMP

Launch DAMP and click "Add Site" button.

Select "Existing Project"

Choose the Existing Project option.

Configure Site

Fill in the details:

FieldValueExample
NameYour site namemy-ddev-site
PathYour project folderC:\Sites\my-ddev-site
PHP VersionMatch .ddev/config.yaml8.3

Check your DDEV PHP version:

# .ddev/config.yaml
php_version: "8.3"  # Use this version

Install Services

Map DDEV services to DAMP:

DDEV ServiceDAMP ServiceInstall?
db (MySQL)MySQL✅ Required
db (PostgreSQL)PostgreSQL✅ If using
redisRedis✅ If configured
mailhogMailpit✅ Recommended

Check your .ddev/config.yaml:

services:
  redis:
    type: redis:7
  # Install matching service in DAMP

Go to Services page → Click "Install" for each service.

Import Database

Import your exported database:

# Inside VS Code DevContainer terminal
gunzip < backup.sql.gz | mysql -h damp-mysql -u damp -pdamp damp

# Or if you have uncompressed SQL
mysql -h damp-mysql -u damp -pdamp damp < backup.sql

Update Configuration

Open project in VS Code DevContainer and update .env:

DDEV .env:

DB_HOST=db
DB_DATABASE=db
DB_USERNAME=db
DB_PASSWORD=db

REDIS_HOST=redis

MAIL_HOST=localhost
MAIL_PORT=1025

DAMP .env:

DB_HOST=damp-mysql
DB_DATABASE=damp
DB_USERNAME=damp
DB_PASSWORD=damp

REDIS_HOST=damp-redis

MAIL_HOST=damp-mailpit
MAIL_PORT=1025

Clean Up DDEV Files

After successful migration, you can remove:

my-project/
├── .ddev/              ← Can delete
│   ├── config.yaml
│   └── ...
└── .gitignore          ← Update to remove .ddev

Backup First

Keep .ddev/ folder until you verify everything works in DAMP!

Test Your Site

  1. Open in VS Code: Click "Open in VS Code" in DAMP
  2. Reopen in Container when prompted
  3. Browse to https://my-project.local
  4. Install SSL certificate from DAMP

What Changed

Configuration Files

DDEV:

.ddev/
├── config.yaml         ← Project config
├── docker-compose.*.yaml
└── commands/

DAMP:

.devcontainer/          ← Standard DevContainer
├── devcontainer.json
├── Dockerfile
├── php.ini
└── xdebug.ini

.vscode/                ← VS Code integration
├── launch.json
└── settings.json

Command Comparison

TaskDDEVDAMP
Startddev startAutomatic in DevContainer
Stopddev stopClose VS Code
SSHddev sshUse VS Code terminal
Composerddev composercomposer (direct)
Artisanddev artisanphp artisan (direct)
npmddev npmnpm (direct)
Databaseddev mysqlmysql -h damp-mysql

No Prefix Needed

DAMP runs commands directly in DevContainer - no ddev prefix needed!

Service Hostnames

DDEV:

DB_HOST=db
REDIS_HOST=redis

DAMP:

DB_HOST=damp-mysql      # Prefixed with "damp-"
REDIS_HOST=damp-redis

Domain Access

DDEV:

https://my-project.ddev.site

DAMP:

https://my-project.local

Key Benefits

🎯 Native DevContainers

DDEV: Custom Docker Compose setup

DAMP: Standard VS Code DevContainers (works with GitHub Codespaces!)

🖥️ Visual Interface

DDEV: CLI commands only

DAMP: GUI for service installation, site management, logs

🚀 Simpler Configuration

DDEV: YAML configuration files

DAMP: Visual service installation

🔧 Laravel-Optimized

DDEV: Generic PHP/framework support

DAMP: Laravel starter kits, Tinker integration, Artisan helpers

Troubleshooting


Team Migration

DDEV and DAMP can coexist! Migrate gradually - some team members can use DDEV while others use DAMP.

Advanced: Side-by-Side Comparison

Configuration Structure

DDEV config.yaml:

name: my-project
type: php
php_version: "8.3"
webserver_type: nginx-fpm
database:
  type: mysql
  version: "8.0"

DAMP devcontainer.json:

{
  "name": "my-project",
  "image": "damp-php-8.3",
  "forwardPorts": [80, 443],
  "customizations": {
    "vscode": {
      "extensions": ["bmewburn.vscode-intelephense-client"]
    }
  }
}