Installing Docker for PUQcloud modules
Installing Docker on Debian 12
The WHMCS Docker n8n module requires a Debian 12 server with Docker installed to function properly. This guide provides step-by-step instructions for setting up Docker and configuring the necessary environment.
📌 Prerequisites
✔️ A physical or virtual machine running Debian 12
✔️ A public IP address for the server
✔️ A domain for web applications managed by the module
✔️ DNS Configuration: Create an A record pointing all subdomains to the server's IP:
*.your_domain A server_ip
🚀 Installation Steps
1️⃣ Install Required Utilities
Before installing Docker, update the system and install essential tools:
sudo apt-get update
sudo apt-get install sudo sqlite3 apache2-utils jq -y
2️⃣ Configure Sudo Access
Allow passwordless sudo access for the user connecting to the Docker server:
Edit the sudoers file:
sudo nano /etc/sudoers
Add the following line (replace your_username
with your actual username):
your_username ALL=(ALL:ALL) NOPASSWD: ALL
3️⃣ Install Docker
# Update package index
sudo apt update
# Install dependencies
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add Docker repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package list
sudo apt update
# Install Docker
sudo apt install docker-ce
# Verify Docker status
sudo systemctl status docker
# Install Docker compose
sudo apt install docker-compose-plugin
4️⃣ Deploy Required Containers
Create a Docker Compose file for nginx-proxy and Let's Encrypt companion:
sudo mkdir -p /opt/docker/nginx-proxy
sudo mkdir -p /opt/docker/nginx-proxy/certs
sudo mkdir -p /opt/docker/nginx-proxy/nginx
sudo mkdir -p /opt/docker/nginx-proxy/html
sudo mkdir -p /opt/docker/nginx-proxy/vhost.d
cd /opt/docker/nginx-proxy
nano docker-compose.yml
Paste the following content:
version: "3"
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /opt/docker/nginx-proxy/certs:/etc/nginx/certs:ro
- /opt/docker/nginx-proxy/nginx/vhost.d:/etc/nginx/vhost.d
- /opt/docker/nginx-proxy/nginx/html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- web
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
restart: always
container_name: letsencrypt-nginx-proxy-companion
volumes:
- /opt/docker/nginx-proxy/certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes_from:
- nginx-proxy
networks:
- web
networks:
web:
driver: bridge
Save and exit (CTRL + X
, then Y
, then ENTER
).
Run the containers:
docker-compose up -d
This setup provides:
✔️ nginx-proxy – Automatic HTTP/HTTPS proxy for container web interfaces
✔️ Let's Encrypt Companion – Automatic SSL certificate generation for subdomains
✅ Final Checks
- Confirm Docker is running:
docker ps
- Verify nginx-proxy logs:
docker logs nginx-proxy
- Ensure Let's Encrypt certificates are being generated correctly:
docker logs letsencrypt-nginx-proxy-companion
No Comments