Despliegue automatizado con GitHub Actions y Nanocl

Guía práctica para automatizar despliegues con GitHub Actions y Nanocl: crea pipelines CI/CD, construye y despliega con Docker y Nginx, y aplica buenas prácticas de seguridad y rendimiento.

7 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Aprende a automatizar tu despliegue con GitHub Actions y Nanocl. Esta guía práctica te muestra cómo configurar pipelines CI CD que construyen, prueban y despliegan tu aplicación con esfuerzo mínimo, desde repositorios en GitHub hasta servidores productivos con contenedores, todo manteniendo buenas prácticas de seguridad y rendimiento.

En Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, servicios de inteligencia de negocio y Power BI, automatización de procesos y agentes IA. Integramos CI CD con una visión de plataforma para que tus equipos desplieguen más rápido, con menos errores y sin interrumpir el servicio. Si buscas acelerar entregas y estandarizar tu operación, podemos ayudarte con automatización de procesos y con servicios cloud en AWS y Azure.

Requisitos previos para seguir este flujo: cuenta en GitHub, un proyecto contenedorizable como web estática o app web, un servidor dedicado o VPS, un dominio apuntando a ese servidor, Docker instalado en tu equipo y en el servidor, y Nanocl instalado en el servidor. Con esto podrás construir imágenes, probar localmente y desplegar con un archivo de estado declarativo.

Creación de imagen de contenedor para una web estática con Docusaurus. La idea es compilar el proyecto con Node y servir los artefactos con Nginx. La configuración típica de Nginx incluye escucha en el puerto 80, redirección de urls con barra final, compresión gzip, root apuntando a la carpeta de build, página 404 personalizada y try files para resolver rutas amigables. También se recomienda cachear archivos estáticos como css js imágenes fuentes y svg para mejorar el rendimiento.

Dockerfile con multi stage. Fase builder con node 22.11.0 alpine para instalar dependencias con npm install, copiar el código y ejecutar npm run build. Fase final con nginx 1.27.0 alpine slim para copiar el contenido de build a la ruta servida por Nginx y añadir la configuración de servidor. Este enfoque separa dependencias de build de las de ejecución y reduce el peso de la imagen final.

Prueba local de la imagen. Construye con docker build -t mi-imagen . y levanta con docker run -p 8080:80 mi-imagen. Accede a https://localhost:8080 y valida que la versión de producción responde correctamente y sirve los recursos estáticos sin errores.

Configuración de Nanocl. Instálalo en el servidor y, si necesitas acceso remoto a la API, habilita el daemon con certificado autofirmado en el puerto 9943 usando nanocl state apply -fs https://nr.next-hat.com/v0.16/sys/enable-remote-nanocld.yml. Exponer la API sin TLS no es recomendable por motivos de seguridad.

Secrets en GitHub para conexión segura. Crea los secretos NANOCL_HOST con https://tu-dominio:9943, NANOCL_CERT con el contenido del certificado cliente y NANOCL_CERT_KEY con la clave privada. Puedes inspeccionar y copiar estos materiales ejecutando en el servidor nanocl secret inspect cert.client.nanocl.io. Con esto tus workflows podrán autenticarse contra Nanocl sin filtrar credenciales.

Statefile de Nanocl. Es un manifiesto declarativo que define versiones, contenedores y recursos como reglas del proxy público. Un patrón común incluye un arg version para etiquetar la imagen, un cargo con el contenedor que apunta a ghcr o a tu registro y una regla ncproxy que publica el dominio en la red Public, opcionalmente con SSL configurado mediante un secreto de certificados. Coloca el Statefile en la raíz del repositorio para que los workflows lo encuentren fácilmente.

Workflow de build y publicación en GitHub Actions. Al hacer push a la rama master el pipeline ejecuta checkout, configura buildx, inicia sesión en ghcr, extrae versión desde package.json con jq -r .version package.json y construye y empuja la imagen con dos tags latest y la versión. Este control evita sobreescribir etiquetas ya existentes y mantiene un historial claro de releases.

Workflow de despliegue con Nanocl. Una vez completado el build anterior, el job de Deploy instala el cli de Nanocl, lee la versión del package.json y ejecuta nanocl state apply -ys Statefile.yml -- --version VERSION. El job usa las variables de entorno HOST CERT y CERT_KEY provenientes de secrets para firmar la conexión y aplicar cambios sin cortar servicio.

SSL público con Let s Encrypt. Puedes automatizar certificados válidos con nanocl state apply -fs https://nr.next-hat.com/v0.16/sys/certbot.yml -- --email tu-correo --domain tu-dominio. El proxy renovará certificados de forma periódica y servirá tráfico HTTPS en tu dominio.

Buenas prácticas para un pipeline robusto. Versiona artefactos con etiquetas inmutables, activa cachés de build para acelerar tiempos, valida la imagen localmente antes de publicar, usa entornos staging y producción, separa permisos mínimos en secretos y audita los workflows con revisiones de seguridad. En Q2BSTUDIO integramos CI CD con infraestructura como código, observabilidad, escaneo de vulnerabilidades y hardening, reforzando ciberseguridad y cumplimiento normativo. Si necesitas pentesting, gestión de identidades, SAST o DAST, nuestro equipo de ciberseguridad puede ayudarte a elevar tu postura defensiva.

Conclusión. Con GitHub Actions y Nanocl obtienes despliegues repetibles, rápidos y confiables, idóneos para productos de software a medida y aplicaciones a medida que exigen resiliencia y time to market corto. Si además quieres potenciar tu producto con inteligencia artificial, IA para empresas y agentes IA, o llevar tus datos a decisiones accionables con servicios inteligencia de negocio y Power BI, Q2BSTUDIO puede ser tu socio tecnológico de principio a fin.

¿Listo para dar el siguiente paso con CI CD y despliegues automatizados? Escríbenos y te ayudamos a diseñar un pipeline robusto, flexible y seguro, integrándolo con tus procesos, tu nube y tus objetivos de negocio.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat