FFHS: Soberanía de datos con mi propio Cloud Storage
¿Qué es FFHS?
FFHS (Free File Host System) es un sistema de hosting de archivos open source diseñado para ser desplegado en tu propia infraestructura. Funciona como un "bucket" privado y soberano: te permite subir archivos, generar enlaces de compartición y gestionar tu almacenamiento sin depender de proveedores externos como Google Drive, Dropbox o S3.
Lo puedes ver en funcionamiento en ffhs.hgccarlos.es.
¿Por qué construirlo?
La motivación principal fue la soberanía de datos. Necesitaba una forma rápida de compartir archivos con URLs limpias, sin anuncios, sin límites de almacenamiento impuestos por un tercero y con control total sobre dónde están mis datos.
Las alternativas existentes (Nextcloud, Seafile, Minio…) son potentes pero tienen una curva de configuración considerable. Quería algo mucho más simple: sube y comparte, sin más.
Características principales
- Subida de archivos: Interfaz limpia para subir cualquier tipo de archivo.
- URLs directas: Cada archivo obtiene una URL permanente y limpia para compartir.
- Gestión de archivos: Visualiza, descarga y elimina los archivos subidos.
- Ligero: Sin dependencias pesadas, pensado para correr en un VPS de gama baja.
- Open source: El código es libre y puede ser modificado y redistribuido.
- Compatible con Coolify: Se despliega con un solo clic si usas Coolify como plataforma de auto-hosting.
Stack técnico
El proyecto utiliza un stack sencillo y moderno:
| Capa | Tecnología | |------|------------| | Frontend | Next.js, TypeScript, Tailwind CSS | | Backend | Spring Boot | | Almacenamiento | Sistema de archivos local / configurable | | Despliegue | Docker + Coolify |
La decisión de usar Next.js para el frontend y una potente API en Spring Boot permitió separar responsabilidades: un backend robusto con tipado fuerte y un frontend moderno y ágil.
Despliegue en tu VPS
El despliegue está pensado para ser lo más sencillo posible:
Con Coolify (recomendado)
- Añade el repositorio como nueva aplicación en Coolify.
- Configura las variables de entorno (directorio de almacenamiento, clave de acceso…).
- Despliega con un clic.
En cuestión de minutos tienes tu propio sistema de hosting de archivos funcionando.
Lecciones aprendidas
Simplicidad por encima de todo
La tentación al construir este tipo de herramientas es añadir features indefinidamente: usuarios, permisos, previsualizaciones, versiones de archivos… Pero el valor de FFHS es precisamente que hace una cosa y la hace bien: alojar y compartir archivos de forma rápida y privada.
Docker como unidad de despliegue
Tener la separación backend/frontend bien definida pero desplegable vía Docker redujo significativamente la complejidad operativa. Para un proyecto de auto-hosting, esto es clave.
Conclusión
FFHS es un proyecto pequeño pero muy útil en el día a día. Si eres desarrollador y usas un VPS propio, te recomiendo probarlo. El código fuente está disponible para que lo adaptes a tus necesidades.