Portfolio Website Using ORACLE OCI Infraestructure
Despliegue de Portafolio Profesional Full-Stack
🚀 Resumen del Proyecto
Despliegue de un portafolio web moderno, responsivo y seguro, montado sobre una arquitectura Cloud autogestionada. El sistema implementa un flujo completo de captura de datos en el frontend y procesamiento en el backend para la automatización de mensajería.
🛠️ Stack Tecnológico
- Frontend: HTML5, CSS3, Bootstrap 5.3.3 (Estilos adaptativos y modo oscuro dinámico).
- Backend: Python, FastAPI (Framework asíncrono de alto rendimiento), Pydantic (Validación de esquemas de datos).
- Servidor y Cloud: Oracle Cloud Infrastructure (OCI) (Instancia Compute Ubuntu Linux), Nginx (Servidor web y Proxy Inverso).
- Automatización de Mensajería: Protocolo SMTP integrado con
smtplibyemail.mime.
📝 Proceso de Desarrollo Paso a Paso
Paso 1: Configuración de la Infraestructura en la Nube
- Creación y aprovisionamiento de una máquina virtual Ubuntu en Oracle Cloud (OCI).
- Configuración de listas de seguridad del sistema (Firewall) abriendo puertos HTTP (
80) y HTTPS (443). - Acceso SSH cifrado mediante llaves criptográficas privadas para la gestión del servidor.
Paso 2: Construcción de la API en el Backend
- Desarrollo de una API REST con FastAPI implementando el endpoint seguro
POST /api/contact. - Definición de esquemas de datos estructurados con Pydantic Models (
ContactForm) para garantizar la recepción estricta de tipos de datos (EmailStrystr). - Programación del motor de mensajería asíncrona mediante un socket SMTP conectado al puerto TLS de salida.
Paso 3: Frontend e Integración Asíncrona (AJAX)
- Maquetación responsiva utilizando componentes interactivos de Bootstrap.
- Implementación de JavaScript moderno mediante la Fetch API (
async/await) para transferir los datos del formulario en formato JSON nativo sin recargar la página (e.preventDefault()). - Desarrollo de scripts dinámicos para la actualización automatizada del año de derechos de autor y conmutación de clases CSS para el tema visual.
Paso 4: Despliegue en Producción y Proxy Inverso
- Configuración de la carpeta raíz de producción en
/var/www/portfolio-frontendpara el servicio de archivos estáticos. - Configuración de Nginx actuando como Proxy Inverso para mapear el tráfico público del dominio hacia la aplicación local de FastAPI gestionada por Uvicorn en el puerto interno
8000.
🛡️ Protocolos de Seguridad e Infraestructura Robustecida
- Políticas CORS (Cross-Origin Resource Sharing): Configuración estricta de Middlewares en FastAPI para restringir los orígenes, permitiendo peticiones únicamente desde el dominio oficial en producción (
allow_origins). - Aislamiento de Credenciales (Variables de Entorno): Uso de archivos
.envprotegidos para encapsular datos críticos (servidor SMTP, contraseñas de aplicación). Ninguna credencial está expuesta directamente en el código fuente. - Gestión de Procesos con Systemd: Creación de un servicio nativo de Linux (
portfolio-backend.service) con directivasEnvironmentFiley políticas de resiliencia ante caídas de servicio (Restart=always). - Validación de Capas contra Inyecciones: Sanitización y validación automática de datos de entrada mediante Pydantic en el Backend, mitigando el riesgo de payloads maliciosos.