Everything that has gone wrong so far, how it was fixed, current known issues,
and planned future work.
| # | Symptom | Root cause | Fix |
|---|---|---|---|
| 1 | OVH shared hosting couldn't run Docker | Shared hosting: no Docker, no sudo, no ports 80/443 | Moved to Linode VPS |
| 2 | First Linode node in wrong region | — | Deleted gb-lon node (102403035), created eu-central (102403067) |
| 3 | OVH nameserver change rejected | First API key had only /domain/zone/* scope |
Created new key pair with /domain/*, retried |
| 4 | Twenty server health check failing at first boot | Postgres DBs twenty/n8n didn't exist |
Created DBs manually inside Postgres |
| 5 | Traefik "client version 1.24 is too old" | Image traefik:v3.3 had an old docker client |
Upgraded to traefik:v3 (v3.7.10) |
| 6 | Traefik dashboard 401 | Expected — basic auth protecting / |
Use credentials; or check traefik.http.middlewares.auth label |
| 7 | n8n "Deceptive site ahead" in Chrome | False positive: brand-new domain + login page | Not fixed yet — see Known Issues |
| 8 | EspoCRM /install/ returned HTTP 500 |
EspoCRM v10 auto-installs via CLI; install/entry.php not in image |
Nothing to fix — install via env vars on first boot |
| 9 | EspoCRM API login failed with Espo-Authorization header |
Login is GET /api/v1/App/user with standard Authorization: Basic … |
Use correct header; auth verified working |
| 10 | ERPNext too heavy / complex | Full ERP ~11 containers, >4 GB recommended | Reverted to EspoCRM, cleaned everything |
| 11 | MARIADB env changes didn't take effect | DB env vars apply only on first volume init | Recreate DB volume (loses data) or change credentials via SQL |
docker stats.credentials.md). Recommend distinct passwords per service.# General health
docker compose -f /opt/supplyshore/docker-compose.yml ps
# Live resource usage
docker stats --no-stream
# Logs
docker logs -f traefik
docker logs -f espocrm
docker logs -f n8n
# TLS check for a subdomain
echo | openssl s_client -connect <sub>.supplyshoreltd.com:443 \
-servername <sub>.supplyshoreltd.com 2>/dev/null | openssl x509 -noout -issuer -dates
# DNS check
getent hosts crm.supplyshoreltd.com
Proposed stack on this node (fits within RAM, ~450–800 MB):
monitor.supplyshoreltd.commonitor A record.crowdsec or fail2ban in front of Traefik.@ / www currently have no site. Could add a static landing page viaFile provider or a simple static container.docker logs traefik | grep -i certificate check.docker compose up -d).docker exec -i postgres psql -U postgres -d n8n < n8n.dump.sql
docker exec -i espocrm-db mariadb -uroot -p... espocrm < espocrm.dump.sql
docker compose down
docker volume rm supplyshore_espocrm-db supplyshore_espocrm-data \
supplyshore_espocrm-custom supplyshore_espocrm-custom-client
docker compose up -d # re-runs auto-install
⚠️ Destroys all CRM data.
docker compose down
docker volume rm supplyshore_n8n-data
docker compose up -d n8n
⚠️ Destroys all workflows/credentials.