Deploy Relaticle CRM en Hetzner: problemas y fixes #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexto
Despliegue de Relaticle CRM en
/home/rafa/apps/triptyk-crm/usando Docker Compose + Traefik (red de Coolify). Stack: postgres + redis + app (serversideup/php:8.4-fpm-nginx) + horizon + scheduler.Comando de arranque:
docker compose -f compose.yml -f compose.prod.yml up -dProblema 1: Puerto 8080 ya ocupado
Síntoma:
docker compose upfalla conport 8080 already allocated.Causa: El
compose.ymloriginal tieneports: ["${APP_PORT:-80}:8080"]. Traefik de Coolify ocupa el 8080 del host.Fix: Cambiar
portsporexposeencompose.ymlpara el servicioapp. El acceso externo lo gestiona Traefik vía labels, no un port binding directo.Problema 2: PostgreSQL falla auth por IPv6
Síntoma:
connection to server at "postgres" (fd7e:da47:12d6::4), port 5432 failed: FATAL: password authentication failedCausa: Docker 27+ asigna automáticamente IPs IPv6 a los contenedores aunque el network tenga
enable_ipv6: false. SCRAM-SHA-256 falla sobre esa ruta IPv6.Fix en
compose.prod.yml:Problema 3: REDIS_PASSWORD bakeada en la imagen
Síntoma:
WRONGPASS invalid username-password pair or user is disableden Redis.Causa: El
.envdel build teníaREDIS_PASSWORD=xxx. Ese fichero se copia en la imagen Docker. Laravel lo lee del filesystem antes de que Docker Compose pueda sobreescribir la var del servidor (que estaba vacía).Fix: Override explícito vacío en
compose.prod.yml:Problema 4: Redis de Coolify colisiona con el Redis propio
Síntoma:
NOAUTH Authentication required— la app intenta conectar al Redis de Coolify (que sí tiene password) en lugar del propio.Causa: El servicio
appestá en dos redes:default(tiene nuestrotriptyk-crm-redis-1) ycoolify(tienecoolify-rediscon password). Docker DNS resuelve el hostnameredisal contenedor de la redcoolifyprimero.Fix: Anclar el Redis propio con IP fija y forzar la resolución en todos los servicios que lo usan:
Problema 5: Import de DB falla con schema ya creado
Síntoma:
pg_dumpcompleto causa errores de constraints duplicados; tablas de negocio quedan con 0 filas.Causa: El contenedor corre migraciones automáticas al arrancar (AUTORUN_ENABLED). El dump completo intenta re-crear tablas/constraints ya existentes, y cuando hay error en un COPY la transacción aborta dejando la tabla vacía.
Fix: Usar dump solo de datos + limpiar antes:
Resultado: 624 empresas y 71 contactos importados correctamente.
Estado final
default+coolify)compose.prod.ymlen/home/rafa/apps/triptyk-crm/en el servidorcrm.triptykdsb.com→188.40.120.157Lección principal
Cuando una app comparte la red
coolifycon otros servicios del panel, los hostnames de servicios propios (redis,postgres,db) pueden colisionar con contenedores de Coolify que usen el mismo nombre. Siempre usarextra_hostscon IPs fijas para los servicios propios encompose.prod.yml.