Implementar InsForge en AWS EC2
Esta guía te llevará paso a paso por la implementación de InsForge en una instancia de AWS EC2 usando Docker Compose.Esta guía de nube la mantiene la comunidad y puede quedar por detrás de la última versión de InsForge. La configuración canónica y siempre actualizada es el directorio
deploy/docker-compose/ en el repositorio de InsForge.📋 Requisitos previos
- Cuenta de AWS con acceso a EC2
- Conocimientos básicos de SSH y operaciones de línea de comandos
- Nombre de dominio (opcional, para configuración de dominio personalizado)
🚀 Pasos de implementación
1. Crear y configurar la instancia EC2
1.1 Lanzar la instancia EC2
- Inicia sesión en AWS Console y navega al panel de EC2
- Haz clic en “Launch Instance”
- Configura la instancia:
- Name:
insforge-server(o el nombre que prefieras) - AMI: Ubuntu Server 24.04 LTS (HVM), tipo de volumen SSD
- Instance Type:
t3.mediumo superior (mínimo 2 vCPU, 4 GB de RAM)- Para producción: se recomienda
t3.large(2 vCPU, 8 GB de RAM) - Para pruebas: mínimo
t3.small(2 vCPU, 2 GB de RAM)
- Para producción: se recomienda
- Key Pair: Crea uno nuevo o selecciona un par de claves existente (descarga y guarda el archivo
.pem) - Storage: 30 GB gp3 (se recomienda un mínimo de 20 GB)
- Name:
1.2 Configurar el grupo de seguridad
Crea o configura un grupo de seguridad con las siguientes reglas de entrada:| Type | Protocol | Port Range | Source | Description |
|---|---|---|---|---|
| SSH | TCP | 22 | My IP | Acceso SSH |
| HTTP | TCP | 80 | 0.0.0.0/0 | Acceso HTTP |
| HTTPS | TCP | 443 | 0.0.0.0/0 | Acceso HTTPS |
| Custom TCP | TCP | 7130 | 0.0.0.0/0 | Panel + API |
| Custom TCP | TCP | 5432 | 0.0.0.0/0 | PostgreSQL (opcional) |
⚠️ Nota de seguridad: Para producción, restringe PostgreSQL (5432) a direcciones IP específicas o elimina por completo el acceso externo. Considera usar un proxy inverso (nginx) y exponer solo los puertos 80/443.
1.3 Asignar una IP elástica (recomendado)
- Navega a Elastic IPs en el panel de EC2
- Haz clic en Allocate Elastic IP address
- Asocia la IP elástica con tu instancia
2. Conectarte a tu instancia EC2
3. Instalar dependencias
3.1 Actualizar los paquetes del sistema
3.2 Instalar Docker
3.3 Agregar tu usuario al grupo de Docker
Después de instalar Docker, necesitas agregar tu usuario al grupodocker para poder ejecutar comandos de Docker sin sudo:
💡 Nota: Si docker ps no funciona de inmediato, cierra sesión y vuelve a iniciar sesión por SSH, luego inténtalo de nuevo.
⚠️ Nota de seguridad: Agregar un usuario al grupo docker le otorga privilegios equivalentes a root en el sistema. Esto es aceptable en entornos de un solo usuario como tu instancia EC2, pero ten cuidado en sistemas compartidos.
3.4 Instalar Git
4. Implementar InsForge
4.1 Clonar el repositorio
4.2 Crear la configuración del entorno
Copia la plantilla de ejemplo para crear tu archivo.env:
deploy/docker-compose/.env.example. Estas son las variables que debes establecer:
.env.example incluye el resto de las variables y sus valores predeterminados, así que basta con editar el archivo copiado.
Genera secretos seguros:
💡 Importante: Guarda estos secretos de forma segura. Los necesitarás si alguna vez migras o restauras tu instancia.
4.3 Iniciar los servicios de InsForge
Ctrl+C para salir de la vista de logs.
4.4 Verificar los servicios
5. Acceder a tu instancia de InsForge
5.1 Probar la API del backend
5.2 Acceder al panel de control
Abre tu navegador y navega a:ROOT_ADMIN_USERNAME y ROOT_ADMIN_PASSWORD que estableciste en .env.
6. Configurar el dominio (opcional pero recomendado)
6.1 Actualizar los registros DNS
Agrega registros DNS A que apunten a tu IP elástica de EC2:6.2 Instalar el proxy inverso Nginx
6.3 Instalar el certificado SSL (recomendado)
.env con las URLs de HTTPS:
🔧 Administración y mantenimiento
Ver logs
Detener servicios
Reiniciar servicios
Actualizar InsForge
InsForge distribuye imágenes precompiladas, así que actualizar consiste en descargar y reiniciar. Ejecuta esto desde~/insforge/deploy/docker-compose:
Copia de seguridad de la base de datos
Ejecuta esto desde~/insforge/deploy/docker-compose:
Monitorear recursos
🐛 Solución de problemas
Los servicios no inician
No se puede conectar a la base de datos
El puerto ya está en uso
Falta de memoria
Considera actualizar a un tipo de instancia más grande:Problemas con el certificado SSL
📊 Optimización del rendimiento
Para cargas de trabajo de producción
- Actualizar el tipo de instancia: Usa
t3.largeot3.xlarge - Habilitar el autoescalado: Configura un Application Load Balancer con grupos de autoescalado
- Usar RDS: Migra de PostgreSQL en contenedores a AWS RDS para mayor fiabilidad
- Habilitar CloudWatch: Monitorea las métricas y configura alarmas
- Configurar copias de seguridad: Configura copias de seguridad diarias automatizadas
- Usar S3 para almacenamiento: Configura un bucket de S3 para las subidas de archivos en lugar del almacenamiento local
Optimización de la base de datos
🔒 Prácticas recomendadas de seguridad
- Cambiar las contraseñas predeterminadas: Actualiza las contraseñas de administrador y de la base de datos
- Habilitar el firewall: Usa los grupos de seguridad de AWS de forma efectiva
- Actualizaciones regulares: Mantén el sistema y las imágenes de Docker actualizados
- SSL/TLS: Usa siempre HTTPS en producción
- Copias de seguridad periódicas: Automatiza las copias de seguridad de la base de datos
- Monitorear logs: Configura el monitoreo de logs y alertas
- Limitar el acceso SSH: Restringe el SSH a direcciones IP específicas
- Usar roles de IAM: En lugar de claves de acceso de AWS cuando sea posible
🆘 Soporte y recursos
- Documentación: https://docs.insforge.dev
- Issues de GitHub: https://github.com/insforge/insforge/issues
- Comunidad de Discord: https://discord.com/invite/MPxwj5xVvW
📝 Estimación de costos
Costos mensuales aproximados de AWS:| Component | Type | Monthly Cost |
|---|---|---|
| EC2 Instance | t3.medium | ~$30 |
| Storage (30 GB) | EBS gp3 | ~$3 |
| Elastic IP | (if running 24/7) | $0 |
| Data Transfer | First 100GB free | Variable |
| Total | ~$33/month |
💡 Optimización de costos: Usa AWS Savings Plans o Reserved Instances para implementaciones a largo plazo y ahorra hasta un 70%.
¡Felicidades! 🎉 Tu instancia de InsForge ahora se está ejecutando en AWS EC2. Puedes empezar a construir aplicaciones conectando agentes de IA a tu plataforma backend. Para otras estrategias de implementación en producción, consulta nuestras guías de implementación.