ig-rudenko / cloud-storage

Облачное файловое хранилище с поддержкой drag&drop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Black Hole Cloud Storage

img_1.png


Используемые языки и фреймворки:

GOLANG JS GIN VUE.JS AXIOS

Используемые технологии:

vue.js vue.js mysql

Облачное файловое хранилище с поддержкой drag&drop

  • Frontend - Vue.js
  • Backend - Go
  • Database - MySQL

img.png

Конфигурация

Для настроки подключения к базе данных MySQL используются следующие переменные окружения

DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=black_hole
DB_USER=user
DB_PASS=password

Изменение секретного ключа для генерации JWT

SECRET_KEY=my-secret-key

В данный момент все файлы пользователей хранятся в локальной директории, указанной в переменной окружения

STORAGE_DIR=storage

Иерархия файлового хранилища:

  • storage/
    • < user-id >/
      • < files... >
    • < user-id >/
      • < files... >

Запуск

Для запуска через docker используем команду

docker compose up -d

Так как пользовательские данные хранятся локально, то при работе backend приложения в контейнере необходим bind mount директории в которой будут храниться файлы в контейнер.

Если переменная окружения STORAGE_DIR=storage, то в контейнере это папка /app/storage - это и будет корневая директория хранилища.

Создание исполняемого файла backend приложения:

go mod download
go build -v web/backend/cmd/app

или

go mod download
make

Документация

Swagger документация доступна по URL /api/swagger/index.html

img.png

About

Облачное файловое хранилище с поддержкой drag&drop


Languages

Language:Go 57.0%Language:Vue 24.5%Language:JavaScript 12.2%Language:CSS 2.9%Language:Dockerfile 2.8%Language:HTML 0.5%Language:Makefile 0.1%