feat: agregar docker-compose para backend y worker

This commit is contained in:
DillusDev001 2026-09-18 22:51:23 -04:00
commit 907cd4a68e
6 changed files with 246 additions and 0 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
# Environment variables (contienen secretos)
.env
# Docker
*.log
docker-compose.override.yml

139
README.md Normal file
View file

@ -0,0 +1,139 @@
# Deploy Manual - Paquetería
## Prerrequisitos
- Docker y Docker Compose instalados
- Acceso SSH al servidor
- Git instalado en el servidor
## Estructura en el servidor
```
/home/dillus/
├── repos/ ← Código fuente (clonado de Forgejo)
│ ├── app-paqueteria-nest/
│ │ ├── src/
│ │ └── Dockerfile
│ ├── app-paqueteria-worker/
│ │ ├── src/
│ │ └── Dockerfile
│ └── docker/ ← Archivos de deploy
│ ├── paqueteria-nest/
│ │ ├── docker-compose.yml
│ │ └── .env
│ └── paqueteria-worker/
│ ├── docker-compose.yml
│ └── .env
└── Dockge administra /home/dillus/repos/docker/
```
## Paso 1: Clonar repositorios
```bash
cd /home/dillus/repos
# Clonar desde Forgejo
git clone http://git.alphaxdev.cc/dillus/app-paqueteria-nest.git
git clone http://git.alphaxdev.cc/dillus/app-paqueteria-worker.git
git clone http://git.alphaxdev.cc/dillus/docker.git
```
## Paso 2: Configurar variables de entorno
```bash
cd /home/dillus/repos/docker/paqueteria-nest
cp .env.example .env
nano .env # Editar con valores reales
cd /home/dillus/repos/docker/paqueteria-worker
cp .env.example .env
nano .env # Editar con valores reales
```
## Paso 3: Deploy con Dockge
1. Abrir Dockge en `http://tu-servidor:5000`
2. Configurar la ruta de los stacks en Dockge Settings:
- Path: `/home/dillus/repos/docker`
3. Los stacks aparecerán automáticamente
4. Hacer clic en "Pull & Start" en cada stack
## Paso 4: Deploy manual (sin Dockge)
```bash
# Backend (incluye PostgreSQL)
cd /home/dillus/repos/docker/paqueteria-nest
docker compose up -d --build
# Worker
cd /home/dillus/repos/docker/paqueteria-worker
docker compose up -d --build
```
## Paso 5: Verificar
```bash
# Ver logs
docker logs paqueteria-nest -f
docker logs paqueteria-worker -f
# Verificar que corren
docker ps | grep paqueteria
```
## Paso 6: Configurar Nginx Proxy Manager
En la UI de NPM, crear proxy hosts:
### Backend API
- Domain: `api.alphaxdev.cc`
- Forward to: `paqueteria-nest:3000`
- WebSocket: Sí
- SSL: Let's Encrypt
### OpenWA (ya configurado)
- Domain: `whatsapp.alphaxdev.cc`
- Forward to: `whatsapp-host:2785`
## Actualizaciones
```bash
# Pull cambios
cd /home/dillus/repos/app-paqueteria-nest
git pull
# Rebuild y deploy
cd /home/dillus/repos/docker/paqueteria-nest
docker compose up -d --build
# Repetir para worker
```
## Troubleshooting
```bash
# Ver logs de un servicio
docker logs paqueteria-nest -f --tail 100
# Entrar al contenedor
docker exec -it paqueteria-nest sh
# Verificar conexión a DB
docker exec -it postgres-dev psql -U postgres -d paqueteria
# Reiniciar un servicio
cd /home/dillus/repos/docker/paqueteria-nest
docker compose restart paqueteria-nest
```
## Archivos en git
### Subir a git ✓
- `Dockerfile` (en cada proyecto)
- `docker-compose.yml`
- `.env.example`
- `README.md`
### NO subir a git ✗
- `.env` (contiene contraseñas)

View file

@ -0,0 +1,31 @@
# Database
DB_HOST=paqueteria-db
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_NAME=paqueteria
# JWT
JWT_SECRET=tu-jwt-secret-aqui
JWT_EXPIRATION=15d
# API Key
API_KEY=tu-api-key-aqui
# OCR Provider (tesseract | ocrspace | google-vision | mimo)
OCR_PROVIDER=mimo
# mimo key (si OCR_PROVIDER=mimo)
MIMO_API_KEY=tu-mimo-key-aqui
# Worker
WORKER_KEY=tu-worker-key-aqui
# App
PORT=3000
# Logo Empresa
EMPRESA_LOGO_MAX_SIZE=200
EMPRESA_LOGO_WIDTH=400
EMPRESA_LOGO_HEIGHT=400
EMPRESA_LOGO_QUALITY=80

View file

@ -0,0 +1,40 @@
services:
paqueteria-nest:
build:
context: ${NEST_CONTEXT:-../app-paqueteria-nest}
dockerfile: Dockerfile
container_name: paqueteria-nest
restart: unless-stopped
ports:
- "3000:3000"
env_file:
- .env
volumes:
- uploads_data:/app/uploads
networks:
- paqueteria-net
depends_on:
- paqueteria-db
paqueteria-db:
image: postgres:16-alpine
container_name: postgres-dev
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_DB: ${DB_NAME:-paqueteria}
POSTGRES_USER: ${DB_USERNAME:-postgres}
POSTGRES_PASSWORD: ${DB_PASSWORD:-postgres}
volumes:
- pg_data:/var/lib/postgresql/data
networks:
- paqueteria-net
volumes:
pg_data:
uploads_data:
networks:
paqueteria-net:
driver: bridge

View file

@ -0,0 +1,13 @@
# API Principal
API_URL=http://paqueteria-nest:3000/v1
# API KEY para conectar con el API principal
WORKER_KEY=tu-worker-key-aqui
# OpenWA
OPENWA_URL=https://whatsapp.alphaxdev.cc
OPENWA_API_KEY=tu-openwa-api-key-aqui
# Configuración del worker
WORKER_INTERVAL=3000
PORT=3001

View file

@ -0,0 +1,17 @@
services:
paqueteria-worker:
build:
context: ${WORKER_CONTEXT:-../app-paqueteria-worker}
dockerfile: Dockerfile
container_name: paqueteria-worker
restart: unless-stopped
ports:
- "3001:3001"
env_file:
- .env
networks:
- paqueteria-net
networks:
paqueteria-net:
driver: bridge