Skip to content

SaySmokeGraf/filesave_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Filesave Server

Открытый проект простого сервера для сохранения файлов.

commits commit activity last commit release

contributors backender frontender

Python FastAPI JavaScript CSS HTML

О проекте

Данный проект сервера для сохранения файлов предназначен для самостоятельной развертки на удобной платформе и личного использования.

Содержание

  1. Функционал

    1. Бэкенд

    2. Фронтенд

    3. Связь бэкенда и фронтенда

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

  2. Использование

    1. Зависимости

    2. Порядок

  3. Роадмап разработки

Функционал

Бэкенд

Пишется на Python + FastAPI, БД - SQLite (SQLModel ORM).

  • Корень - перенаправляет на статические файлы фронтенда.
  • Файловое API - для взаимодействия с файлами пользователя. Требуют токена.
  • API аутентификации-авторизации - для входа на сервис. Возвращают JWT-токен. Содержат зависимости, используемые в файловом API для проверки токена.
  • Простейшие решения по безопасности.

Фронтенд

Пишется на JavaScript + CSS + HTML.

  • Страница с файловым менеджером - содержит базовый необходимый функционал для загрузки/скачивания/удаления файлов.
  • Страница для входа.
  • Сохранение токена в куки.
  • Редиректы, прогрессбары и уведомления для пользователя, связанные с его действиями и ответами от сервера.

Связь бэкенда и фронтенда

На данный момент представляет собой монолит (по техническим причинам), в дальнейшем планируется перенос в микросервисную архитектуру в отдельных Docker-контейнерах.

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

Стандартная OpenAPI (Swagger) документация от FastAPI при запущенном сервере.

Использование

Зависимости

  • Python 3.10+
  • Библиотеки из requirements.txt: pip install -r requirements.txt.
  • Рекомендуется OpenSSL для генерации ключей: openssl rand -hex 32.

Порядок

  1. Расположить папку с проектом в удобном месте.
  2. Настроить константы в скрипте настроек app/settings.py под нужды.
  3. Сгененрировать и расположить по местам секретные ключи.
  4. Запустить из корневой папки командой fastapi run.
  5. Использовать в браузере по адресу http://<ip>:8000/, где ip - либо localhost для доступа с того же устройства, либо IP сервера в локальной сети.

Роадмап разработки

  • v.1.0.0: Сервис для сохранения файлов на удаленный сервер.
    • v.0.1.0: Простейшее приложение.
      • Базовый каркас приложения.
      • v.0.0.1: Основной функционал.
      • v.0.0.2: Простейшая безопасность и удобство использования.
      • v.0.0.3: Модерация и регистрация.
      • Правки, QOL, тестирование и подготовка.
    • v.0.2.0: Простой сервис.
      • v.0.1.1: Переход в микросервисную архитектуру.
      • v.0.1.2: Администрирование.
      • v.0.1.3: Расширение функционала профиля пользователя.
      • Правки, QOL, тестирование и подготовка.
    • v.0.3.0: Большое обновление безопасности.
      • v.0.2.1: Изменение порядка взаимодействия с загружаемым файлом.
      • v.0.2.2: Защита файлов.
      • v.0.2.3: Более безопасное хранение и использование чувствительной информации.
      • Правки, QOL, тестирование и подготовка.
    • ...

About

Сервер для хранения файлов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors