GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - whatwedo/dde: Local development environment toolset based on Docker

BranchesTags
Open more actions menu

Latest commit

 

History

589 Commits
589 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude
.claude
 
 
.github/workflows
.github/workflows
 
 
bin
bin
 
 
config
config
 
 
docs
docs
 
 
resources
resources
 
 
scripts
scripts
 
 
skills/claude/dde
skills/claude/dde
 
 
src
src
 
 
tests
tests
 
 
website
website
 
 
.env.dist
.env.dist
 
 
.gitignore
.gitignore
 
 
AGENTS.md
AGENTS.md
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
box.json
box.json
 
 
cliff.toml
cliff.toml
 
 
composer.json
composer.json
 
 
composer.lock
composer.lock
 
 
ecs.php
ecs.php
 
 
lychee.toml
lychee.toml
 
 
phpstan-baseline.neon
phpstan-baseline.neon
 
 
phpstan.neon
phpstan.neon
 
 
phpunit.xml.dist
phpunit.xml.dist
 
 
rector.php
rector.php
 
 
renovate.json
renovate.json
 
 

Repository files navigation

dde -- Docker Development Environment

CI License: AGPL-3.0 GitHub release

A CLI tool that manages local Docker development environments with automatic HTTPS, DNS, database services, and per-project isolation.

  • Automatic HTTPS -- Traefik v3 reverse proxy with mkcert-generated certificates trusted by your OS
  • Local DNS -- dnsmasq resolves *.test domains to localhost, no /etc/hosts editing
  • Per-project services -- MariaDB, PostgreSQL, Valkey, and Mailpit with version pinning
  • Git worktree support -- Each worktree gets its own hostname and TLS certificate
  • SSH agent forwarding -- Shared SSH agent container for all projects
  • Shell completion -- Bash and Zsh completions installed automatically
  • Hook system -- Run custom scripts on project:up and project:down lifecycle events
  • Plugin system -- Extend dde with project-local or global plugins

Quick Start

Prerequisites: Docker and mkcert must be installed.

# macOS
brew tap whatwedo/dde && brew install dde

# Debian/Ubuntu
curl -fsSL https://packages.dde.sh/apt/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/dde.gpg
echo "deb [signed-by=/usr/share/keyrings/dde.gpg] https://packages.dde.sh/apt stable main" | sudo tee /etc/apt/sources.list.d/dde.list
sudo apt update && sudo apt install dde

# Alpine
curl -fsSL https://packages.dde.sh/alpine/key.rsa.pub -o /etc/apk/keys/dde.rsa.pub
echo "https://packages.dde.sh/alpine" >> /etc/apk/repositories
apk add dde

# Arch Linux
echo -e '\n[dde]\nServer = https://packages.dde.sh/arch/$arch\nSigLevel = Required DatabaseOptional' | sudo tee -a /etc/pacman.conf
curl -fsSL https://packages.dde.sh/arch/key.gpg | sudo pacman-key --add -
sudo pacman-key --lsign-key "$(curl -fsSL https://packages.dde.sh/arch/key.gpg | gpg --with-colons --import-options show-only --import 2>/dev/null | awk -F: '/^fpr/{print $10; exit}')"
sudo pacman -Sy dde

Then set up the system and start your first project:

dde system:install
cd ~/projects/my-app
dde project:init
dde project:up

Your application is now available at https://my-app.test with a trusted TLS certificate.

Why dde instead of DDEV?

DDEV is the most mature tool in this space — well-documented, actively maintained, and great for standard setups. However, DDEV wraps every web image in its own Dockerfile layers (user setup, PHP-FPM config, Xdebug, Mailpit). This means you can't run your production images directly — DDEV requires you to adopt its image ecosystem.

dde takes a different approach: your existing Docker images work as-is. dde adds a thin runtime layer that remaps the container user's UID/GID to match the host, and uses service adapters (nginx, php-fpm, apache) to reconfigure processes at startup. There is no custom Dockerfile layer — the same image you deploy to production runs locally.

dde DDEV
Custom prod images Works as-is Requires DDEV image layers
Image management Your Dockerfiles, unchanged DDEV-managed Dockerfiles
Runtime overhead Thin entrypoint (UID remap) Full image rebuild per project
Language PHP (single binary via static-php-cli) Go
License AGPL-3.0 Apache-2.0

Supported Platforms

OS Architecture
macOS x86_64, arm64
Linux x86_64, arm64

Documentation

Full documentation is available in the docs/ directory:

Getting Started

  • Installation
  • Core Concepts
  • Configuration
  • Commands Reference

Guides

  • Multi-Service Projects
  • Custom Images
  • Git Worktrees
  • Advanced Topics
  • Migration from v1

Services

  • Overview -- MariaDB -- PostgreSQL -- Valkey -- Mailpit -- Traefik -- SSH-Agent -- Custom Versions

Extending

  • Hooks -- Plugins -- Service Adapters

Internals

  • Auto Layer -- Dev Layer Builder -- Docker Compose Override -- Entrypoint -- Config Loader -- Plugin Loader

Contributing

  • Development Setup -- Architecture -- Testing -- Release Process -- Adding a Command -- Adding a Service -- Adding an Adapter

License

This project is licensed under the AGPL-3.0-or-later license.

About

Local development environment toolset based on Docker

dde.sh/

Topics

dockerhacktoberfest

Resources

Readme
AGPL-3.0 license

Contributing

Contributing
Activity
Custom properties

Stars

48 stars

Watchers

8 watching

Forks

9 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.