Damp

Creating Projects

Create PHP projects with one-click DevContainers

Create PHP projects with automatic DevContainer setup. Choose from basic PHP, Laravel, or add DevContainer support to existing projects.

Project Types

Basic PHP

Empty PHP project with minimal setup. Includes:

  • Custom frameworks
  • Small applications
  • Learning PHP
  • API projects

Includes:

  • ✅ PHP (your chosen version)
  • ✅ Composer
  • ✅ XDebug pre-configured
  • public/index.php starter file
  • ✅ DevContainer files

Laravel

New Laravel application with optional starter kits:

None

Clean Laravel installation

React

Laravel + Inertia + React + TypeScript

Vue

Laravel + Inertia + Vue + TypeScript

Livewire

Laravel + Livewire + Blade

Custom

Your own starter repository URL

Laravel Includes:

  • ✅ Latest Laravel via Composer
  • ✅ Node.js for asset compilation
  • ✅ Starter kit of your choice
  • ✅ Database-ready (DB_HOST=damp-mysql)
  • ✅ Tinker access button

Existing Project

Add DevContainer support to your existing PHP codebase.

What DAMP Adds:

  • .devcontainer/ folder
  • .vscode/ settings
  • ✅ Named volume for performance
  • ✅ HTTPS domain and certificate
  • ✅ Hosts file entry

DAMP only adds DevContainer files - your existing code remains untouched.

Creation Process

Open Create Dialog

Click "Add Project" button in DAMP's Projects page.

Select Project Type

Choose Basic PHP, Laravel, or Existing Project.

Choose Starter Kit (Laravel Only)

If creating Laravel, select your preferred starter kit or none for clean install.

Configure Details

FieldDescriptionExample
NameProject identifier (no spaces)myblog
PathWhere project folder is createdC:\Users\Me\Projects
PHP VersionPHP runtime version8.4, 8.3, 8.2, 8.1, 8.0, 7.4

For Basic/Laravel: Project folder created at {path}\{name}

For Existing: Select the existing project's root folder

Optional Features

Toggle additional features:

  • Claude Code CLI - AI coding assistant in DevContainer
  • Is Laravel Project (Existing only) - Enable Laravel-specific features

Create Project

Click "Create Project" and watch progress in real-time:

  1. Setup (10%) - Preparing structure
  2. Laravel Install (30%) - Installing Laravel (if applicable)
  3. Volume (50%) - Creating named volume
  4. DevEnv (80%) - Configuring DevContainer
  5. Finalizing (90%) - Adding domain and SSL
  6. Complete (100%) - Ready

Creation Output

After creation, your project contains:

myproject/
├── .devcontainer/
│   └── devcontainer.json       # VS Code DevContainer config
├── .vscode/
│   └── launch.json             # Xdebug launch config
├── Dockerfile                   # Multi-stage Docker build
├── docker-compose.yml           # Standalone compose file
├── .dockerignore                # Build context exclusions
├── public/
│   └── index.php                # Entry point
└── [Laravel files if applicable]

PHP Versions

DAMP supports PHP 7.4, 8.0, 8.1, 8.2, 8.3, and 8.4. Each project can use a different PHP version.

Run PHP 7.4 and 8.4 simultaneously with different projects.

DevContainer Features

Every project includes:

Pre-installed Extensions

  • ctype, curl, dom, fileinfo, filter, hash, mbstring, openssl, pcre, session, tokenizer
  • xml, opcache, mysqli, pcntl, pdo_mysql, pdo_pgsql, redis, zip
  • xdebug (mode: develop,debug,trace,coverage,profile)

VS Code Integration

  • Xdebug debugging - Set breakpoints and press F5
  • IntelliSense - Auto-completion via PHP Intelephense
  • Code spell checker
  • Git integration

Networking

  • damp-network - Docker network for container communication
  • Named Volume - Fast file I/O on Windows
  • Caddy Integration - HTTPS routing via reverse proxy

Claude Code CLI

Enable AI-powered coding assistance:

// Added to devcontainer.json when enabled
"features": {
  "ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
}

Usage Inside Container:

# Start interactive session
claude

# Get help with code
claude "how do I make a PHP API endpoint?"

Toggle the switch during creation - DAMP handles the DevContainer configuration.

Troubleshooting


Create a Basic PHP project to verify your setup before trying Laravel.

Next Steps

On this page