nander
Un gestor de archivos para tu propio servidor, desde el navegador.
- Pregunta
- ¿Puede un gestor de archivos autoalojado parecerse a Finder dentro del navegador, incluido arrastrar archivos al escritorio?
- Resultado
- Casi. Arrastrar dentro y fuera, vistas previas, enlaces para compartir y un espacio aislado por usuario. Arrastrar al escritorio solo funciona en navegadores Chromium. Es un límite del navegador y la documentación lo explica.
Qué hace
nander es un gestor de archivos que instalas en tu propio servidor y usas desde cualquier navegador. Le indicas una carpeta, creas usuarios y cada uno ve solo su parte.
- Arrastrar en los dos sentidos. Suelta archivos o carpetas enteras desde el escritorio para subirlos, con su estructura de carpetas. Arrastra un archivo del navegador al escritorio para descargarlo.
- Vistas previas de imágenes (con visor a pantalla completa), vídeo y audio en los que se puede avanzar, PDF, Markdown renderizado y código fuente con resaltado de sintaxis, que se puede editar y guardar ahí mismo.
- Comprimir y descomprimir desde la interfaz. Extrae
.zip,.tary.tar.gz. - Enlaces para compartir un archivo, con contraseña y fecha de caducidad opcionales. Quien lo recibe no necesita cuenta.
- Papelera, para poder deshacer un borrado.
- Usuarios y permisos: cada usuario queda encerrado en una carpeta, con permisos separados para subir, borrar y compartir. Los administradores lo gestionan todo desde la misma interfaz.
- Búsqueda, vista de cuadrícula y de lista, selección múltiple, cortar, copiar y pegar, y atajos de teclado.
Disponibilidad
El código todavía no es público. Funciona como contenedor de Docker, con una cuenta de administrador que se crea al primer arranque. Si quieres probarlo, escribe a [email protected].
Cómo está hecho
- Un único binario estático de Go, con SQLite escrito en Go, en una imagen de Docker de unos 20 MB que no se ejecuta como root.
- Todas las rutas que reciben una ruta de archivo la resuelven componente a componente y vuelven a comprobar cada enlace simbólico contra la carpeta del usuario. Un
..o un enlace que apunte fuera se rechaza en el servidor, envíe lo que envíe el navegador. - Al descomprimir, se comprueba cada entrada antes de escribir nada («zip slip»).
- Las contraseñas pasan por SHA-256 y después por bcrypt, para que las frases largas no se corten sin avisar a los 72 bytes.
- Los enlaces para compartir usan un token aleatorio de 128 bits, y el servidor comprueba la caducidad en cada acceso.
Límites conocidos
- Arrastrar archivos al escritorio solo funciona en Chrome, Edge y Brave. Firefox y Safari no lo permiten, así que ahí aparece un botón de descarga.
- No genera miniaturas de vídeo. Haría falta ffmpeg, y lo dejamos fuera para que la imagen siga siendo pequeña. Los vídeos se reproducen igualmente.
- Los enlaces para compartir sirven para archivos sueltos, no para carpetas.
- El espacio en disco solo se muestra en Linux.