Skip to content

OpenDisk — минималистичное облачное файловое хранилище на Django с поддержкой вложенных папок, загрузки и поиска файлов.

Notifications You must be signed in to change notification settings

nonsess/open-disk

Repository files navigation

OpenDisk — облачное файловое хранилище

OpenDisk - это веб-приложение для хранения и управления файлами, построенное на Django. Поддерживает вложенную структуру папок, загрузку и скачивание файлов, поиск и базовые операции с файловой системой.

Технологии

Django PostgreSQL MinIO Redis Docker Python

Локальный запуск

  1. Убедитесь, что установлены Docker и Docker Compose.
  2. Склонируйте репозиторий:
    git clone https://github.com/nonsess/open-disk.git
    cd open-disk
  3. Создайте файл .env на основе .env.example и укажите свои значения (если нужно).
  4. Запустите приложение:
    docker compose up --build
  5. Приложение будет доступно по адресу: http://localhost:8000

Запуск тестов

Тесты написаны с использованием стандартного фреймворка unittest и запускаются внутри контейнера:

# Запустить все тесты
docker-compose exec web python manage.py test

# Запустить тесты конкретного приложения
docker-compose exec web python manage.py test storage
docker-compose exec web python manage.py test accounts

# Запустить с подробным выводом
docker-compose exec web python manage.py test -v 2

Для проверки покрытия кода тестами:

# Установите coverage (если ещё не установлено)
docker-compose exec web pip install coverage

# Запустите тесты с покрытием
docker-compose exec web coverage run --source='.' manage.py test

# Посмотрите отчёт
docker-compose exec web coverage report -m

Структура проекта

  • accounts: регистрация и аутентификация пользователей
  • storage: основная логика работы с файлами и папками
  • config: настройки Django
  • templates: базовые шаблоны интерфейса

Возможности

  • Регистрация и вход в систему
  • Создание, переименование и удаление папок
  • Загрузка файлов с сохранением структуры каталогов
  • Поиск файлов по имени
  • Скачивание файлов
  • Валидация имён файлов и папок
  • Защита от несанкционированного доступа к чужим данным

Безопасность

  • Пользователи могут работать только со своими файлами и папками
  • Все операции с файлами проходят через авторизованные представления
  • Имена файлов и папок валидируются на наличие недопустимых символов
  • Пароли хранятся в зашифрованном виде

Лицензия

Проект распространяется под лицензией MIT.

About

OpenDisk — минималистичное облачное файловое хранилище на Django с поддержкой вложенных папок, загрузки и поиска файлов.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published