Create Your Virtual Machine (VM) or VPS
Plan | Minimum: 4GB RAM, 2CPU, 30GB SSD Recommended: 4 CPU / 8 GB RAM / 160 GB SSD (the plan you selected) |
Image | Ubuntu 24.04 LTS |
General Installation Instructions
1. Install Docker Engine & Compose v2
sudo apt update && sudo apt install -y ca-certificates curl gnupg git
# 1) Docker official GPG & repo
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt install -y vim
# 2) Engine + compose-plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER && newgrp docker
docker version && docker compose version # verif
2 Clone your WordPress Pete bundle
mkdir -p ~/wordpress-pete && cd ~/wordpress-pete
git clone https://github.com/peterconsuegra/wp-pete-docker.git .
3. Prepare the .env
file
cp .env.example.production .env
vim .env
Add your own passwords:
MYSQL_ROOT_PASSWORD=EvenMoreSecret
PETE_DB_USER=pete
PETE_DB_NAME=pete_db
PETE_DB_PASS=pixma301
PETE_ENVIRONMENT=production
APACHE_RELOAD_SECRET=SuperReload123
APACHE_RELOAD_URL=http://apache/internal-reload
APACHE_CERTBOT_URL=http://apache/internal-certbot
4. Build & run
docker compose pull
docker compose build
docker compose up -d
docker compose logs -f
You should see:
php-1 | #######################################
php-1 | WordPress Pete installation completed
php-1 | #######################################
php-1 | #######################################
php-1 | Launching WordPress Pete...
php-1 | #######################################
Open your WordPress Pete installatin in your browser: http://yourserverip

5. Auto-Start WordPress Pete on System Boot
Press Command C or Control C on the terminal, and run the following commands:
cp wordpress-pete.service /etc/systemd/system/wordpress-pete.service
sudo systemctl daemon-reload
sudo systemctl enable --now wordpress-pete.service
sudo systemctl restart wordpress-pete.service
6. Hardening your server (Optional, Recommended)
Access your server via SSH as the root user, then run the following commands:
# Switch SSH to port 2222
sudo sed -i 's/^#\?Port .*/Port 2222/' /etc/ssh/sshd_config
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl restart ssh
# Refresh UFW rules
sudo ufw delete limit 22/tcp
sudo ufw limit 2222/tcp # new, rate-limited SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
# Next log-in:
# ssh -p 2222 root@<your-server-ip>
Installation in Google Cloud (GCP) – Step-by-Step Guide
Docker Compose Commands
Task | Command | What it does |
---|---|---|
Start / build stack | docker compose up --build |
Build (if needed) + run all services. |
Stop stack | docker compose down |
Stop & remove containers (data stays). |
Get a shell inside a service | docker compose exec <service> bash |
Enter into containers via the terminal e.g. docker compose exec wordpress bash docker compose exec apache bash docker compose exec php bash |
Re-build after editing a Dockerfile | docker compose build --no-cache <service> |
Fresh image, no cache. |
Reset phpMyAdmin | docker compose down → docker volume rm wp-pete-docker_pma_data |
Drops the pma volume so it’s rebuilt on next up . |
Delete all volumes | docker compose down -v |
Nukes containers and data. |
Restart Apache in its container | apache2ctl restart |
Run inside the apache (or wordpress ) shell. |
Apache vhosts live in | /etc/apache2/sites-available → configs/etc/apache2/sites-enabled → live symlinks |
Edit, then apache2ctl graceful . |
MySQL prompt | docker compose exec db mysql -u root -p |
Enter DB inside the db container. |