Autoalojar InsForge en Coolify
Esta guía explica cómo autoalojar la plataforma InsForge en Coolify, un PaaS de código abierto que ejecutas en tu propio servidor.Esto despliega InsForge en sí, no la aplicación que construiste. Si solo quieres publicar tu aplicación, usa Sites.
Requisitos previos
- Una instancia de Coolify y un servidor asociado a ella
- Un dominio o subdominio apuntando a ese servidor
1. Crear el recurso
New Resource → Docker Compose, conecta este repositorio (uno público no requiere GitHub App) y define:
Deja Base Directory en la raíz del repositorio. El archivo compose construye Postgres desde
deploy/Dockerfile.postgres, cuyo contexto de compilación es la raíz.
2. Variables de entorno
Define estas en Environment Variables. Genera cada secreto conopenssl rand -hex 32:
ENCRYPTION_KEY recurre a JWT_SECRET si no se define, y rotar JWT_SECRET después vuelve indescifrable todo secreto almacenado: dale su propio valor ahora.
Postgres lee POSTGRES_PASSWORD solo cuando inicializa el clúster. Cambiarla después no cambia la contraseña de la base de datos.
Todo lo demás es opcional; .env.example enumera cada variable admitida con su valor por defecto.
3. Asignar un dominio
Coolify no expone un servicio compose que no publique puertos. En el servicio insforge del recurso, asigna tu dominio y define el puerto7130; luego añade las URL correspondientes al entorno:
insforge necesita un dominio. Postgres, PostgREST y el runtime de Deno permanecen en la red interna.
4. Desplegar
Pulsa Deploy. La primera ejecución construye dos imágenes pequeñas (Postgres y el host de funciones Deno), descarga el resto y ejecuta las migraciones del backend automáticamente. Abre tu dominio e inicia sesión conROOT_ADMIN_USERNAME / ROOT_ADMIN_PASSWORD.
Actualizar
Coolify redespliega al hacer push si activaste el despliegue automático, o pulsa Redeploy. Cada despliegue reconstruye las imágenes de Postgres y Deno desde el commit actual, por lo que su configuración y el host de funciones siguen a la versión. Revisa el diff de.env.example antes de actualizar: una versión que añada una variable no la añadirá a tu entorno de Coolify.
Almacenamiento
El almacenamiento de objetos usa por defecto el sistema de archivos del contenedor en un volumen de Docker. Para S3, MinIO o RustFS, consulta Self-Hosted Storage y define las variablesS3_* en el entorno de Coolify; el archivo compose las pasa al contenedor.
Por qué Postgres se construye en lugar de descargarse
El Postgres de InsForge necesita tres archivos de este repositorio:postgresql.conf (que precarga la extensión insforge_pg_utils, de la que depende la seguridad a nivel de fila en las tablas gestionadas) y dos scripts de inicialización.
Coolify crea los bind mounts de archivos como directorios (coollabsio/coolify#3375), así que montarlos no es opción: Postgres no arranca. Construir la imagen en el despliegue coloca los archivos actuales dentro, lo que además impide que la configuración se quede atrás respecto al código, como sí ocurre con una imagen preconstruida.