Troubleshoot
Where to look first
Section titled “Where to look first”# systemd statussudo systemctl status pier
# logs (last 100 lines)sudo journalctl -u pier -n 100 --no-pager
# live tailsudo journalctl -u pier -fCommon symptoms
Section titled “Common symptoms””Port 80 already in use”
Section titled “”Port 80 already in use””Another service (Apache, nginx, a different Traefik) is binding port 80 on the host. Stop it or move it. Pier expects Traefik to own 80 and 443.
Let’s Encrypt fails to issue a cert
Section titled “Let’s Encrypt fails to issue a cert”- The domain’s A record must resolve to this server before you add the domain in Pier.
- Port 80 must be open to the public internet — ACME HTTP-01 challenges need it.
- Check Traefik logs:
docker logs pier-traefik.
Container starts, then exits immediately
Section titled “Container starts, then exits immediately”- Open the Logs tab on the service. Most image issues show up in the container’s stdout.
- Confirm env vars are set. Missing required env is the most common cause.
- For databases, check disk space on the data volume:
df -h.
Dashboard shows 502
Section titled “Dashboard shows 502”- The Pier systemd unit is probably not running.
sudo systemctl restart pier. - If Pier is running but returning 502, check
journalctl -u pier -n 200for panics.
High memory usage
Section titled “High memory usage”A single Pier process should stay under 50 MB resident. If you see hundreds of MB, one of the managed containers is using it. Open the Memory popup on the dashboard — it breaks memory down per container.
Reporting bugs
Section titled “Reporting bugs”File issues at the Pier repo with:
- Pier version (Settings → Updates).
- OS + Docker version.
- 100 lines of
journalctl -u pier. - Steps to reproduce.