GOSF es un servidor de archivos que permite compartir archivos entre usuario de forma sencilla y segura, de forma pública o privada.
- Autenticación de usuarios con JWT Token
- Cantidad de tiempo de expiración configurable
- Cantidad de Tokens por usuario configurable (cantidad sesiones activas)
- Subir, descargar, eliminar y modificar archivos de forma sencilla
- Compartir archivos de forma pública o privada, siempre y cuando el usuario esté autenticado
- Control de acceso a los archivos (solo el usuario que subió el archivo puede modificarlo o eliminarlo)
- Altamente configurable, se puede configurar:
- El puerto en el que se ejecuta el servidor
- La ruta en la que se guardan los archivos
- La ruta en la que se guardan los logs
- Se pueden modificar la características de las conexiones a la base de datos de Redis y MySQL (host, puerto, usuario, contraseña, etc)
- Go & Echo Framework
- HTML/CSS y JavaScript
- React / React Router
- Redis & MySQL
- Docker y Docker Compose
- REST API
La instalación de tiene 2 opciones para su despliegue:
- Como binario que se ejecuta en el sistema operativo y se conecta a una base de datos MySQL y Redis (Previamente instaladas y configuradas por el usuario)
- Utilizando Docker Compose, que despliega un contenedor de GOSF y otro de MySQL y Redis (Ya configurados)
- Go (Solo instalación 1)
- Docker & Docker Compose (Solo instalación 2)
- MySQL (Solo instalación 1)
- Redis (Solo instalación 1)
Como configurar los pre-requisitos aquí.
Para iniciar basta con ejecutar el binario (con las 2 base de datos corriendo)
Utilizando el binario pre-compilado:
- Clonar el repositorio
git clone https://github.com/Joacohbc/gosfv2; cd ./gosfv2;
- Ejecutar el binario pre-compilado (./gosfv2) y le indicio que utilice el archivo de configuración ./config.json
# Linux (64 bits)
./bin/gosfV2-64.bin -config ./config.json;
# Linux (32 bits)
./bin/gosfV2-32.bin -config ./config.json;
# Windows
./bin/gosfV2.exe -config ./config.json;
Si se quiere compilar el binario, se debe ejecutar el siguiente comando:
- Clonar el repositorio
git clone https://github.com/Joacohbc/gosfv2; cd ./gosfv2;
- Obtener todas las dependencias indicadas en el go.mod
go get ./src;
Compilar el código fuente
go build -o ./gosfv2 ./src;
- Ejecutar el binario anteriormente compilado (./gosfv2) y le indicio que utilice el archivo de configuración ./config.json
./gosfv2 -config ./config.json;
Para iniciar basta con "ejecutar" el docker-compose.yml.
Por defecto el servicio corre en el puerto 80, para cambiar esto basta con modificar el puerto que se expone en el config.env. Ademas se puede cambiar otros parámetros de configuración del servicio (como la Volume path, y versiones de Tags, etc) en el mismo archivo.
- Clonar el repositorio
git clone https://github.com/Joacohbc/gosfv2; cd ./gosfv2;
- Crear los contenedores
docker compose build --no-cache
- Iniciar los contenedores
docker compose --env-file config.env up