Gintónico es un sistema de alojamiento de archivos en la nube (Arquitectura cliente/servidor). Está implementado con una de las mejores prácticas de seguridad en la actualidad. Esta disponible para Windows, MacOS y Linux, y el cliente dispone de una interfaz gráfica usable, simple y eficiente.
Siga estas instrucciones para obtener una copia de este proyecto funcionando correctamente en tu sistema operativo.
Para empezar es necesario que tanto el lenguaje (Golang) esté bien instalado como los paths bien configurados (Depende de cada sistema operativo).
Una vez dispongamos de los medios para poder compilar y ejecutar Go necesitaremos descargarnos las librerías que se usan en el proyecto:
Ejecutar este comando tanto en la carpeta servidor como en el cliente.
$ go get
Ahora necesitaremos descargarnos NW.js para poder ejecutar y poner en funcionamiento la interfaz gráfica del cliente de Gintónico:
Descargar el correspondiente a nuestro sistema operativo y seleccionar la versión NORMAL
Una vez tengamos NW para el sistema que necesitemos, lo copiaremos dentro del cliente en una carpeta llamada "nwjs".
Para compilar el proyecto Gintónico necesitamos ejecutar el comando:
Ejecutar este comando tanto en la carpeta servidor como en el cliente.
$ go build
Una vez esté todo compilado, podremos ejecutar el cliente con NW.js. Para hacer esto (suponiendo que el ejecutable de NW está dentro de una carpeta llamada nwjs), habrá que ejecutar este comando:
Windows:
.\nwjs\nw.exe .
MacOS:
./nwjs/nwjs.app/Contents/MacOS/nwjs .
Linux:
./nwjs/nw .
Por último, para poner en funcionamiento el servidor, solo habrá que iniciar el ejecutable que se habrá generado al ejecutar el comando go build anteriormente.
MacOS y Linux:
./servidor
Windows:
.\servidor.exe
A continuación se muestra una pequeña y rápida demo:
Mínimas:
- Arquitectura cliente servidor.
- Almacenamiento y recuperación de ficheros (esquemas de almacenamiento).
- Sistema de autenticación seguro.
- Cifrado de fichero para su almacenamiento (contraseñas generadas en el servidor).
- Lógica de aplicación mínima para su funcionamiento (crear usuarios, login, listar ficheros, subir ficheros, descargar ficheros, eliminar ficheros).
Opcionales:
- Interfaz de usuario en el cliente.
- Esquema de almacenamiento incremental.
- Eliminación de bloques duplicados en el servidor.
- Comunicación entre cliente y servidor (comunicación segura, mecanismos de identificación ...).
- Autenticación segura y fiable con:
- Doble factor de autenticación.
- Protección de contraseñas.
- Token de sesión.
- Auditar/monitorizar acciones/eventos en el sistema.
- GoWD - Interfaz Gráfica utilizada
- Mux - Manejador de rutas HTTP
- HTTPS Certs - Gestor de certificados HTTPS
- JWT Token - Implementación de JSON Web Tokens
Puedes ver también la lista de los contribuidores que han participado en este proyecto.
Este proyecto está bajo la licencia GNU GPL v3 - revisa LICENSE para ver más detalles.