https://github.com/psaux-it/wordpress-nginx-cache-docker
A full-stack Docker setup for WordPress with PHP-FPM, Nginx, FastCGI caching, and WP-CLI integration. Optimized for NPP plugin, and easy deployment.
https://github.com/psaux-it/wordpress-nginx-cache-docker
bindfs libfuse nginx nginx-cache nginx-cache-preload nginx-cache-purge nginx-docker php-fpm php8 wordpress wordpress-docker wordpress-plugin wp-cli
Last synced: about 2 months ago
JSON representation
A full-stack Docker setup for WordPress with PHP-FPM, Nginx, FastCGI caching, and WP-CLI integration. Optimized for NPP plugin, and easy deployment.
- Host: GitHub
- URL: https://github.com/psaux-it/wordpress-nginx-cache-docker
- Owner: psaux-it
- License: gpl-2.0
- Created: 2025-02-06T00:26:42.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-11T00:17:36.000Z (3 months ago)
- Last Synced: 2025-02-11T00:24:15.038Z (3 months ago)
- Topics: bindfs, libfuse, nginx, nginx-cache, nginx-cache-preload, nginx-cache-purge, nginx-docker, php-fpm, php8, wordpress, wordpress-docker, wordpress-plugin, wp-cli
- Language: Shell
- Homepage: https://github.com/psaux-it/nginx-fastcgi-cache-purge-and-preload
- Size: 154 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🐳 NPP Dockerized [](https://github.com/psaux-it/wordpress-nginx-cache-docker/actions/workflows/docker-publish.yml)
Welcome to the Docker project optimized for the **[(NPP) WordPress Plugin](https://wordpress.org/plugins/fastcgi-cache-purge-and-preload-nginx/)**! 🎉 This full-stack Dockerized environment is designed for **NPP**, including **WordPress** with **FPM**, **Nginx**, **MySQL**, **FastCGI**, **WP-CLI**, **phpMyAdmin**, and necessary **PHP extensions**. It's tailored for easy deployment and efficient use of the **NPP plugin**
Explore the **[NPP Main GitHub Repository](https://github.com/psaux-it/nginx-fastcgi-cache-purge-and-preload)** to access the heart of the plugin development.
https://github.com/user-attachments/assets/5a946953-c7f1-4d44-a8ac-3487018d7114
🔊™️ In The Silence - Giuseppe Ottaviani
## ✨ Features
- ✅ **WordPress** (6.7.2) with **PHP-FPM** (8.2)
- ✅ **MySQL** (8) for database management
- ✅ **FastCGI** cache ready with **Nginx** (1.27.4)
- ✅ **WP-CLI** ready for plugin and theme installations (check **.env**)
- ✅ **phpMyAdmin** (5.2.2) ready
- ✅ Includes all dependencies required for the **NPP plugin**
- ✅ Isolated and secure **PHP process owner** for enhanced security and performance
- ✅ Built with **bindfs** (1.17.7) + **fuse3** (1.16.2) for FUSE-based mounting of **Nginx Cache Path**
- ✅ Installed a wide range of **PHP extensions**
- ✅ Easily switch between the **stable** release and the **bleeding-edge** version of the **NPP**
- ✅ All containers powered by **Debian 12** for a stable, consistent environment
- ✅ Compatible with both Windows **WSL** and Linux Hosts## 🔑 Environment Variables
**This repository was primarily created for testing and developing the NPP plugin on local.** However, with minor adjustments, It can also be used as a **production** environment.
Please check the **.env** file for the environment variables used in the project. Some variables can be directly modified by the user for easy customization, while others are derived from the **original Dockerfiles of core services**. Changing these **core variables** for a production environment may require adjustments in other parts of the project to maintain seamless integration and workflow. Feel free to customize it to suit your full-stack WordPress **production** needs!
### Use the Bleeding-Edge Version of NPP (Default)
If you want to use the latest **bleeding-edge version** of the NPP plugin simply set the following environment variable:
```bash
NPP_EDGE=1
```🔄 This will sync the plugin with the latest development branch commit from GitHub, ensuring you always have access to the newest features and improvements.
### ⚠️ In Production
To enable **Nginx Cache Preload** in a **localhost** development environment, a small host configuration adjustment is **always** required. In **production**, this may or may not be required depending on your Docker architecture. If you encounter a **Cache Preload** issue in production, try enabling the below setting in **.env**, otherwise, you can disable it entirely.
```bash
NPP_HACK_HOST=1
```For a full explanation and to adjust your environment, please read the complete story here:
https://github.com/psaux-it/wordpress-nginx-cache-docker/blob/1c8043a0bc6e2014b55ae6f7259eba134e3f3698/wordpress/wp-post.sh#L129
## ⚙️️ Instant Deployment
### 1. Clone the repository
Start by cloning the repository to your local machine:
```bash
git clone https://github.com/psaux-it/wordpress-nginx-cache-docker.git
cd wordpress-nginx-cache-docker
```### 2. Run the Services
Run the following command to build and start the container:
- **Using pre-built images:**
```bash
docker compose up
```- **Building locally:**
```bash
docker compose up --build
```### 🚀 **Post-Container Startup Access**
- The WordPress site can be accessed at the host machine:
- 🔒 [https://localhost](https://localhost)
- 🌐 [http://localhost](http://localhost)- Default WordPress **wp-admin** login credentials:
- **Username**: `npp`
- **Password**: `npp`- You can also access **phpMyAdmin** at:
- https://localhost/phpmyadmin- Default FUSE mount path:
- **`/var/cache/nginx-npp`**
- Use the FUSE mount path as the Nginx cache path in the NPP plugin settings page.---
#### ⚠️ Important Notices
🚨 **The included SSL certificates are dummy, strictly for local usage** and **must not be used in production environments**.
📦 This project leverages the fantastic **work** by **[Michele Locati](https://github.com/mlocati/docker-php-extension-installer)** to streamline the installation of required PHP extensions.