Saltar a contenido

Despliegue

Infraestructura de Servidores

Servidor IP Puerto Usuario Proposito
PRD 46.225.189.32 2222 mduops Produccion
DEV 159.69.216.125 22 root Desarrollo + correo

Ambos alojados en Hetzner. DNS gestionado via Hetzner DNS.

Pipelines CI/CD

3dplim (Next.js)

Workflow: GitHub Actions en pLim-Inc/3dplim

Push a main → Construir imagen Docker → SSH a PRD → docker compose pull + up

mdu-api (Express)

Workflow: deploy-mdu-api.yml en repo 3dplim (usa DEPLOY_SSH_KEY de 3dplim)

Push a main → SSH a PRD → git pull → npm install → systemctl restart mdu-api

Note

El repo mdu-api usa el secreto de organizacion HETZNER_SSH_PRIVATE_KEY que NO tiene acceso a PRD. Los despliegues se lanzan desde el repo 3dplim.

miniature-forge (Vite/React)

Despliegue: SCP archivos estaticos a /opt/miniature-forge/

stl-pipeline (FastAPI)

Despliegue: SSH manual + Docker

ssh mdu-prd
cd /opt/stl-pipeline
git pull
docker compose build && docker compose up -d

Docker Compose

Archivo compose principal: /opt/3dplim/docker-compose.yml

Servicios Core

Servicio Imagen Puerto
app 3dplim 3000
postgres pgvector/pgvector:pg16 5432
redis redis:alpine 6379
minio minio/minio 9000/9001
blender-worker personalizado -
meilisearch meilisearch 7700

Contenedores Independientes

Contenedor Archivo Compose Puerto
mdu-stl-pipeline /opt/stl-pipeline/docker-compose.yml 8090
mdu-langflow /opt/langflow/docker-compose.yml 7860
mdu-base-builder /opt/base-builder/docker-compose.yml -
mdu-trimesh-mcp /opt/trimesh-mcp/docker-compose.yml -

Servicios Systemd

Servicio Descripcion Comando
mdu-api.service Backend Express node app.js (puerto 3001)
ollama.service LLM local ollama serve (puerto 11434)
# Gestionar servicios
sudo systemctl restart mdu-api
sudo systemctl status mdu-api
sudo journalctl -u mdu-api -f

Configuracion Nginx

Virtual Hosts (PRD)

Config Dominio Backend
minidreamuniverse.conf minidreamuniverse.com Next.js (3000) + mdu-api (3001)
app.minidreamuniverse.conf app.minidreamuniverse.com Estatico /opt/miniature-forge/
admin.minidreamuniverse.conf admin.minidreamuniverse.com Estatico /opt/agenthub-mdu/dist/
docs.minidreamuniverse.conf docs.minidreamuniverse.com Estatico /opt/mdu-docs/site/

Certificados SSL

Todos los certificados gestionados por Certbot (Let's Encrypt):

Dominio Ruta Auto-Renovacion
minidreamuniverse.com + www /etc/letsencrypt/live/minidreamuniverse.com/ Si
app.minidreamuniverse.com /etc/letsencrypt/live/app.minidreamuniverse.com/ Si
admin.minidreamuniverse.com /etc/letsencrypt/live/admin.minidreamuniverse.com/ Si
early-adopt.minidreamuniverse.com /etc/letsencrypt/live/early-adopt.minidreamuniverse.com/ Si
docs.minidreamuniverse.com /etc/letsencrypt/live/docs.minidreamuniverse.com/ Si

Mantenimiento

Limpieza Semanal

Cron job se ejecuta cada martes a las 23:50:

50 23 * * 2 /opt/scripts/prd-cleanup.sh >> /var/log/prd-cleanup.log 2>&1

Operaciones Comunes

# Reiniciar mdu-api
sudo systemctl restart mdu-api

# Reiniciar pipeline STL
cd /opt/stl-pipeline && docker compose restart

# Reiniciar Langflow
cd /opt/langflow && docker compose restart

# Ver logs mdu-api
sudo journalctl -u mdu-api -f

# Ver logs contenedor Docker
docker logs -f mdu-stl-pipeline --tail 100

# Reconstruir docs
cd /opt/mdu-docs && source venv/bin/activate && mkdocs build --clean

Email (SMTP Resend)

Configuracion Valor
Host smtp.resend.com
Puerto 587
Remitente noreply@minidreamuniverse.com
Copia admin admin@minidreamuniverse.com

SPF, DKIM y DMARC configurados para minidreamuniverse.com.