# Desplegar agendapro en el server E3 Destino: **https://agendapro.consultoriae3.com** * Imagen: `agendapro:latest` * Puerto interno: **3100** ```powershell $S = "$env:USERPROFILE\.claude\skills\contabo-e3\scripts" ``` ## 1. Publicar la imagen Haz push a `main`: el workflow `.github/workflows/deploy.yml` construye y publica en `ghcr.io/urieljarethbusiness-cpu/agendamax`. Toma el tag por SHA del resumen del run y usalo en el stack (`:latest` no fuerza el re-pull en Swarm). El paquete de GHCR nace **privado**. Elige: - **Publico** (recomendado si el codigo no es sensible): GitHub > Packages > el paquete > Package settings > Change visibility > Public. El server hace pull sin credenciales. - **Privado**: en el server, `docker login ghcr.io -u ` con un PAT `read:packages`, y desplegar con `--with-registry-auth`. ## 2. A-record en SiteGround El DNS de consultoriae3.com lo sirve SiteGround. Site Tools > Domain > DNS Zone Editor > A: Type: A * Name: agendapro * Value: 157.173.205.217 Verifica: `Resolve-DnsName agendapro.consultoriae3.com -Type A` ## 3. Base de datos Necesita Postgres. Provisiona DB + rol dedicados (ESCRITURA, pide confirmacion): & "$S\New-E3Database.ps1" -AppName agendapro Crea la DB `agendapro` con owner `agendapro_app` y guarda la password en /root/dados_vps/dados_agendapro (root-only, nunca en git). ## 4. Preflight (lectura, no toca nada) ```powershell & "$S\Test-E3Preflight.ps1" -ProjectPath "H:\MegaSync\Proyectos\AgendaPro" -AppName agendapro -Subdomain agendapro ``` ## 5. Desplegar (ESCRITURA) ```powershell & "$S\Deploy-E3Stack.ps1" -StackFile "H:\MegaSync\Proyectos\AgendaPro\deploy\agendapro.yml" -AppName agendapro ``` Si el YAML lleva placeholders de secretos, pasalos al desplegar: ```powershell & "$S\Deploy-E3Stack.ps1" -StackFile "H:\MegaSync\Proyectos\AgendaPro\deploy\agendapro.yml" -AppName agendapro ` -Replace @{ '' = '...' } ``` ## 6. Verificar (lectura) ```powershell & "$S\Test-E3Service.ps1" -AppName agendapro -Subdomain agendapro ``` ## Rollback ```powershell & "$S\Invoke-E3Rollback.ps1" -AppName agendapro ```