ESPACIO PUBLICITARIO DISPONIBLE · HABLEMOS

Configuración de Secrets, PostgreSQL Persistente y Dominios Personalizados en Replit Deployments para Producción

365Finds Editorial
11.430 artículos Wiki recopilados

Usa 365 Wiki con tu IA

Copia el prompt de abajo, pégalo en la IA que ya usas y haz tu pregunta.

Descargar el Skill completo

Pruébalo primero con el prompt. Si usas 365 Wiki a menudo, instala el Skill completo de 365Wiki y no tendrás que volver a pegarlo. Si no tienes una IA habitual, también sirven las versiones web de Gemini o Microsoft Copilot.

El paso de un prototipo interactivo a una aplicación web en producción exige resolver tres requisitos de infraestructura esenciales: la gestión segura de credenciales, una base de datos relacional persistente y resistente, y el enrutamiento a través de un dominio de marca con certificados TLS/SSL totalmente gestionados. En el ecosistema de Replit, este flujo se centraliza en Replit Deployments (dentro de la herramienta Publishing del editor). Replit integra la orquestación de contenedores, PostgreSQL sin servidor, custodia de secretos y validación DNS para certificados en un único flujo de entrega continua.

Esta guía detalla cómo configurar variables de entorno seguras (Deployment Secrets), aprovisionar bases de datos PostgreSQL persistentes resolviendo incompatibilidades de SSL, y conectar dominios personalizados manteniendo renovaciones automáticas permanentes de certificados en Replit Deployments.


1. Selección del Modelo de Arquitectura de Despliegue

Antes de gestionar datos o credenciales, es necesario seleccionar el tipo de despliegue adecuado en el editor mediante Publishing → Adjust settings → Deployment type:

Para aplicaciones comerciales que necesitan persistencia en PostgreSQL y gestión de credenciales, Autoscale o Reserved VM constituyen la base arquitectónica adecuada.


2. Gestión Aislada de Variables de Entorno y Secrets

Uno de los fallos más críticos en producción radica en la exposición accidental de credenciales o la mezcla entre entornos de desarrollo y producción. Replit organiza las variables en dos ámbitos claramente diferenciados: Development Secrets y Deployment Secrets.

Entendiendo los Dos Ámbitos

Procedimiento de Configuración

  1. Clasificación de credenciales: Separe las claves sensibles (claves de API de Stripe, tokens de OpenAI, credenciales OAuth) de las opciones de configuración no sensibles. Los valores confidenciales deben almacenarse como Secrets (cifrados con AES-256 en reposo y TLS en tránsito), mientras que variables como LOG_LEVEL=info o URLs de CDN públicas deben ir en Configurations.
  2. Definición en la herramienta Publishing: Abra Publishing, acceda a Adjust settings y localice la sección Deployment secrets. Introduzca o verifique las parejas clave-valor destinadas a producción.
  3. Republicación obligatoria (Re-publish): Tras actualizar los secretos de despliegue, haga clic en Publish para recompilar el contenedor y aplicar las nuevas variables en producción.

Acceso a las Variables en el Código

Los secretos se exponen como variables de entorno estándar del sistema operativo. Evite incluir claves de respaldo fijas en el código fuente.

Ejemplo en Node.js / TypeScript:

const stripeApiKey = process.env.STRIPE_SECRET_KEY;
if (!stripeApiKey) {
  throw new Error("STRIPE_SECRET_KEY no está configurada en producción");
}

Ejemplo en Python:

import os

stripe_api_key = os.environ.get("STRIPE_SECRET_KEY")
if not stripe_api_key:
    raise RuntimeError("STRIPE_SECRET_KEY no está configurada en producción")

Aviso sobre variables del sistema: Determinadas variables exclusivas del editor (como REPLIT_DEV_DOMAIN) no existen en los contenedores de producción. Para construir URLs de redirección o webhooks, utilice su propio dominio personalizado o variables de entorno explícitas.


3. Configuración de PostgreSQL Persistente para Producción

Cualquier proyecto de Replit incluye soporte nativo para PostgreSQL, pero el motor subyacente difiere sustancialmente entre el entorno de desarrollo y el de producción.

Arquitectura: Entorno de Desarrollo (Helium) vs. Producción (Neon)

Inyección Automática de DATABASE_URL

Replit gestiona automáticamente la variable DATABASE_URL:

Patrón para Manejar la Restricción de SSL en Producción

