Данный проект сервера для сохранения файлов предназначен для самостоятельной развертки на удобной платформе и личного использования.
Пишется на 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.
- Расположить папку с проектом в удобном месте.
- Настроить константы в скрипте настроек
app/settings.pyпод нужды. - Сгененрировать и расположить по местам секретные ключи.
- Запустить из корневой папки командой
fastapi run. - Использовать в браузере по адресу
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, тестирование и подготовка.
- ...
- v.0.1.0: Простейшее приложение.