PHPackages                             netresearch/agent-typo3-ddev - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. netresearch/agent-typo3-ddev

ActiveAi-agent-skill[Utility &amp; Helpers](/categories/utility)

netresearch/agent-typo3-ddev
============================

Netresearch AI skill for DDEV environment setup in TYPO3 extension development

v1.17.0(1mo ago)60(MIT AND CC-BY-SA-4.0)ShellCI passing

Since Dec 16Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/netresearch/typo3-ddev-skill)[ Packagist](https://packagist.org/packages/netresearch/agent-typo3-ddev)[ RSS](/packages/netresearch-agent-typo3-ddev/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (24)Used By (0)

TYPO3 DDEV Skill
================

[](#typo3-ddev-skill)

> An Agent Skill for automating DDEV environment setup in TYPO3 extension projects

[![TYPO3](https://camo.githubusercontent.com/79dbc379464ff3ee60b5f945560761a1cf8a037e58be415cf369589cfa686e0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d3131253230253743253230313225323025374325323031332d6f72616e67652e737667)](https://typo3.org/)[![DDEV](https://camo.githubusercontent.com/d7aa31417d13409f74e1f8948f49166807ed5026e15fd331e7a8439a602c68e4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f444445562d4c6f63616c253230446576656c6f706d656e742d626c75652e737667)](https://ddev.com/)[![License](https://camo.githubusercontent.com/6e8aea34fb51a8ac64bef0c72b3e2fef0c2863903155a3537069fbadd121d95c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d495425323025324225323043432d2d42592d2d53412d2d342e302d626c75652e737667)](#license)[![Agent Skill](https://camo.githubusercontent.com/a309f61715f30a0d3e77e15c3c202b5d1894e81508026d174e286c95a36ebd49/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4167656e74253230536b696c6c2d436f6d70617469626c652d626c756576696f6c65742e737667)](https://agentskills.io)

🔌 Compatibility
---------------

[](#-compatibility)

This is an **Agent Skill** following the [open standard](https://agentskills.io) originally developed by Anthropic and released for cross-platform use.

**Supported Platforms:**

- ✅ Claude Code (Anthropic)
- ✅ Cursor
- ✅ Windsurf
- ✅ GitHub Copilot
- ✅ Other skills-compatible AI agents

> Skills are portable packages of procedural knowledge that work across any AI agent supporting the Agent Skills specification.

Overview
--------

[](#overview)

This skill helps TYPO3 extension developers quickly set up a complete DDEV development environment with multiple TYPO3 versions. Instead of manually configuring DDEV, this skill automates the entire process - from detecting your extension metadata to generating all configuration files and installing TYPO3.

### What It Does

[](#what-it-does)

- ✅ Detects TYPO3 extension projects automatically
- ✅ Extracts extension metadata (key, package name, namespace)
- ✅ Generates complete DDEV configuration
- ✅ Creates multi-version TYPO3 testing environment (11.5, 12.4, 13.4 LTS)
- ✅ Provides backend and frontend access with preconfigured credentials
- ✅ Includes custom DDEV commands for easy TYPO3 installation

### Who It's For

[](#who-its-for)

- TYPO3 extension developers
- Teams working on TYPO3 extensions
- Developers needing to test extensions across multiple TYPO3 versions
- Anyone wanting a quick, reproducible TYPO3 development environment

Prerequisites
-------------

[](#prerequisites)

Before using this skill, ensure you have:

- [DDEV](https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/) installed
- [Docker](https://www.docker.com/get-started) running
- A TYPO3 extension project (with `ext_emconf.php` or `composer.json`)
- A skills-compatible AI agent (Claude Code, Cursor, Windsurf, GitHub Copilot, etc.)

Installation
------------

[](#installation)

### Marketplace (Recommended)

[](#marketplace-recommended)

Add the [Netresearch marketplace](https://github.com/netresearch/claude-code-marketplace) once, then browse and install skills:

```
# Claude Code
/plugin marketplace add netresearch/claude-code-marketplace
```

### npx ([skills.sh](https://skills.sh))

[](#npx-skillssh)

Install with any [Agent Skills](https://agentskills.io)-compatible agent:

```
npx skills add https://github.com/netresearch/typo3-ddev-skill --skill typo3-ddev
```

### Download Release

[](#download-release)

Download the [latest release](https://github.com/netresearch/typo3-ddev-skill/releases/latest) and extract to your agent's skills directory.

### Git Clone

[](#git-clone)

```
git clone https://github.com/netresearch/typo3-ddev-skill.git
```

### Composer (PHP Projects)

[](#composer-php-projects)

```
composer require netresearch/typo3-ddev-skill
```

Requires [netresearch/composer-agent-skill-plugin](https://github.com/netresearch/composer-agent-skill-plugin).

Usage
-----

[](#usage)

### Invoking the Skill

[](#invoking-the-skill)

Once installed, invoke the skill in your TYPO3 extension project directory:

**Via slash command:**

```
/typo3-ddev

```

**Via natural language:**

```
Set up DDEV for my TYPO3 extension

```

The skill will:

1. Validate prerequisites (DDEV, Docker, TYPO3 extension structure)
2. Extract your extension metadata
3. Confirm configuration with you
4. Generate all `.ddev/` files with proper values
5. Guide you through starting DDEV and installing TYPO3

### What You'll Get

[](#what-youll-get)

After setup, you'll have:

```
project-root/
├── .ddev/
│   ├── config.yaml
│   ├── docker-compose.web.yaml
│   ├── apache/
│   │   └── apache-site.conf
│   ├── web-build/
│   │   └── Dockerfile
│   └── commands/
│       └── web/
│           ├── install-v11
│           ├── install-v12
│           ├── install-v13
│           └── install-all
├── Classes/
├── Configuration/
├── ext_emconf.php
└── composer.json

```

### Accessing Your Environment

[](#accessing-your-environment)

Once installed, access TYPO3 at:

**Overview Dashboard:**

```
https://your-ext.ddev.site/

```

**TYPO3 11.5 LTS:**

- Frontend: `https://v11.your-ext.ddev.site/`
- Backend: `https://v11.your-ext.ddev.site/typo3/`

**TYPO3 12.4 LTS:**

- Frontend: `https://v12.your-ext.ddev.site/`
- Backend: `https://v12.your-ext.ddev.site/typo3/`

**TYPO3 13.4 LTS:**

- Frontend: `https://v13.your-ext.ddev.site/`
- Backend: `https://v13.your-ext.ddev.site/typo3/`

### Backend Credentials

[](#backend-credentials)

```
Username: admin
Password: Joh316!!

```

### Branded Landing Page

[](#branded-landing-page)

The overview dashboard automatically uses branded templates based on your project:

VendorTemplateBranding`netresearch/*`NetresearchTurquoise (#2F99A4), \[n\] logoAll othersTYPO3Orange (#FF8700), TYPO3 swoosh**Features:**

- Three-state theme switcher (Light / System / Dark)
- Git branch and commit info display
- Links to TER, Packagist, GitHub, Documentation, Mailpit
- TYPO3 version cards with Frontend/Backend links
- Composer package name display

Generate or regenerate the landing page:

```
ddev generate-index
```

**Template Variables** (auto-detected from `composer.json`):

- `{{EXTENSION_NAME}}` - Human-readable extension name
- `{{COMPOSER_PACKAGE}}` - Composer package name
- `{{TER_EXTENSION_KEY}}` - TER extension key
- `{{GITHUB_REPO}}` - GitHub repository URL
- `{{GIT_BRANCH}}` - Current git branch
- `{{GIT_COMMIT_SHORT}}` - Short commit hash

Custom DDEV Commands
--------------------

[](#custom-ddev-commands)

The skill creates these custom commands:

```
# Install specific TYPO3 version
ddev install-v11  # TYPO3 11.5 LTS
ddev install-v12  # TYPO3 12.4 LTS
ddev install-v13  # TYPO3 13.4 LTS

# Install all versions at once
ddev install-all

# Install Introduction Package (demo content)
ddev install-introduction v13
```

Adding Demo Content
-------------------

[](#adding-demo-content)

Test your extension with realistic content using the TYPO3 Introduction Package:

```
# Install Introduction Package
ddev install-introduction v13
```

**Includes:**

- 86+ pages with example content
- 226+ content elements (text, images, forms, tables)
- Multi-language support (EN, DE, DA)
- Bootstrap Package responsive theme
- Perfect for testing RTE features

Extension Auto-Configuration
----------------------------

[](#extension-auto-configuration)

For extensions needing additional setup (RTE config, TSconfig, TypoScript), create a custom configuration command:

```
# Copy template
cp .ddev/templates/commands/web/configure-extension.optional \
   .ddev/commands/web/configure-myext

# Customize for your extension's needs
# Add: RTE YAML, Page TSConfig, TypoScript, site package setup

# Run after TYPO3 installation
ddev configure-myext v13
```

**Use Cases:**

- **RTE/CKEditor plugins** - Configure toolbar, import plugin YAML
- **Backend modules** - Set up TSconfig, permissions
- **Frontend plugins** - TypoScript configuration, example content

**Pattern Benefits:**

- One-command post-install setup
- Consistent team configuration
- Includes demo content automatically
- Reduces manual configuration errors

See `SKILL.md` for detailed examples and template structure.

Troubleshooting
---------------

[](#troubleshooting)

### Database Already Exists

[](#database-already-exists)

If reinstalling TYPO3:

```
ddev mysql -e "DROP DATABASE IF EXISTS v13; CREATE DATABASE v13;"
ddev install-v13
```

### Services Not Starting

[](#services-not-starting)

Check and restart services:

```
docker ps --filter "name=ddev-your-ext"
ddev restart
```

### Extension Not Visible

[](#extension-not-visible)

Flush caches:

```
ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush
```

Architecture
------------

[](#architecture)

The setup creates a unique multi-version environment:

- **Extension Source**: Mounted at `/var/www/{{EXTENSION_KEY}}` (your project root)
- **TYPO3 Installations**: Separate directories for each version (`/var/www/html/v11`, `v12`, `v13`)
- **Extension Installation**: Installed via Composer path repository in each TYPO3 version
- **Persistent Data**: Docker volumes for each TYPO3 version database and files

This architecture allows you to:

- Develop extension code in your project root
- Test immediately across all TYPO3 versions
- Keep TYPO3 installations separate and clean
- Avoid committing TYPO3 core files to your extension repository

Configuration
-------------

[](#configuration)

### Supported TYPO3 Versions

[](#supported-typo3-versions)

By default, the skill supports:

- TYPO3 11.5 LTS (PHP 8.0+)
- TYPO3 12.4 LTS (PHP 8.1+)
- TYPO3 13.4 LTS (PHP 8.2+)

PHP version is set to 8.2 for maximum compatibility.

### Customization

[](#customization)

After generation, you can customize:

**PHP Version** (`.ddev/config.yaml`):

```
php_version: "8.3"  # Change to 8.1, 8.3, or 8.5 if needed
```

**PHP Patch Upgrades** (`.ddev/web-build/Dockerfile.apt`):

When DDEV ships an older PHP patch (e.g., 8.5.0RC3) and you need a newer one (e.g., 8.5.1):

```
# .ddev/web-build/Dockerfile.apt
RUN apt-get update
RUN apt-get install --only-upgrade -y php${PHP_VERSION}-*
```

Then run `ddev restart`.

**PHP Extensions** (`.ddev/web-build/Dockerfile`):

```
# Use apt-get, NOT pecl (pecl not available in DDEV)
RUN apt-get update && apt-get install -y php${PHP_VERSION}-pcov
RUN apt-get update && apt-get install -y php${PHP_VERSION}-redis
```

**Custom PHP Settings** (`.ddev/php/custom.ini`):

```
memory_limit = 512M
max_execution_time = 300
```

**XDebug** (enable/disable):

```
ddev xdebug on   # Enable
ddev xdebug off  # Disable
```

**Database** (Tiered Selection: SQLite/MariaDB/PostgreSQL/MySQL):

The skill uses **intelligent tiered database selection** based on extension complexity:

**🎯 Tier 1: SQLite (Simple Extensions - Development Optimized)**

For extensions using only TYPO3 Core APIs (no custom tables, no raw SQL):

```
# No .ddev/config.yaml database config needed
# TYPO3 installation automatically uses SQLite
```

**Benefits:**

- ⚡ Startup: 5-10 seconds faster per ddev start
- 💾 RAM: 900 MB saved (no container)
- 💿 Disk: 744 MB saved
- 🔒 Perfect v11/v12/v13 isolation

**⚠️ Development ONLY** - Never use SQLite in production. Switch to MariaDB for final testing.

**🔧 Tier 2: MariaDB 10.11 (Complex Extensions - Production Parity)**

For extensions with custom tables, raw SQL, or unknown complexity:

```
# Default for complex extensions (.ddev/config.yaml)
database:
  type: mariadb
  version: "10.11"
```

**Why MariaDB 10.11?** Production standard (95% hosting), extension compatibility, 13-36% faster than MySQL 8.

**🌐 Tier 3 &amp; 4: Specialized Databases**

```
# PostgreSQL 16 (for GIS, analytics, full-text search)
database:
  type: postgres
  version: "16"

# MariaDB 11 (forward-looking performance)
database:
  type: mariadb
  version: "11.4"

# MySQL 8.0 (corporate/Oracle ecosystem)
database:
  type: mysql
  version: "8.0"
```

**For detailed rationale**, see `docs/adr/0002-mariadb-default-with-database-alternatives.md`.

**Caching Service** (Valkey or Redis):

The skill provides Valkey 8 as the default caching service (open source, future-proof):

```
# Default: Valkey 8
cp .ddev/templates/docker-compose.services.yaml.optional .ddev/docker-compose.services.yaml

# Alternative: Redis 7 (for legacy production parity)
cp .ddev/templates/docker-compose.services-redis.yaml.optional .ddev/docker-compose.services.yaml

# Restart DDEV
ddev restart
```

**Why Valkey?** True open source (BSD-3), AWS/Google/Oracle backing, 30% smaller than Redis 8, cost-effective. See `docs/adr/0001-valkey-default-with-redis-alternative.md` for details.

**Additional Services** (add to `.ddev/docker-compose.services.yaml`):

```
# The services template includes: Valkey/Redis, MailPit, Ofelia
# See SKILL.md for complete documentation
```

Troubleshooting
---------------

[](#troubleshooting-1)

### DDEV Won't Start

[](#ddev-wont-start)

**Port Conflicts:**

```
# Check what's using ports 80/443
sudo lsof -i :80
sudo lsof -i :443

# Option 1: Stop conflicting services
# Option 2: Change ports in .ddev/config.yaml
router_http_port: "8080"
router_https_port: "8443"
```

### PHP Version Outdated

[](#php-version-outdated)

If DDEV ships with an older PHP patch version:

```
# Create .ddev/web-build/Dockerfile.apt
echo 'RUN apt-get update' > .ddev/web-build/Dockerfile.apt
echo 'RUN apt-get install --only-upgrade -y php${PHP_VERSION}-*' >> .ddev/web-build/Dockerfile.apt
ddev restart
```

### PCOV/Extension Installation Fails

[](#pcovextension-installation-fails)

DDEV doesn't include `pecl`. Use `apt-get` instead:

```
# In .ddev/web-build/Dockerfile
RUN apt-get update && apt-get install -y php${PHP_VERSION}-pcov
```

### PHP Settings Not Applied

[](#php-settings-not-applied)

Place settings in `.ddev/php/custom.ini`, NOT in `/usr/local/etc/php/conf.d/`:

```
# .ddev/php/custom.ini (correct location)
memory_limit = 512M
```

### Installation Fails

[](#installation-fails)

**Check Composer Issues:**

```
ddev ssh
composer diagnose
```

**View Installation Logs:**

```
ddev logs
```

**Retry Installation:**

```
# For specific version
ddev ssh
rm -rf /var/www/html/v13/*
exit
ddev install-v13
```

### Extension Not Appearing

[](#extension-not-appearing)

**Verify Extension Key:**

```
ddev ssh
echo $EXTENSION_KEY  # Should match your ext_emconf.php
```

**Check Composer Repository:**

```
ddev ssh
cd /var/www/html/v13
composer config repositories
```

For complete troubleshooting guide, see `references/troubleshooting.md`.

Contributing
------------

[](#contributing)

Contributions welcome! Please:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

Credits
-------

[](#credits)

This skill is based on the excellent work by [Armin Vieweg](https://github.com/a-r-m-i-n) in [ddev-for-typo3-extensions](https://github.com/a-r-m-i-n/ddev-for-typo3-extensions).

### Additional Resources

[](#additional-resources)

- [DDEV Documentation](https://ddev.readthedocs.io/)
- [TYPO3 Extension Development](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/Index.html)
- [TYPO3 DDEV Setup Guide](https://docs.typo3.org/m/typo3/tutorial-getting-started/main/en-us/Installation/UsingDdev.html)

License
-------

[](#license)

This project uses split licensing:

- **Code** (scripts, workflows, configs): [MIT](LICENSE-MIT)
- **Content** (skill definitions, documentation, references): [CC-BY-SA-4.0](LICENSE-CC-BY-SA-4.0)

See the individual license files for full terms.

Support
-------

[](#support)

- **Issues**: [GitHub Issues](https://github.com/netresearch/typo3-ddev-skill/issues)
- **Discussions**: [GitHub Discussions](https://github.com/netresearch/typo3-ddev-skill/discussions)
- **TYPO3 Slack**: #ddev channel

---

**Made with ❤️ for the TYPO3 Community by [Netresearch DTT GmbH](https://www.netresearch.de/)**

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance92

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

19

Last Release

39d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/acffee6a64e18f21593794b335dd8786001148f7df89fd8372a54d3dd09d91a4?d=identicon)[netresearch](/maintainers/netresearch)

---

Top Contributors

[![CybotTM](https://avatars.githubusercontent.com/u/326348?v=4)](https://github.com/CybotTM "CybotTM (149 commits)")

---

Tags

agent-skillsai-agentclaude-code-skillddevdeveloper-tooldevelopment-environmentopen-standardskilltypo3typo3-cmstypo3-extension

### Embed Badge

![Health badge](/badges/netresearch-agent-typo3-ddev/health.svg)

```
[![Health](https://phpackages.com/badges/netresearch-agent-typo3-ddev/health.svg)](https://phpackages.com/packages/netresearch-agent-typo3-ddev)
```

###  Alternatives

[websharks/html-compressor

Combines &amp; compresses CSS/JS/HTML code.

407.1k1](/packages/websharks-html-compressor)[limewell/laravel-make-extender

This package helps to generate and autoload custom helpers, It can generate multilevel helpers in the context of the directory.

366.8k](/packages/limewell-laravel-make-extender)[linkorb/autotune

Tune your autoloader

177.0k17](/packages/linkorb-autotune)[tapp/filament-progress-bar-column

Add beautiful, color-coded progress bars to your Filament table columns. Perfect for inventory, tasks, storage, and any progress metrics without writing custom views.

124.5k](/packages/tapp-filament-progress-bar-column)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
