Skip to content

Latest commit

 

History

History
151 lines (102 loc) · 4.66 KB

File metadata and controls

151 lines (102 loc) · 4.66 KB

Docker Compose WordPress PHP-FPM Nginx MariaDB License

🪺 OwlNest

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.


What's Inside the Nest

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

Quick Start

Prerequisites

1. Clone the repository

git clone https://github.com/owlstack/owlnest.git
cd owlnest

2. Configure environment

cp .env.example .env

Edit .env to customize ports, versions, or credentials (defaults work out of the box).

3. Start the nest

docker compose up -d

4. Open WordPress

Visit http://localhost:8080 and complete the installation wizard.

5. Install OwlStack plugins

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.

Configuration

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.

Common Commands

# 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/

Testing Workflow

  1. Start the environment with docker compose up -d
  2. Complete the WordPress setup wizard at http://localhost:8080
  3. Install the OwlStack plugin you want to test
  4. Run your tests, verify behavior, check logs
  5. Reset to a clean state anytime with docker compose down -v && docker compose up -d

Data Persistence

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

Related OwlStack Projects

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License.