Despliegue de FastAPI en Digital Ocean con Nginx y CI/CD

Guía detallada para desplegar FastAPI en Digital Ocean con Nginx, systemd y CI/CD con GitHub Actions, optimizando DevOps, seguridad y despliegues automáticos.

16 sept 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Despliegue de FastAPI en Digital Ocean con Nginx y CI/CD explicado paso a paso por Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud AWS y Azure.

Introducción y objetivos: este artículo guía desde la creación de un Droplet en Digital Ocean hasta la configuración de Nginx como reverse proxy, ejecución de FastAPI en segundo plano con systemd y automatización del despliegue con GitHub Actions. Es ideal para equipos que buscan implantar aplicaciones a medida y beneficiarse de prácticas de DevOps y seguridad.

Requisitos previos: una cuenta en Digital Ocean, una aplicación FastAPI en un repositorio GitHub y conocimientos básicos de línea de comandos y SSH. Si necesitas desarrollo de aplicaciones a medida o una solución personalizada visita nuestras soluciones de software a medida.

Parte 1 Creación del Droplet: en el panel de Digital Ocean crear un Droplet con Ubuntu 22.04 o 24.04 LTS. Elegir un plan acorde, región cercana y preferir autenticación por clave SSH en lugar de contraseña por seguridad. Tras crear el Droplet anotar la IP pública y acceder con ssh root@tu_droplet_ip.

Parte 2 Preparación del servidor: crear un usuario no root para desplegar la aplicación es buena práctica. Ejemplo de comandos: adduser deployer usermod -aG sudo deployer y copiar las claves SSH del root al nuevo usuario: rsync --archive --chown=deployer:deployer ~/.ssh /home/deployer luego desconectar y entrar como deployer ssh deployer@tu_droplet_ip. Actualizar el sistema con sudo apt update && sudo apt upgrade -y.

Instalación de dependencias: instalar Python y pip con sudo apt install python3-pip -y luego instalar pipenv con pip3 install pipenv. Instalar Nginx con sudo apt install nginx -y y configurar el firewall UFW permitiendo OpenSSH y Nginx Full: sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable.

Parte 3 Configurar Nginx como reverse proxy: crear un archivo en /etc/nginx/sites-available por ejemplo fastapi_app con una configuración que redirija el tráfico al puerto donde corre FastAPI. Un ejemplo del bloque server en formato texto es: server { listen 80; server_name tu_droplet_ip_o_dominio; location / { proxy_pass https://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } Habilitar la configuración con sudo ln -s /etc/nginx/sites-available/fastapi_app /etc/nginx/sites-enabled/fastapi_app comprobar sintaxis con sudo nginx -t y reiniciar nginx sudo systemctl restart nginx.

Parte 4 Despliegue manual de la app: clonar el repositorio en el servidor git clone https://github.com/tu_usuario/tu_repo.git /home/deployer/app cambiar al directorio cd /home/deployer/app instalar dependencias con pipenv pipenv install y probar ejecutando la app con Uvicorn pipenv run uvicorn main:app --host 0.0.0.0 --port 8000. Acceder desde el navegador a https://tu_droplet_ip para verificar que Nginx y FastAPI funcionan correctamente.

Parte 5 Ejecutar la app como servicio systemd: crear un servicio para ejecutar la aplicación en segundo plano, arrancar al iniciar y facilitar reinicios. Crear el archivo /etc/systemd/system/fastapi.service con contenido similar a: [Unit] Description=FastAPI Application After=network.target [Service] User=deployer Group=www-data WorkingDirectory=/home/deployer/app Environment=PATH=/home/deployer/.local/bin ExecStart=/usr/local/bin/pipenv run uvicorn main:app --host 0.0.0.0 --port 8000 [Install] WantedBy=multi-user.target Luego recargar demonio y habilitar servicio sudo systemctl daemon-reload sudo systemctl enable fastapi.service sudo systemctl start fastapi.service y comprobar estado con sudo systemctl status fastapi.service.

Parte 6 Automatizar despliegues con GitHub Actions CI CD: crear dos secretos en el repositorio GitHub desde Settings Secrets Actions: HOST con la IP del Droplet y SSH_PRIVATE_KEY con el contenido de la clave privada que coincide con la pública instalada en el servidor. Crear el workflow en .github/workflows/deploy.yml que, al hacer push a main, haga checkout del código y utilice una acción SSH para conectar al Droplet, hacer git pull, instalar dependencias con pipenv y reiniciar el servicio systemd. La acción appleboy/ssh-action permite ejecutar los comandos remotos y con ello lograr despliegues automáticos seguros.

Resumen del flujo CI CD: al hacer push a la rama main la Action SSH se conectará al servidor, actualizará el código, instalará nuevas dependencias y ejecutará sudo systemctl restart fastapi.service para aplicar los cambios sin intervención manual.

Buenas prácticas y seguridad: usar claves SSH, mantener el sistema y dependencias actualizadas, configurar certificados TLS con LetsEncrypt y certbot para servir sobre HTTPS, limitar accesos con firewall y revisar logs. Si necesitas auditoría o pruebas de seguridad profesionales revisa nuestros servicios de ciberseguridad y pentesting en Q2BSTUDIO ciberseguridad y pentesting.

Por qué elegir Q2BSTUDIO: ofrecemos desarrollo de software a medida, aplicaciones a medida, integración de inteligencia artificial para empresas, agentes IA, servicios cloud AWS y Azure, soluciones de inteligencia de negocio y Power BI. Combinamos experiencia en DevOps, seguridad y arquitectura cloud para desplegar aplicaciones FastAPI escalables y seguras. Para soluciones cloud revisa también nuestros servicios cloud AWS y Azure.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si quieres que te ayudemos a desplegar tu aplicación FastAPI o a diseñar un pipeline CI CD profesional contacta con Q2BSTUDIO y te acompañamos desde la arquitectura hasta la puesta en producción.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat