Deprecated: This template is no longer recommended. Use the
freeformtemplate instead β it provides the same functionality with a cleaner setup. Existing workspaces continue to work, but new workspaces should be created fromfreeform.
General-purpose DDEV workspace for developing any project type supported by DDEV (PHP, WordPress, Laravel, Drupal, Magento, and more). Provides a full Docker environment via Sysbox with VS Code for Web and DDEV pre-configured.
- Any Project Type: PHP, WordPress, Laravel, Drupal, Magento, Symfony, and 20+ others
- Full Docker: Isolated Docker daemon via Sysbox β no privileged mode required
- VS Code for Web: Browser-based IDE opens to your home directory
- DDEV Pre-installed: Ready to configure and start DDEV projects
- Persistent Storage: Home directory and Docker layer cache survive workspace restarts
- Port Forwarding: DDEV web server (port 80) accessible via Coder dashboard
# Create workspace
coder create --template user-defined-web my-workspace
# SSH in
coder ssh my-workspace
# Create a new project
mkdir ~/projects/mysite && cd ~/projects/mysite
# Configure DDEV for your project type
ddev config --project-type=php --docroot=web
# Or: ddev config --project-type=wordpress --docroot=web
# Or: ddev config --project-type=laravel --docroot=public
# Or: ddev config --project-type=drupal --docroot=web
# Start DDEV
ddev startThen click DDEV Web in the Coder dashboard to open your site.
DDEV supports many project types. Pass --project-type=<type> to ddev config:
| Type | Docroot | Notes |
|---|---|---|
php |
varies | Generic PHP projects |
wordpress |
web | WordPress installations |
laravel |
public | Laravel framework |
drupal |
web | Drupal 7, 8, 9, 10, 11 |
magento2 |
pub | Magento 2 |
symfony |
public | Symfony framework |
craftcms |
web | Craft CMS |
typo3 |
public | TYPO3 CMS |
See DDEV project types for the full list.
# Clone your project
cd ~/projects
git clone git@github.com:your-org/your-project.git mysite
cd mysite
# Configure DDEV (or use an existing .ddev/config.yaml)
ddev config --project-type=wordpress --docroot=web
ddev start
# Import a database (if you have one)
ddev import-db --file=dump.sql.gz# Project lifecycle
ddev start # Start DDEV containers
ddev stop # Stop containers
ddev restart # Restart containers
ddev describe # Show project URLs and status
# Database
ddev import-db --file=dump.sql.gz # Import database
ddev export-db --file=dump.sql.gz # Export database
ddev mysql # Open MySQL CLI
# Running commands
ddev exec php --version # Run command in web container
ddev ssh # SSH into web container
ddev composer install # Run Composer
ddev npm install # Run npm
# Logs and debugging
ddev logs # View container logs
ddev logs -f # Follow logs/home/coder/
βββ projects/ # Suggested location for DDEV projects
β βββ mysite/ # Your project directory
β βββ .ddev/ # DDEV configuration
β βββ web/ # Project files (docroot varies by type)
βββ WELCOME.txt # Welcome message
βββ .ddev/ # DDEV global configuration
- Coder v2.13+
- Sysbox runtime enabled on the Docker host
- Minimum: 2 CPU cores, 4 GB RAM
- Recommended: 4 CPU cores, 8 GB RAM, 20 GB disk per project
# Check Docker daemon
docker ps
# If not running, check logs
cat /tmp/dockerd.logddev describe # Check current state
ddev logs # View error output
docker ps # Verify containers existddev describe # Shows actual ports in use
# DDEV auto-selects alternative ports if 80/443 are taken- Verify the Coder server has Sysbox installed:
sysbox-runc --version - Check resource allocation meets minimums
ddev config --php-version=8.3
ddev restart# Add Redis
ddev get ddev/ddev-redis
ddev restart
# Add Memcached
ddev get ddev/ddev-memcached
ddev restartddev config --database=mariadb:11.4
ddev restart- DDEV Docs: https://ddev.readthedocs.io/
- Coder Docs: https://coder.com/docs
- Template Issues: File issues in this repository