The testing nest for all OwlStack WordPress plugins.
A Docker Compose environment purpose-built for testing OwlStack WordPress plugins. Uses a production-grade stack with PHP-FPM, Nginx, and MariaDB. Spin up a fresh WordPress instance in one command, install your plugins, and start testing.
| Service | Port | Description |
|---|---|---|
| PHP-FPM 8.3 | 9000 (internal) |
WordPress running on PHP-FPM with WP-CLI |
| Nginx | 8080 |
Reverse proxy serving WordPress |
| MariaDB 11 | 3306 (internal) |
Database with health checks |
| phpMyAdmin | 8081 |
Visual database management |
- Docker Desktop installed and running
git clone https://github.com/owlstack/owlnest.git
cd owlnestcp .env.example .envEdit .env to customize ports, versions, or credentials (defaults work out of the box).
docker compose up -dVisit http://localhost:8080 and complete the installation wizard.
Once WordPress is running, install any OwlStack WordPress plugin via the admin dashboard (Plugins → Add New → Upload Plugin) or by copying plugin files into the container:
docker compose cp /path/to/owlstack-plugin php:/var/www/html/wp-content/plugins/Then activate the plugin from the WordPress admin panel.
Need to manage the database? Open http://localhost:8081 for phpMyAdmin.
All settings are controlled via the .env file:
| Variable | Default | Description |
|---|---|---|
WORDPRESS_PORT |
8080 |
Host port for WordPress |
NGINX_VERSION |
stable-alpine |
Nginx Docker image tag |
MARIADB_VERSION |
11 |
MariaDB Docker image tag |
DB_NAME |
wordpress |
Database name |
DB_USER |
wordpress |
Database user |
DB_PASSWORD |
wordpress |
Database password |
DB_ROOT_PASSWORD |
rootpassword |
MariaDB root password |
PHPMYADMIN_VERSION |
latest |
phpMyAdmin Docker image tag |
PHPMYADMIN_PORT |
8081 |
Host port for phpMyAdmin |
Note: Change the default passwords before using in any non-local environment.
# Start all services
docker compose up -d
# Stop all services
docker compose down
# Stop and remove all data (fresh start)
docker compose down -v
# View logs
docker compose logs -f
# View logs for a specific service
docker compose logs -f php
docker compose logs -f nginx
# Restart a service
docker compose restart php
# Access PHP container shell
docker compose exec php sh
# Use WP-CLI
docker compose exec php wp --allow-root plugin list
# Access MariaDB CLI
docker compose exec db mariadb -u wordpress -p wordpress
# Copy a plugin into the WordPress container
docker compose cp ./my-plugin php:/var/www/html/wp-content/plugins/- Start the environment with
docker compose up -d - Complete the WordPress setup wizard at
http://localhost:8080 - Install the OwlStack plugin you want to test
- Run your tests, verify behavior, check logs
- Reset to a clean state anytime with
docker compose down -v && docker compose up -d
WordPress files and MariaDB data are stored in Docker named volumes (wordpress_data and db_data). Your data persists across restarts. To completely reset for a fresh test:
docker compose down -v- owlstack-wordpress — OwlStack WordPress plugin
- owlstack-core — OwlStack PHP core library
- owlstack-laravel — OwlStack Laravel package
Contributions are welcome! See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License.