Thinking about diving into Passbolt’s backend codebase but unsure how to get your local environment up and running? With DDEV, getting started is faster and simpler than ever before.
Until recently the only way to set-up a passbolt local development environment has been through Docker Compose. This approach, while functional, came with some issues for developers as they needed to clone multiple repositories, configure .env files, and coordinate with Docker Compose files maintained in a separate repository by the SRE team. Moreover, developers often faced:
- Slow development environments, especially on macOS and Windows
- Lack of HTTPS support out of the box
- Manual setup of debugging tools like Xdebug
- Complex database configuration and lack of a visual database manager
This created a steep barrier to entry, especially for new contributors or those less familiar with Docker-based workflows.
To address these challenges, we turned to DDEV, a local development environment that offers a consistent and fast experience across platforms, while also packing in powerful developer tools out of the box, letting you focus on coding rather than configuring your environment.
Lets Compare!
Docker Compose approach
Here’s a quick look at the traditional Docker Compose approach:
- Clone both the passbolt-docker-compose and Passbolt API repositories
- Install PHP dependencies manually via Composer
- Manually copy configuration files
- Edit .env files and host mappings
- Run multiple docker-compose commands across different files
- Manually configure the database
- Deal with unencrypted local connections (no HTTPS)
DDev Approach
Since version 5, Passbolt ships with a preconfigured .ddev directory in the API repository. All the necessary configuration is included. Just clone the repository and run the following commands to get started with a fully functional, HTTPS-enabled environment in minutes:
ddev start
ddev init_passbolt
ddev cake passbolt register_user -u [email protected] -f First -l Last -r admin
That's it. Paste the resulting link in your browser, and you're ready to go with added HTTPS, a preconfigured database and an admin user all with no manual configuration or guesswork.
Additionally by running ddev describe you get a user friendly list of all the local services URLs.

Passbolt DDEVs Config Built-In Features
Passbolt DDEV config goes beyond just simplifying the set-up. It includes tools that address the most common developer needs:
- Automatically sets up your local environment with HTTPS with zero configuration, no more messing around with certificates and browser warnings.
- Xdebug, a strong PHP debugging tool, is already configured in DDEV and you can enable/disbale it with a single command.
- DDEV includes Mailpit, a local email testing tool allowing you to view all outgoing mail in a clean web environment.
- Adminer is a powerful tool to browse and view your database in the browser with once again no extra configuration required.
All of this with minimal configuration, right out of the box. Have some more ideas for tools or features that could improve your dev experience? We’d love to hear them: share your feedback on the community forum!
Better Performance on macOS and Windows
One of Docker’s major limitations on macOS and Windows is slow performance and CPU hungry background processes. In all fairness that's not entirely Docker’s fault, it’s a side effect from running Linux based containers on non Linux systems.
DDEV uses Mutagen, a file syncing engine that offers a big performance boost on macOS and windows. Mutagen comes enabled by default on Mac and most Windows setups, giving developers a much faster experience without any extra hassle.
Conclusion
At Passbolt we value and actively encourage contributions from the community and thanks to DDEV the barrier to contributing to our API has never been lower. With it we can ensure a consistent development experience across platforms for all. Whether you're a seasoned contributor or exploring Passbolts codebase for the first time, DDEV can help you skip the setup headaches and dive straight into development.
We invite you to give it a try, share your feedback, and bring your questions or ideas to the community forum!