The development environment can be customized through environment variables.
An .env file is optional. Variables can also be provided inline:
VERSION_NEXTCLOUD=stable33 docker compose upBy default, VERSION_NEXTCLOUD uses master. To use another Nextcloud version, set it to the corresponding branch from the Nextcloud server repository.
Xdebug can be configured with its native XDEBUG_MODE variable:
XDEBUG_MODE=debug docker compose up
XDEBUG_MODE=develop,debug docker compose up
XDEBUG_MODE=coverage docker compose upMySQL is used by default:
docker compose upThe supported DB_HOST values are:
mysqlpgsql
To use PostgreSQL:
DB_HOST=pgsql docker compose upOptional services are enabled with Docker Compose profiles:
docker compose --profile eurooffice up
docker compose --profile playwright up
docker compose --profile signal up
docker compose --profile whatsapp upMultiple profiles can be enabled together:
docker compose \
--profile eurooffice \
--profile playwright \
upMultiple checkouts can run at the same time.
Docker uses the standard host ports when they are available. If a port is already in use, another available port is selected automatically.
Start each environment from its own directory:
cd /path/to/first-checkout
docker compose upcd /path/to/second-checkout
docker compose upTo see the ports assigned to an environment:
docker compose psTo check a specific port, use:
docker compose port nginx 80For example, if it returns:
127.0.0.1:81
access Nextcloud at:
http://localhost:81
When port 80 is available, Nextcloud remains accessible normally at:
http://localhost
A specific host port can still be requested explicitly:
HTTP_PORT=9000 HTTPS_PORT=9443 docker compose upBy default, published services bind to 127.0.0.1 and are accessible only from the local host. To expose them on other network interfaces, set:
IP_BIND=0.0.0.0 docker compose upThis can make the development services accessible to other hosts on the network, subject to the host firewall and network configuration.
HTTP and HTTPS use automatic ranges beginning at ports 80 and 443 when no override is provided. The example above forces host:9000 -> container:80 and host:9443 -> container:443.
Custom PHP settings can be added as .ini files in volumes/php/. This directory is ignored by Git and is mounted into the PHP container without replacing the default configuration bundled in the image.
For example, create volumes/php/99-local.ini:
memory_limit=1024M
upload_max_filesize=512MRestart the PHP service after changing these files:
docker compose restart nextcloud