🐳 Docker ☁️ Linode ⚙️ ASP.NET Core 🏗️ MVC 🔒 HTTPS 🌐 Nginx 🛡️ Let's Encrypt

🚀 Proyecto Final

Despliegue de Aplicación MVC en Contenedor Docker sobre Infraestructura Cloud con Linode

✅ Contenedor corriendo ASP.NET Core 8.0
Tecnología
ASP.NET Core 8
Patrón
MVC
Contenedor
Docker
Cloud
Linode (Akamai)
Tecnologías utilizadas

Stack completo del proyecto final

🏗️
ASP.NET Core MVC

Framework de Microsoft para construir aplicaciones web usando el patrón Modelo-Vista-Controlador con C#.

🐳
Docker

Plataforma de contenedores que empaqueta la aplicación con todas sus dependencias para correr en cualquier entorno.

📦
Docker Hub

Registro de imágenes Docker en la nube, usado para almacenar y distribuir la imagen del proyecto.

☁️
Linode (Akamai)

Proveedor de infraestructura cloud donde se despliega y ejecuta el contenedor Docker en un servidor Linux.

🌐
Nginx

Servidor web usado como proxy inverso que redirige el tráfico HTTPS al contenedor Docker corriendo en el puerto 8080.

🔒
Let's Encrypt

Autoridad certificadora gratuita que emite certificados SSL/TLS para habilitar HTTPS en el dominio del proyecto.

🌍
No-IP DDNS

Servicio de DNS dinámico gratuito que asigna el dominio proyectomvc.ddns.net a la IP pública del servidor.

Flujo del despliegue

Cómo se construyó y desplegó este proyecto

1️⃣ Crear aplicación MVC

Aplicación web con patrón Modelo-Vista-Controlador en ASP.NET Core 8 usando Visual Studio.

2️⃣ Escribir el Dockerfile

Archivo de instrucciones que define cómo construir la imagen Docker con un multi-stage build.

3️⃣ Construir la imagen

Ejecutar docker build para generar la imagen optimizada de la aplicación.

4️⃣ Subir a Docker Hub

Publicar la imagen en Docker Hub con docker push para que esté disponible en la nube.

5️⃣ Configurar servidor Linode

Crear una instancia Linux en Linode e instalar Docker para poder ejecutar contenedores.

6️⃣ Desplegar en producción

Ejecutar docker pull y docker run en el servidor para poner la app en línea.

7️⃣ Dominio con No-IP DDNS

Registrar el hostname proyectomvc.ddns.net en No-IP apuntando a la IP pública del servidor Linode.

8️⃣ Configurar Nginx como proxy

Instalar Nginx y configurarlo como proxy inverso para redirigir el tráfico del puerto 80/443 al contenedor en el puerto 8080.

9️⃣ SSL con Let's Encrypt

Usar Certbot para obtener e instalar un certificado SSL gratuito, habilitando HTTPS en proyectomvc.ddns.net.