Многопользовательское файловое хранилище с веб-интерфейсом.
Аналог Google Drive, позволяющий безопасно хранить, искать и управлять файлами и папками.
- 🔐 Регистрация и аутентификация пользователей
- 📤 Загрузка и скачивание файлов
- 🗑 Удаление файлов и папок
- 📂 Создание папок и вложенных директорий
- 🔎 Поиск файлов по названию
- ✏️ Перемещение и переименование файлов/папок
- 👀 Просмотр содержимого папок
- Java 21, Spring Boot, Spring Security, Spring Data JPA
- Liquibase (миграции БД)
- MapStruct (маппинг DTO ↔ Entity)
- Swagger / OpenAPI (документация API)
- PostgreSQL – реляционная база данных
- MinIO – объектное S3-совместимое хранилище
- Redis – кеш и хранение сессий
- JUnit 5, Testcontainers (интеграционные и модульные тесты)
- Docker + Docker Compose для локального запуска и деплоя
- Backend на Spring Boot взаимодействует с PostgreSQL, MinIO и Redis.
- Frontend (React SPA) общается с API через REST.
- Все сервисы поднимаются в Docker-контейнерах.
ru.controller- REST контроллерыru.service- бизнес-логикаru.entity- модели данныхru.repository- доступ к базе данныхru.config- настройки Spring компонентовru.exception- обработка исключенийru.dto- объекты для передачи данныхru.docs- документация API (Swagger)ru.util- утилитарные классыru.security- классы безопасности
POST /api/auth/sign-up- регистрация нового пользователяPOST /api/auth/sign-in- вход пользователя в системуPOST /api/auth/sign-out- выход из системыGET /api/user/me- информация о текущем пользователе
GET /api/directory?path={path}- получение содержимого папкиPOST /api/directory?path={path}- создание пустой папки
GET /api/resource?path={path}- получение информации о файле/папкеPOST /api/resource?path={path}- загрузка файла/папкиDELETE /api/resource?path={path}- удаление файла/папкиGET /api/resource/download?path={path}- скачивание файла/папки(zip)GET /api/resource/move?from={from}&to={to}- перемещение файла/папкиGET /api/resource/search?query={query}- поиск файлов и папок по запросу
- Java 21
- Docker (28.3.3) и Docker Compose (2.39.2)
- Maven 4.0.0
-
Соберите проект:
./mvnw clean package -DskipTests -
Запустите приложение с помощью Docker Compose:
docker-compose up -d -
Приложение будет доступно по адресу: http://localhost:8080 Frontend интерфейс: http://localhost
🚀Деплой доступен по адресу http://51.250.20.172
-
Запустите необходимые сервисы через Docker Compose:
docker-compose up -d postgres redis minio -
Запустите Spring Boot приложение:
./mvnw spring-boot:run
Основные настройки находятся в файлах:
application.properties- настройки для локальной разработкиapplication-docker.properties- настройки для запуска в Docker
Проект содержит тесты для основной функциональности:
UserTest- тестирование функций авторизацииStorageTest- тестирование операций с файлами
Для запуска тестов используйте:
./mvnw test