← Todos los proyectos
2026 · en producción

arnauserver.me

El servidor Linux que sirve esta web, administrado por mí de principio a fin

Una VM Ubuntu 24.04 en Azure con menos de 1 GB de RAM que aloja el portfolio, el blog, una status page pública y un panel de administración propio. Endurecida, monitorizada y con informes de seguridad diarios redactados por IA.

Encendido
—
IPs bloqueadas
—
Memoria en uso
—
Certificado TLS
—

Datos en vivo de /status.json · histórico en status.arnauserver.me

Web rápida y segura

nginx con TLS (renovación automática), HTTP/2 y HTML/CSS/JS precomprimidos en brotli y gzip mediante un hook post-commit de git: la portada de 60 KB viaja en ~12 KB.

CSP estricta, HSTS y demás cabeceras; un servidor por defecto que corta con 444 cualquier petición a un host desconocido y rechaza el handshake TLS si el SNI no es mío.

Rate limiting por IP y Web Vitals reales medidos con sendBeacon hacia un colector propio en Python.

Defensa activa

CrowdSec analiza los logs de nginx y SSH y bloquea en el cortafuegos (nftables), sumando la lista comunitaria con miles de IPs maliciosas. Migré desde fail2ban y lo cuento en el blog.

SSH solo con llave, sin root y con pocos intentos. Resolví un caso curioso: el NAT de la universidad compartía IPs con máquinas listadas como atacantes y me dejaba fuera.

Actualizaciones desatendidas con reinicio automático y auditoría diaria con Lynis.

Observabilidad

Status page pública que el propio servidor actualiza cada 5 minutos: disponibilidad, latencia e IPs bloqueadas.

Panel de administración privado con login por passkeys (WebAuthn, sin contraseñas): estado, seguridad, analítica, gasto de la API y acciones remotas tras una lista blanca con sudo.

Cada mañana Claude me resume por correo lo que ha pasado en seguridad, y cada lunes la salud general del sistema.

IA aplicada con control de costes

El chat «pregúntale a mi CV» de la portada usa la API de Claude con topes de gasto, límites por IP y caché del prompt, y solo responde sobre mi perfil.

Todos los microservicios corren aislados con systemd (DynamicUser, ProtectSystem, MemoryMax) para no comprometer una máquina tan pequeña.

Tecnologías

AzureUbuntu 24.04nginxLet's EncryptCrowdSecnftablessystemdPythonBashWebAuthnAPI de Claudebrotli

Más proyectos