Skip to content

Local environments

ContaoDock keeps the project source on the host and bind-mounts it into a generated Docker Compose runtime. The initial recipe uses an Apache/PHP web service and MariaDB. Database state is stored in a named Docker volume so it survives service restarts.

The project dashboard shows the environment state and provides start, stop, restart, rebuild, reset, and log controls. The generated Compose file remains available for inspection. The web service binds to loopback; the database is reachable on the Compose network and has no published host port.

The current prototype uses PHP 8.4 and MariaDB 11.4 defaults. Treat these as the initial recipe, not a universal compatibility promise. Your project’s Composer platform constraints and extensions may require different versions.

The app can use a custom project hostname. ContaoDock starts a shared Nginx router in Docker and routes port-free .localhost addresses to each project’s web container; Herd is not required. The router binds to 127.0.0.1:80. If that port is occupied, the site stays available at its assigned loopback URL with a port. .test addresses are accepted by the router but require an operating-system DNS or hosts entry; .localhost resolves to loopback automatically. The first-party router currently provides HTTP only.

Reset removes the environment’s persistent database volume and its database contents. It does not remove the project files or Contao uploads. The app asks for confirmation before deleting the volume. Back up data you need before confirming.