Diagnostics & Troubleshooting
This guide provides fast remedies for common server, Docker, SSL, and network issues encountered during operation.
1. Port Binding Conflicts (Error: Port already in use)
When deploying an App Store container or custom Docker project:
- Symptom:
Error response from daemon: driver failed programming external connectivity on endpoint: Bind for 0.0.0.0:80 failed: port is already allocated - Solution:
- PanelOps includes an automated Port Allocator that checks host availability before assigning ports.
- If an unmanaged service is occupying the port, find it with:
sudo netstat -tlpn | grep :PORT # or sudo ss -tulpn | grep :PORT - Stop conflicting standalone services (e.g.,
sudo systemctl stop apache2).
2. Let's Encrypt SSL Challenge Failures
- Symptom:
ACME challenge failed for domain.com: Invalid response - Causes & Fixes:
- DNS Propagation: Ensure your domain's A Record points to your server's public IP address. Test with
dig A yourdomain.com +short. - Port 80 Accessibility: Let's Encrypt HTTP-01 verification requires port 80 to be open to the public. Verify with
sudo ufw status. - Cloudflare Proxying: If using Cloudflare, temporarily set the DNS record to DNS Only (grey cloud) during initial SSL issuance.
- DNS Propagation: Ensure your domain's A Record points to your server's public IP address. Test with
3. High CPU or Memory Consumption
- Use the integrated DevOps AI Agent or live telemetry under Monitoring → Real-Time Telemetry.
- Check per-container utilization with:
docker stats --no-stream - If a container is caught in an infinite crash loop, PanelOps will automatically throttle restarts and log an AI diagnostic analysis.
4. Resetting Admin Password via Terminal
If you are locked out of your Customer Node web panel:
cd /opt/panelops
node seeds/adminSeed.js
This resets the default credentials and outputs the updated access URL.