El intento de forzar SSL en desarrollo provoca errores del tipo The server does not support SSL connections, mientras que desactivar SSL en producción genera fallos de autenticación con Neon. La solución consiste en parametrizar la conexión según el valor de NODE_ENV:

Configuración con el paquete pg (Node.js):

import { Pool } from "pg";

const isProduction = process.env.NODE_ENV === "production";

export const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: isProduction ? { rejectUnauthorized: false } : false,
});

Configuración con Drizzle ORM:

import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";

const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: process.env.NODE_ENV === "production" ? { rejectUnauthorized: false } : false,
});

export const db = drizzle(pool);

Gestión de Concurrencia y Connection Pooling

En despliegues de tipo Autoscale, una repentina afluencia de visitas levanta múltiples réplicas de la aplicación. Conexiones directas sin gestión de reservas pueden agotar rápidamente el límite de conexiones del motor (max_connections).

  1. En la herramienta Database de Replit, consulte los detalles de la base de datos de producción.
  2. Neon proporciona un endpoint con multiplexación de conexiones (añadiendo -pooler al host, por ejemplo ep-xyz-pooler.region.neon.tech).
  3. Emplee la cadena con pooling para las consultas habituales de la API web, y reserve la conexión directa estándar para migraciones o tareas de esquema que requieran bloqueos a nivel de sesión.

Migraciones Seguras y Deployment Previews

Al aplicar modificaciones en la estructura de las tablas (eliminación de columnas, alteraciones de tipo o adición de campos requeridos sin valor por defecto):


4. Conexión de Dominios Personalizados y Certificados TLS/SSL

Las aplicaciones desplegadas reciben por defecto un subdominio bajo *.replit.app. Para proyectos en producción, es imprescindible vincular un dominio personalizado propio (tanto el dominio raíz o apex como sus subdominios).

Replit automatiza la emisión y renovación periódica de certificados TLS/SSL (mediante Let's Encrypt / Google Trust) a través de validación DNS. No obstante, una mala configuración de registros puede interrumpir este proceso.

Guía de Configuración DNS

1. Registrar el dominio en Publishing

  1. Abra la herramienta Publishing y acceda a la pestaña Domains.
  2. Introduzca el dominio personalizado deseado (por ejemplo, example.com).
  3. El panel facilitará la dirección IP para el registro A y una cadena de texto para el registro de verificación TXT.

2. Configurar los registros en el proveedor de DNS

Acceda al panel de su registrador o proveedor DNS (Cloudflare, Namecheap, GoDaddy, Route 53) y cree los siguientes registros:

TipoNombre / HostValor / DestinoPropósito
A@ (o raíz)[Dirección IP provista por Replit]Enruta el tráfico hacia la aplicación en producción
TXT@ (o raíz)replit-verify=xxxxxxxx...Acredita la titularidad y valida la emisión de TLS

3. Reglas Críticas para Evitar Caídas del Servicio

Subdominios y Redirección Canónica de www

Replit trata el dominio raíz y los subdominios como entidades independientes:


5. Lista de Comprobación para Producción

Antes de dirigir usuarios reales a la aplicación, verifique los siguientes puntos:

  1. Auditoría de Secrets:
    • Compruebe en Publishing → Adjust settings → Deployment secrets que todas las claves requeridas están presentes.
    • Confirme que no existen claves maestras en el repositorio de código.
    • Ejecute una republicación completa tras modificar secretos.
  2. Resiliencia de la Base de Datos:
    • El código de conexión activa SSL condicionalmente cuando NODE_ENV === "production".
    • La aplicación utiliza la variable inyectada DATABASE_URL sin modificaciones locales.
    • Las migraciones y consultas responden sin agotar las conexiones máximas del servidor.
  3. Dominio y Estado Criptográfico:
    • La pestaña Domains de Replit muestra la etiqueta verde Verified.
    • El registro replit-verify TXT permanece guardado en su panel DNS.
    • La navegación HTTPS funciona sin errores de certificado en ordenadores y dispositivos móviles.
  4. Supervisión y Ubicación:
    • Active las herramientas de monitorización (Monitoring tools) en el panel de Publishing para recibir alertas por correo ante caídas del servicio.
    • Confirme que la región geográfica seleccionada (Deployment geography) se encuentra próxima a sus usuarios (una vez desplegada, la región queda fijada).

Al estructurar correctamente las credenciales por entorno, adoptar clientes PostgreSQL compatibles con SSL en producción y conservar de forma permanente los registros de validación DNS, su aplicación en Replit Deployments contará con un entorno de producción seguro, escalable y resistente.


Referencias