try to install with coolify

This commit is contained in:
gservicesbcn 2025-08-29 02:12:13 +02:00
parent 821143d2e4
commit 5740d1754a
5 changed files with 387 additions and 0 deletions

144
COOLIFY_DEPLOYMENT.md Normal file
View file

@ -0,0 +1,144 @@
# Despliegue de ERPNext con Coolify
Esta guía explica cómo desplegar ERPNext en un VPS utilizando Coolify.
## Requisitos Previos
- Un VPS con Docker instalado
- Coolify instalado y configurado en el VPS
- Acceso SSH al servidor
## Configuración para Coolify
### Archivo de Configuración Principal
El archivo `coolify.yaml` proporciona una configuración simplificada optimizada para Coolify que incluye:
1. **Servicio ERPNext principal** con healthchecks
2. **Base de datos MariaDB** con configuración óptima
3. **Servicios Redis** para cache y colas
4. **Volúmenes persistentes** para datos
5. **Variables de entorno** configurables
### Variables de Entorno
Crea un archivo `.env` con las siguientes variables:
```bash
# Versión de ERPNext
ERPNEXT_VERSION=v15.77.0
# Contraseña de la base de datos
DB_PASSWORD=tu_password_seguro
# Puerto HTTP
HTTP_PORT=8080
# Configuración del host del sitio
FRAPPE_SITE_NAME_HEADER=$$host
```
## Pasos de Despliegue
### 1. Preparar el Servidor
```bash
# Clonar el repositorio
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
# Crear archivo .env
cp example.env .env
# Editar .env con tus configuraciones
```
### 2. Configurar en Coolify
1. **Crear una nueva aplicación** en Coolify
2. **Seleccionar "Docker Compose"** como tipo de aplicación
3. **Conectar el repositorio** o subir los archivos manualmente
4. **Especificar el archivo compose**: `coolify.yaml`
5. **Configurar las variables de entorno** en la interfaz de Coolify
### 3. Variables de Entorno en Coolify
Configura las siguientes variables en la interfaz de Coolify:
- `ERPNEXT_VERSION`: Versión de ERPNext (ej: v15.77.0)
- `DB_PASSWORD`: Contraseña segura para MariaDB
- `HTTP_PORT`: Puerto para acceder a la aplicación
- `FRAPPE_SITE_NAME_HEADER`: Configuración del host (dejar por defecto)
### 4. Despliegue
1. **Iniciar el despliegue** desde la interfaz de Coolify
2. **Monitorear los logs** durante el proceso
3. **Verificar que todos los servicios** estén saludables
## Configuraciones Avanzadas
### Usar Base de Datos Externa
Si prefieres usar una base de datos externa:
```bash
# En el archivo .env o variables de Coolify
DB_HOST=tu_host_de_bd_externa
DB_PORT=3306
DB_PASSWORD=password_de_tu_bd
```
### Configurar Dominio Personalizado
1. **Configurar DNS** apuntando a tu VPS
2. **Configurar reverse proxy** en Coolify
3. **Actualizar `FRAPPE_SITE_NAME_HEADER`** con tu dominio
### Backup y Restauración
Coolify proporciona herramientas integradas para:
- Backups automáticos de volúmenes
- Restauración desde snapshots
- Monitorización de recursos
## Solución de Problemas
### Errores Comunes
1. **Healthcheck failures**: Verificar que todos los servicios estén ejecutándose
2. **Problemas de conexión a BD**: Verificar credenciales y configuración de red
3. **Problemas de permisos**: Asegurar que los volúmenes tengan los permisos correctos
### Logs y Monitorización
- Usar la interfaz de Coolify para ver logs en tiempo real
- Configurar alertas para servicios críticos
- Monitorizar uso de CPU, memoria y almacenamiento
## Mantenimiento
### Actualizaciones
1. **Actualizar versión de ERPNext**: Cambiar `ERPNEXT_VERSION` en las variables
2. **Reiniciar aplicación**: Desde la interfaz de Coolify
3. **Verificar compatibilidad**: Antes de actualizar a versiones mayores
### Escalado
Coolify permite:
- Escalar horizontalmente los servicios
- Ajustar recursos (CPU, memoria)
- Configurar auto-scaling basado en métricas
## Recursos Adicionales
- [Documentación oficial de Coolify](https://coolify.io/docs)
- [Foro de la comunidad ERPNext](https://discuss.erpnext.com)
- [Repositorio frappe_docker](https://github.com/frappe/frappe_docker)
## Soporte
Para problemas específicos de:
- **Configuración de Coolify**: Consultar documentación de Coolify
- **Problemas de ERPNext**: Abrir issue en el repositorio frappe_docker
- **Problemas de base de datos**: Verificar logs de MariaDB/Redis

35
coolify.env.example Normal file
View file

@ -0,0 +1,35 @@
# Archivo de ejemplo de variables de entorno para Coolify
# Copia este archivo a .env y modifica los valores según necesites
# Versión de ERPNext a utilizar
ERPNEXT_VERSION=v15.77.0
# Contraseña para la base de datos MariaDB
# ¡Cambia esto por una contraseña segura!
DB_PASSWORD=cambiar_por_password_seguro
# Puerto HTTP para acceder a la aplicación
HTTP_PORT=8080
# Configuración del host header para multi-tenant
# Dejar como $$host para comportamiento por defecto
FRAPPE_SITE_NAME_HEADER=$$host
# Configuración para base de datos externa (opcional)
# DB_HOST=host_externo_de_bd
# DB_PORT=3306
# Configuración para Redis externo (opcional)
# REDIS_CACHE=redis_externo:6379
# REDIS_QUEUE=redis_externo:6379
# Configuración de recursos (opcional)
# MEMORY_LIMIT=512M
# CPU_LIMIT=0.5
# Configuración de red (opcional)
# NETWORK_MODE=bridge
# Variables para healthchecks (opcional)
# HEALTHCHECK_TIMEOUT=30s
# HEALTHCHECK_RETRIES=3

80
coolify.yaml Normal file
View file

@ -0,0 +1,80 @@
# Coolify configuration for ERPNext deployment
# This file provides a simplified configuration for Coolify deployment
version: "3.8"
services:
erpnext:
image: frappe/erpnext:${ERPNEXT_VERSION:-v15.77.0}
restart: unless-stopped
environment:
- DB_HOST=${DB_HOST:-db}
- DB_PORT=${DB_PORT:-3306}
- DB_PASSWORD=${DB_PASSWORD:-123}
- REDIS_CACHE=${REDIS_CACHE:-redis-cache:6379}
- REDIS_QUEUE=${REDIS_QUEUE:-redis-queue:6379}
- SOCKETIO_PORT=9000
- FRAPPE_SITE_NAME_HEADER=${FRAPPE_SITE_NAME_HEADER:-$$host}
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs
depends_on:
- db
- redis-cache
- redis-queue
ports:
- "${HTTP_PORT:-8080}:8080"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/method/ping"]
interval: 30s
timeout: 10s
retries: 3
db:
image: mariadb:10.6
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-123}
- MARIADB_ROOT_PASSWORD=${DB_PASSWORD:-123}
volumes:
- db-data:/var/lib/mysql
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
- --skip-innodb-read-only-compressed
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "--password=$${DB_PASSWORD:-123}"]
interval: 10s
timeout: 5s
retries: 10
redis-cache:
image: redis:6.2-alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
redis-queue:
image: redis:6.2-alpine
restart: unless-stopped
volumes:
- redis-queue-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
db-data:
redis-queue-data:
sites:
logs:
networks:
default:
driver: bridge

55
setup-coolify.ps1 Normal file
View file

@ -0,0 +1,55 @@
# Script de configuración inicial para Coolify (PowerShell)
# Este script ayuda a preparar el entorno para el despliegue en VPS Ubuntu
Write-Host "=== Configuración inicial para Coolify en VPS Ubuntu ===" -ForegroundColor Green
# Verificar que estamos en el directorio correcto
if (-not (Test-Path "compose.yaml")) {
Write-Host "Error: Este script debe ejecutarse desde el directorio raíz de frappe_docker" -ForegroundColor Red
exit 1
}
# Crear archivo .env si no existe
if (-not (Test-Path ".env")) {
Write-Host "Creando archivo .env desde coolify.env.example..." -ForegroundColor Yellow
Copy-Item -Path "coolify.env.example" -Destination ".env"
Write-Host "¡Archivo .env creado!" -ForegroundColor Green
Write-Host "Por favor, edita el archivo .env y cambia los valores por defecto, especialmente DB_PASSWORD" -ForegroundColor Yellow
} else {
Write-Host "El archivo .env ya existe" -ForegroundColor Green
}
# Verificar estructura de archivos
Write-Host "`n=== Verificación de archivos ===" -ForegroundColor Green
$files = @(
@{Name = "coolify.yaml"; Description = "Configuración Docker Compose para Coolify"},
@{Name = "COOLIFY_DEPLOYMENT.md"; Description = "Documentación de despliegue"},
@{Name = "coolify.env.example"; Description = "Ejemplo de variables de entorno"},
@{Name = ".env"; Description = "Variables de entorno (debes editarlo)"}
)
foreach ($file in $files) {
if (Test-Path $file.Name) {
Write-Host "$($file.Name) - $($file.Description)" -ForegroundColor Green
} else {
Write-Host "$($file.Name) - No encontrado" -ForegroundColor Red
}
}
Write-Host "`n=== Próximos pasos para VPS Ubuntu ===" -ForegroundColor Green
Write-Host "1. Sube este proyecto a tu repositorio Git (GitHub, GitLab, etc.)" -ForegroundColor Yellow
Write-Host "2. En tu VPS Ubuntu con Coolify:" -ForegroundColor Yellow
Write-Host " - Clona el repositorio: git clone <tu-repositorio>" -ForegroundColor Yellow
Write-Host " - Navega al directorio: cd frappe_docker" -ForegroundColor Yellow
Write-Host " - Ejecuta: ./setup-coolify.sh (para configurar .env)" -ForegroundColor Yellow
Write-Host "3. En la interfaz web de Coolify:" -ForegroundColor Yellow
Write-Host " - Crea una nueva aplicación" -ForegroundColor Yellow
Write-Host " - Selecciona 'Docker Compose'" -ForegroundColor Yellow
Write-Host " - Configura la ruta al archivo: coolify.yaml" -ForegroundColor Yellow
Write-Host " - Establece las variables de entorno" -ForegroundColor Yellow
Write-Host "4. Inicia el despliegue" -ForegroundColor Yellow
Write-Host "`n=== Configuración completada ===" -ForegroundColor Green
Write-Host "Tu proyecto está listo para desplegarse en Coolify en Ubuntu" -ForegroundColor Green
Write-Host "Consulta COOLIFY_DEPLOYMENT.md para instrucciones detalladas" -ForegroundColor Cyan

73
setup-coolify.sh Normal file
View file

@ -0,0 +1,73 @@
#!/bin/bash
# Script de configuración inicial para Coolify
# Este script ayuda a preparar el entorno para el despliegue
echo "=== Configuración inicial para Coolify ==="
# Verificar que estamos en el directorio correcto
if [ ! -f "compose.yaml" ]; then
echo "Error: Este script debe ejecutarse desde el directorio raíz de frappe_docker"
exit 1
fi
# Crear archivo .env si no existe
if [ ! -f ".env" ]; then
echo "Creando archivo .env desde coolify.env.example..."
cp coolify.env.example .env
echo "¡Archivo .env creado!"
echo "Por favor, edita el archivo .env y cambia los valores por defecto, especialmente DB_PASSWORD"
else
echo "El archivo .env ya existe"
fi
# Verificar estructura de archivos
echo ""
echo "=== Verificación de archivos ==="
echo "Archivos creados para Coolify:"
if [ -f "coolify.yaml" ]; then
echo "✅ coolify.yaml - Configuración Docker Compose para Coolify"
else
echo "❌ coolify.yaml - No encontrado"
fi
if [ -f "COOLIFY_DEPLOYMENT.md" ]; then
echo "✅ COOLIFY_DEPLOYMENT.md - Documentación de despliegue"
else
echo "❌ COOLIFY_DEPLOYMENT.md - No encontrado"
fi
if [ -f "coolify.env.example" ]; then
echo "✅ coolify.env.example - Ejemplo de variables de entorno"
else
echo "❌ coolify.env.example - No encontrado"
fi
if [ -f ".env" ]; then
echo "✅ .env - Variables de entorno (debes editarlo)"
else
echo "❌ .env - No encontrado"
fi
echo ""
echo "=== Próximos pasos ==="
echo "1. Edita el archivo .env y configura tus variables:"
echo " - Cambia DB_PASSWORD por una contraseña segura"
echo " - Ajusta otras variables según necesites"
echo ""
echo "2. Sube este proyecto a tu repositorio Git"
echo ""
echo "3. En Coolify:"
echo " - Crea una nueva aplicación"
echo " - Selecciona 'Docker Compose'"
echo " - Conecta tu repositorio"
echo " - Especifica 'coolify.yaml' como archivo compose"
echo " - Configura las variables de entorno"
echo ""
echo "4. Inicia el despliegue desde Coolify"
echo ""
echo "Para más detalles, consulta COOLIFY_DEPLOYMENT.md"
echo ""
echo "=== Configuración completada ==="