Увидел свет релиз Seafile, открытой платформы для создания сервиса облачного хранения данных, напоминающего по своей сути Dropbox, но отличающегося возможностью развёртывания на собственном подконтрольном оборудовании. Код проекта написан на языке Python и распространяется под лицензией GPLv3, для хранения метаданных используется SQLite. Кроме серверной части и клиента для синхронизации файлов подготовлена реализация web-интерфейса SeaHub и мобильного клиентаSeadroid для платформы Android.
Помимо базовых функций хранения на удалённом сервере и обеспечения синхронизации данных между компьютерами, Seafile предоставляет гибкие возможности по организации совместной работы с контентом. Для удобства совместной работы поддерживается создание рабочих областей, в которых члены группы могут размещать произвольную информацию, интересную для участников группы. Наборы файлов могут объединяться в библиотеки, к которым может открываться доступ для отдельных пользователей или групп, а также публичный доступ. Для отслеживания изменения файлов в областях совместного доступа, предусмотрена возможность отправки уведомлений членам группы.
Каждая библиотека воспринимается как отдельное хранилище и может синхронизироваться между машинами пользователя по отдельности. Клиентская часть поддерживает обеспечение синхронизации данных между локальной директорией и определённой библиотекой в облачном хранилище. В web-интерфейсе поддерживается функция предварительного просмотра различных типов файлов, возможность обсуждения файлов с участниками группы, простые функции ведения списков задач и управления проектами.
Каждая библиотека в хранилище представлена в форме, напоминающей Git-репозиторий. Данная особенность даёт возможность использования версионного контроля, в том числе поддержку доступа к прошлым редакциям хранимого контента, возможность отследить все внесённые изменения (кто, когда и что менял), вернуть прошлое состояние файла или восстановить случайно удалённый файл. Для обеспечения конфиденциальности данных возможно шифрование на стадии до отправки информации на сервер (администрация сервера не сможет просмотреть содержимое, не зная пароля). Передача данных между клиентом и сервером также может вестись с использованием шифрования.
В основе Seafile лежат технологии, применяемые в системе управления исходными текстами Git. При этом Seafile не зависит от Git и самостоятельно реализует нужные методы, которые упрощены и переработаны для выполнения задач автоматической синхронизации данных, обеспечения возобновления передачи данных в случае разрыва соединения и поддержки различных бэкендов хранения на стороне сервера. Данные хранятся с разбиением на блоки, что повышает эффективность хранения и даёт возможность ускорения передачи файлов за счёт параллельной загрузки блоков с разных серверов хранения.