mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-19 06:35:10 +00:00
try to install with coolify
This commit is contained in:
parent
821143d2e4
commit
5740d1754a
5 changed files with 387 additions and 0 deletions
144
COOLIFY_DEPLOYMENT.md
Normal file
144
COOLIFY_DEPLOYMENT.md
Normal 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
35
coolify.env.example
Normal 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
80
coolify.yaml
Normal 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
55
setup-coolify.ps1
Normal 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
73
setup-coolify.sh
Normal 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 ==="
|
||||
Loading…
Reference in a new issue