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 & ent (ORM)
- HTML/CSS y JavaScript
- React / React Router / Bootstrap
- Redis & MySQL
- Docker y Docker Compose (Dockerfile, Env Variables, Docker Networks)
- REST API
La instalación de tiene 2 opciones para su despliegue:
- Utilizando Docker Compose, que despliega un contenedor de GOSF y otro de MySQL y Redis (Ya configurados)
- 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)
- Docker & Docker Compose (Solo instalación 1)
- Go (Solo instalación 2)
- MySQL (Solo instalación 2)
- Redis (Solo instalación 2)
Como configurar los pre-requisitos aquí.
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 up -d
- Dentro del volumen del contenedor, se encuentra el archivo de configuración
config.json
que debe ser modificado para que se ajuste a las necesidades de su sistema
# gosf-data es el volumen del contenedor
# Revisar el config_example.json como base para la configuración
nano gosf-data/config/config.json
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;