#!/bin/bash set -e echo "Configurando autenticación de PostgreSQL..." POSTGRES_USER="${POSTGRES_USER:-seguidor}" POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-seguidor_password}" POSTGRES_DB="${POSTGRES_DB:-$POSTGRES_USER}" # Eliminar configuración scram-sha-256 y agregar md5 # Esto asegura que las conexiones remotas funcionen correctamente sed -i '/scram-sha-256/d' "$PGDATA/pg_hba.conf" # Agregar configuración para conexiones md5 si no existe if ! grep -q "host all all all md5" "$PGDATA/pg_hba.conf"; then echo "host all all all md5" >> "$PGDATA/pg_hba.conf" fi # Forzar que las contraseñas se guarden en md5 (no scram) y # reescribir la contraseña para asegurar que coincide con las env vars. ESCAPED_PASSWORD=${POSTGRES_PASSWORD//\'/\'\'} psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL ALTER SYSTEM SET password_encryption = 'md5'; ALTER ROLE "$POSTGRES_USER" WITH PASSWORD '${ESCAPED_PASSWORD}'; SELECT pg_reload_conf(); EOSQL echo "✓ Configuración de autenticación aplicada (md5 + password sincronizada)" # Nota: No es necesario recargar aquí porque este script corre ANTES # de que PostgreSQL termine su inicialización. Los cambios se aplican # automáticamente cuando PostgreSQL termina de iniciarse.