Actualizar API o tablet en Coolify
Esta guía sirve para una instalación existente creada como Docker Image. Para crear los recursos desde cero, sigue Despliegue inicial.
Elegir qué actualizar
| Cambio que necesitas | Recurso |
|---|---|
| Nuevos endpoints, extracción o firma PAdES | api |
| Visor, captura de tinta o pantalla de espera | tablet |
| Contenido de estas guías | docs, reconstruido desde docs.Dockerfile |
| Procedimiento AL o configuración de la app | Extensión BC, compilada y publicada en el tenant |
Actualizar la tablet no actualiza la API. La versión Docker y la versión AL son independientes.
Firma visible con certificado: 0.2.16
Las versiones necesarias para la nueva vista previa y la firma visible con certificado son:
| Componente | Versión / referencia |
|---|---|
| API | ghcr.io/jdmarquezdev/bc-pdf-sign-api:0.2.16 |
| Tablet | ghcr.io/jdmarquezdev/bc-pdf-sign-tablet:0.2.16 |
| Fuentes AL y visor incluido | 1.1.0.0, del tag Git v0.2.16 |
| Contrato OpenAPI estático | 2.2.0; las rutas HTTP permanecen en /v1/ |
- Confirma que la ejecución de
v0.2.16de Build and Push Docker Images ha terminado correctamente sus dos trabajos. La existencia del tag Git no garantiza que las imágenes estén disponibles. - Guarda las referencias del despliegue actual y actualiza/redespliega la API en Coolify como se describe más abajo. Esta versión añade cero migraciones de base de datos y cero variables de entorno en ejecución; se mantienen las credenciales y el almacenamiento existentes.
- Incorpora los diez objetos AL actuales, los recursos
controladdin/yviewer/startup.jsa tu extensión existente. Sigue la integración manual completa; compila contra los símbolos del tenant, publica en sandbox y valida el nuevo flujo antes de producción. Las llamadas AL directas existentes siguen siendo compatibles y generan firmas invisibles si no se proporciona una posición. - Abre Sign PDF, elige un alias de certificado, usa Upload PDF, coloca el rectángulo y pulsa Sign and Download. Comprueba el titular, la fecha y hora UTC y el emisor mostrados, además de la validación criptográfica en un lector independiente. El recuadro visible requiere actualizar tanto el backend como AL.
- Redespliega la imagen tablet a
0.2.16si quieres mantener una versión común. La vista previa de BC está integrada en la extensión AL; actualizar solo la tablet no la incorpora. - Reconstruye/redespliega el recurso de documentación desde el commit de
mainque contiene estas guías, usandodocs.Dockerfile. El tagv0.2.16conserva la documentación original; las correcciones posteriores en español están enmainy en el archivo estático de documentación actualizado de la versión de GitHub. Ese recurso también ofrece el paquete AL de referencia compilado. El repositorio no tiene un flujo de publicación de Pages/documentación: GitHub Actions publica únicamente imágenes API/tablet.
El archivo compilado Baltoya PDF Signing 1.1.0.0 de la versión es un paquete de referencia verificado. Si sigues la integración por copia a tu extensión, compila tu extensión después de incorporar las fuentes y recursos para evitar instalar una segunda copia de los mismos objetos. Publicar la versión no actualiza Coolify ni Business Central automáticamente. La página conserva los datos de reintento mientras permanece abierta; las integraciones de negocio deben guardar el PDF original, la selección, la huella del certificado, el alias y OperationId para recuperar la operación después de cerrarla.
1. Confirmar que la imagen existe
El workflow .github/workflows/build-and-push.yml publica imágenes de API y tablet cuando se envía un tag Git v*.*.*. Un push a main por sí solo no publica imágenes; este workflow tampoco publica MkDocs ni el paquete AL.
Ejemplo verificado el 3 de octubre de 2026: la ejecución de publicación de 0.2.14 terminó correctamente y publicó:
ghcr.io/jdmarquezdev/bc-pdf-sign-api:0.2.14
ghcr.io/jdmarquezdev/bc-pdf-sign-tablet:0.2.14
La resolución automática de emisores está disponible desde 0.2.14 y las descripciones de esquema de Swagger desde 0.2.15. Para la vista previa y firma visible, selecciona 0.2.16 junto con los objetos/recursos AL 1.1.0.0, una vez confirmados sus jobs de publicación. Usa un tag fijo para identificar lo desplegado. La existencia del tag no demuestra que Coolify lo esté ejecutando.
2. Preparar acceso si GHCR es privado
Coolify necesita poder descargar la imagen desde cada servidor de despliegue:
- En GitHub, entra desde tu avatar en Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic).
- Crea un PAT clásico con
read:packages; el usuario debe tener acceso al paquete. Autoriza SSO si la organización lo exige. - Conéctate por SSH al servidor con el mismo usuario que utiliza Coolify.
- Ejecuta el login e introduce el PAT en el prompt Password:
docker login ghcr.io --username jdmarquezdev
Usa tu usuario GitHub si es distinto y repite el login en cada servidor donde se desplegará. Docker guarda las credenciales para ese usuario. No pegues el PAT en el comando, en el chat, en el repositorio ni en las variables de la aplicación.
Esto es distinto del permiso de GitHub Actions para publicar. El workflow usa GITHUB_TOKEN con packages: write. Si un paquete existente rechaza la publicación, revisa Package settings → Manage Actions access y concede al repositorio acceso Write.
Referencias oficiales: registries en Coolify, GitHub Container Registry y publicación con GitHub Actions.
3. Cambiar la imagen y redesplegar
Antes de una actualización de API con migraciones, guarda una copia recuperable de PostgreSQL y del volumen de PDFs. Anota la imagen anterior.
En el recurso existente de Coolify:
- Abre Configuration → General → Docker Registry.
- En Docker Image, introduce el repositorio, por ejemplo
ghcr.io/jdmarquezdev/bc-pdf-sign-api. - En Docker Image Tag or Hash, introduce
0.2.16para esta actualización cuando ambos jobs de publicación hayan terminado correctamente, o el tag fijo publicado que hayas elegido. - Pulsa Save.
- Pulsa Redeploy y revisa el resultado.
Para la tablet, repite con ghcr.io/jdmarquezdev/bc-pdf-sign-tablet. Con Docker Image, Coolify descarga la imagen; no clona ni compila el repositorio. Guía oficial.
Si tu recurso se creó desde Git/Dockerfile, actualiza la referencia de código y reconstruye esa fuente. Cambiar un tag de GHCR no modifica un recurso que compila desde Git.
4. Confirmar el resultado
- API: revisa el despliegue y comprueba
GET /health; si Swagger está habilitado, comprueba/swagger/v1/swagger.jsony las descripciones decertificateBase64/certificateChainBase64, además de las rutas. - Tablet: abre la PWA, usa Comprobar actualización en espera y confirma la versión visible. No borres datos del sitio: perderías la activación.
- Firma BC: abre Sign PDF en el sandbox y firma un documento de prueba con un alias autorizado.
Las migraciones EF Core se ejecutan al arrancar la API. Volver a una imagen anterior no revierte la base de datos; una recuperación de esquema puede necesitar restaurar un backup compatible.
Para UANATACA CA1 2021, actualizar/redesplegar la API basta para tener CA1 2021 y ROOT 2016 incluidos: no subas emisores, no añadas variables nuevas y no cambies BC por esta corrección. Después, crea una operación nueva con el PDF original para generar un PDF con los intermedios; los resultados anteriores no se reescriben. Comprueba por separado los detalles del lector: cadena completa no garantiza confianza y el perfil continúa B-B, sin TSA ni evidencia de revocación/LT. No es necesario actualizar la tablet para cambiar la resolución de emisores o el Swagger de la API.
Si falla
| Síntoma | Revisar |
|---|---|
unauthorized al descargar |
PAT clásico, acceso al paquete, SSO y login del usuario SSH correcto en ese servidor |
manifest unknown o tag inexistente |
Nombre del repositorio, tag elegido y publicación correcta de ambos jobs |
| La API no arranca | Log de migraciones, hostname PostgreSQL y permisos de /app/storage |
| No aparecen endpoints nuevos | Recurso API, imagen seleccionada, Save y Redeploy completados |
| La tablet muestra otra versión | Recurso tablet y actualización PWA; esperar a que termine el documento activo |
| Las guías siguen antiguas | Redesplegar el recurso docs desde la referencia que contiene los cambios |
Continúa con Configuración o Errores de integración según el punto que falle.