Облачное хранилище Seafile на Windows, Android и Linux
Как вам, если мы организуем на жёстком диске собственное облачное хранилище с доступом к нему с различных клиентов: Windows, Android, MacOS, Linux, iOS. При этом дисковые квоты не заданы (размер диска не ограничен) и пользователи, могут загружать файлы без ограничений (размер файла не ограничен). Не нужно платить за хранение данных, как в Dropbox. А так же прямо с жёсткого диска своего компьютера, сможем поделиться файлом с любым пользователем интернета.
Я понимаю, что есть Яндекс.Диск, MEGA, Облако Mail.ru и тому подобные хранилища ваших данных. Но, установить своё облако и быть его администратором, на мой взгляд, на много круче.
Начинаем организовывать свой домашний сервер. Переходим на оф. проект Seafile. Нам нужен Server for Windows: https://www.seafile.com/en/download/
А по этой ссылке, мы скачаем и установим Python: https://manual.seafile.com/deploy_windows/download_and_setup_seafile_windows_server.html
Всё скачали. Первым устанавливаем Python. Потом создаём на диске (C:) пустую папку, например, SeafileProgram. Извлекаем файлы из архива seafile-server.tar.gz. После распаковки архива, открываем папку seafile-server_6.0.7_win32. Видим там ещё одну папку seafile-server-6.0.7, вот её и вставляем в папку SeafileProgram, что на диске (C:).
Я работал в Windows 8.1. В проводнике переходим на Этот компьютер —> Свойства —> Дополнительные параметры системы —> Переменные среды —> В окне «Системные переменные» тыкаем на Path —> Изменить. —> В окне «Значение переменной» В начале строки пишем C:\Python27; или в конце строки ;C:\Python27 (я поставил в начале строки) —> Ok —> Ok —> Ok.
Переходим по пути C:\SeafileProgram\seafile-server-6.0.7 и запускаем от имени админа, файл run.bat —> Выберем диск, на котором будет организованно хранилище данных (Диск с пользовательскими файлами, например, D:) —> Next.
После этого Seafile Server неожиданно прекратил работу. Если у Вас произойдёт, что-либо подобное, держим путь C:\SeafileProgram\seafile-server-6.0.7\seafile\bin и заново запускаем seafserv-applet.exe. После чего откроется несколько окон «Оповещение системы безопасности Windows». Везде ставим галочки «Разрешить доступ». И всё станет Гуд!
В трее, по значку Seafile Server нажимаем пр.кн.мыши —> Add an admin account(A) —> Пишем адрес эл. почты и пароль —> Ok.
Открываем браузер и в адресной строке «печатаем» следующее: http://localhost:8000
Заходим в свой аккаунт, прописав данные, которые только, что вводили. Радуемся! Мы создали облачное хранилище на своём компьютере!
В ролике, что в начале поста, показана настройка сетевого экрана. Я использую внутренние средства Windows, у Вас, возможно, будут другие телодвижения. Брандмауэр Windows —> Дополнительные параметры —> Правила для входящих подключений —> Создать правило —> Для порта —> Далее —> В пустом окне пишем: 8000 —> Галочка «Разрешить подключения» —> Далее —> Далее —> В окне Имя пишем: Seafile8000 —> Готово. Тоже проделываем с портом 8082.
Снова переходим в Брандмауэр Windows —> Разрешение взаимодействия с приложением или компонентом в брандмауэре Windows —> Поставьте галочки на python и seaf-server. Там же, нажимаем кнопку «Разрешить другое приложение» —> Обзор —> Идём по пути C:\SeafileProgram\seafile-server-6.0.7\seafile\bin\seafserv-applet.exe —> Открыть —> Добавить —> Ставим галочку (там где Частная) —> Ok.
Таким образом мы разрешаем обмен данными определённому приложению. С сетевым экраном покончили.
В трее на Seafile Server нажимаем пр.кн.мыши —> Install as a windows service —> Ok —> Ok.
В трее на Seafile Server нажимаем пр.кн.мыши —> Open seafile-server folder(O) —> Начинаем редактировать конфигурационный файл. Открываем папку conf —> Открыть файл ccnet.conf при помощи Notepad++ —> Нам нужно редактировать строку:
Для этого открываем cmd и пишем ipconfig. Смотрим IPv4-адрес. У меня он 192.168.1.41. В файле ccnet.conf было SERVICE_URL = http://127.0.0.1:8000 —> Должно стать SERVICE_URL = http://192.168.1.41:8000 . Сохраняем файл ccnet.conf.
Рестарт сервера. В трее на Seafile Server нажимаем пр.кн.мыши —> Restart Seafile Server(R) —> Да.
Открываем браузер и заходим под новым адресом: http://192.168.1.41:8000
В своём аккаунте занимаемся необходимыми настройками: добавляем доверенного пользователя (если таковой есть, ибо он будет без проблем шаркаться по вашим облакам), создаём новые папки, загружаем в них данные, расшариваем директории для общего доступа и так далее. В ролике это отражено, не буду засорять бумагу кляксами:). Рассказал всё, что качается локальной сети.
Что делаю, когда нахожусь в другой комнате, а не рядом с включенным компьютером. Запускаю на своём смартфоне Seafile-клиент и слушаю музыку, которую ранее загрузил в облака.
Для того чтобы на Android установить Seafile клиент, нужно найти значок Play Маркет —> В поиске пишем seafile —> Начинаем установку приложения Seafile —> Готово —> Открыть —> Добавить аккаунт —> Другой Seafile сервер —> Прописываем локальный IP-адрес (мой случай): http//192.168.1.41:8000 —> Email пишем свой (то есть, тот, что добавлен был в друзья) —> Пароль —> Войти —> Разрешить —> Пользуемся данными которые нам расшарили.
Теперь давайте сделаем так, чтобы любой файл, стал доступен по внешней ссылке . То есть, чтобы был доступ в интернет, для всех пользователей всемирной паутины. Заходим в свой аккаунт —> Управление системой —> Настройки —> Было:
SERVICE_URL http://192.168.1.41:8000
FILE_SERVER_ROOT http://192.168.1.41:8082
Что мы сделали? Набрали в поисковой машине браузера: Мой IP-адрес. Заменили локальный на внешний ip-адрес. Не забываем при этом нажимать на зелёные галочки и дождаться сообщения «Успех».
Обязательно заходим в свой роутер (маршрутизатор). Для этого я в браузере набираю http://192.168.1.1 (у вас может быть http://192.168.0.1). Ввожу имя пользователя и пароль. При чём пароль нужно не копировать из шпаргалки, а набирать на клавиатуре, иначе вход будет заблокирован:).
Далее по настройкам роутера не могу сказать, что либо определённого, у всех они от разных производителей. Я обычно «иду» —> Домашняя сеть —> Серверы —> Пишу первый порт: 8000 —> IP-адрес сервера ставлю: 192.168.1.41 —> Описание: Seafile8000 —> Доступ из интернета: Разрешен всем —> Кнопка «Добавить». Точно такие действия со вторым портом:8082.
Доступ к домашней сети из интернета успешно добавили. Выход из роутера. И теперь в своём аккаунте добавляем общий доступ для определённого файла или папки. Копируем ссылку и размещаем её на любом Интернет-ресурсе или отправляем по эл. почте.
Метод немного устарел (хотя вполне рабоче способный) и теперь нужно использовать установку на основе Docker в качестве альтернативы, хотя это ещё и тестирование для Windows 10. Вот инструкция: https://github.com/haiwen/seafile-docker#getting-started
Так, что у вас теперь две дороги, одна в Психиатрическую больницу, где только кормят. другая дорога в Психоневрологический Диспансер, где только выгуливают;).
Полезная информация: https://xakep.ru/2014/10/08/own-dropbox/ и https://howitmake.ru/blog/ubuntu/99.html
Seafile — собственный аналог Dropbox на Linux
Создание собственного сервиса хранения данных под управлением Linux.
Первым делом узнайте свой внешний IP-адрес: https://2ip.ru/ и локальный: sudo ifconfig | grep «inet addr» или ip addr show.
Если хотим на файл организовать внешнюю ссылку, начните с настройки роутера. Как это сделать писал в предыдущей теме, да и в ролике это озвучено.
Установка Seafile Server: Первая команда в терминале во всех мануалах выглядит следующим образом:
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging sqlite3
У меня Linux Mint 19.1 и пришлось применить для своей системы немного другую команду:
$ sudo apt-get install python-setuptools python-simplejson sqlite3 python-pil
В домашнем каталоге создаём пустую директорию seafile:
Качаем с оф. проекта архив Server for generic Linux https://www.seafile.com/en/download/ и распаковываем в папку seafile.
Далее я шёл по следующему пути: /home/oleglav/seafile/seafile-server-6.3.4 и прямо в этом каталоге открыл терминал. Запускаем инсталляцию:
1. По ходу придумаем адрес сервера: oleglavserver
2. ip or domain: А вот здесь думайте сами, если Вы будите использовать только локальную сеть — пишем локальный ip-адрес машины. Если будите загружать файлы в интернет и делиться ими в интернете с другими пользователями — пишем внешний ip-адрес.
3. Далее нас попросят указать, где будут храниться данные, по умолчанию это директория seafile-data, которая находиться внутри папки seafile — Нажал Enter (согласился с настройками по умолчанию).
4. Рекомендованный порт сервера — ничего не меняем, нажимаем клавишу ввода.
Получаем сообщение если сервер находиться за брандмауэром, не забудьте открыть эти порты TCP: 8000, 8082. На этом этапе ничего не делал, а вы решайте сами.
Из терминала не выходим. Запускаем систему:
Пишем имя своего аккаунта: oleglav09@gmail.com
admin password: Пароль
Повторить пароль и всё!
Заходим в веб-интерфейс: http://IP-адрес:8000
Вбиваем данные которые мы только, что зарегестрировали. Далее настройка аккаунта, всё озвучил в предыдущей теме, когда ставили Seafile на Windows.
Если Вам не совсем удобно пользоваться веб-интерфейсом, установите Seafile-клиент:
$ sudo add-apt-repository ppa:seafile/seafile-client
$ sudo apt-get update
$ sudo apt-get install seafile-gui
Меню —> Интернет —> Seafile —> Запускаем.
Заполняем данные в клиенте:
Нажимаем кнопку «Логин».
Подводим итоги: мы организовали локальную сеть между совершенно разными клиентами. Всё, что вы закинете в облачное хранилище будет автоматически синхронизироваться на дисках других подключенных в сеть устройствах. А так же можем создать внешнюю ссылку, хотя файл находится на жёстком диске компьютера.
Другие похожие сервисы: Nextcloud — набор клиент-серверных программ для создания и использования облачного хранилища. По функционалу похож на Dropbox. Nextcloud можно установить на физический сервер.
ownCloud — это свободное и открытое веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке».
Seafile — личное хранилище
Seafile — это личное хранилище для хранения данных в стиле Dropbox. Seafile — замечательный инструмент для создания личного, семейного или корпоративного файлового хранилища. Не очень сложен в установке и настройке. Бесплатен.
Облачные хранилища данных сейчас широко распространены и используются повсеместно для корпоративных и личных нужд. Бесплатные варианты для домашнего использования тоже есть.
Известные облачные «диски» с возможностью бесплатного хранения и поддержкой русского языка:
- Dropbox
- 2 Гб бесплатно. Можно расширить до 16 ГБ.
- https://www.dropbox.com/
- Google Drive
- 15 Гб бесплатно.
- https://www.google.com/drive/
- Яндекс.Диск.
- 10 ГБ бесплатно, Можно расширить до 42 ГБ.
- https://disk.yandex.ru
- Облако Mail.ru
- 8 Гб бесплатно.
- https://cloud.mail.ru/
- OneDrive
- 5 Гб бесплатно. Раньше можно было расширить до 100 ГБ. Один раз проходила акция — 1 Тб в подарок. На данный момент акций нет.
- https://onedrive.live.com
- Mega
- 50 Гб бесплатно.
- https://mega.nz/
- iCloud
- 5 Гб бесплатно.
- https://www.icloud.com/
Плюсы и минусы стороннего облачного хранилища
- Плюсы
- Оно есть, работает, бесплатно. Жирный плюс.
- Можно зарегистрировать несколько аккаунтов.
- Есть разные клиенты для компьютера, телефона, браузера, сетевого диска.
- Не требует затрат на обслуживание, за нас работают другие.
- Не занимает место в доме.
- Минусы
- Мало места. Реально мало, у меня уже просто фоток больше 50 Гб. О хранении бэкапов, видео или игр уже речи не идёт.
- Ограничение на размер файла.
- Нет гарантии, что бесплатное не станет платным.
- Нет гарантии, что бесплатные гигабайты не урежут.
- Нет гарантии, что проект не закроют.
- Безопасность, ваши файлы лежат не у вас. Возможны утечки данных. Возможно нецелевое использование ваших файлов.
- Нужен Интернет. Интернет отключили — облачное хранилище перестало работать.
- Ширина канала ограничивает скорость закачки.
- Могут взломать через веб-клиент.
Плюсы и минусы домашнего хранилища
- Плюсы
- Оно есть, работает, бесплатно.
- Нет нужды заводить много аккаунтов для расширения.
- Большой объём. Сколько сделаешь, столько и будет.
- Есть разные клиенты для компьютера, телефона, браузера, сетевого диска.
- Ограничения на размер файла теперь регулируются лишь технологиями.
- Бесплатное использование, гарантия.
- Услуги никто не урежет.
- Проект не закроется.
- Безопасность и конфиденциальность.
- При использовании из дома не зависит от наличия Интернет и ширины канала. Интернет нужен только для доступа извне.
- Минусы
- Нужно покупать сервер с дисками или хранилище.
- Требует затрат на обслуживание, железо, электричество.
- Занимает место дома.
- Могут взломать через веб-клиент.
- Защита от сбоя ниже из-за отсутствия резервных источников электричества и домашней среды эксплуатации.
Если вы готовы заботиться о железе, вкладывать в него средства и время, а взамен получить много бесплатного места — ставьте собственное домашнее хранилище.
Какое домашнее хранилище выбрать?
Итак, вы решили, что вам нужно домашнее хранилище. Можно купить готовое, в комплекте уже есть ПО с некоторым функционалом. Можно поднять на ОС Linux OwnCloud или Seafile — это ПО для разворачивания хранилища, для него вам нужно ещё выделить место на сервере, хранилище или домашнем компьютере. За надёжность и стоимость железа вы отвечаете сами.
Почему Seafile ? Продукт основан на идеях Git и Dropbox. Для меня же главным была низкая требовательность Seafile к ресурсам. За работу с файлами отвечают написанные на си приложения. Есть даже сервер для Raspberry Pi! Я его не использовал, но он может значительно снизить затраты для построения домашнего или корпоративного облака с нуля. Seafile стабилен, так говорят, хотя я слышал и отрицательные отзывы.
Возможности Seafile
- Различные настройки.
- Управление аккаунтами.
- Низкая требовательность к ресурсам.
- Поддержка версионности файлов.
- Плагины.
- Кроссплатформенность и синхронизация файлов.
- Мобильный клиент.
- Виртуальный диск.
- Ссылки на файлы и каталоги, поддержка паролей.
- Блокировка файла.
- Онлайн редактирование и совместный доступ.
- Лог аудита, история изменений.
- Возможность использования в организации
- Бесплатная PRO версия для 3 аккаунтов.
- Безопасность: шифрование, двухфакторная авторизация.
- Интеграция с LDAP, Shibboleth, OAuth.
- Интеграция с LibreOffice Online
Возможностей с каждой версией всё больше. Оценить интерфейс и попробовать поработать в Seafile можно прямо в демонстрационном облаке:
Для своей работы Seafile использует базу данных (SQLite, MySQL) и вебсервер (Apache, Nginx).
Для больших нагрузок можно использовать кластерные системы с балансировщиками, распределёнными хранилищами и кеширующими серверами БД типа memcached.
У меня в самой обычной конфигурации скорость загрузки достигала 7 Мб/с. По замерам разработчиков скорость может достигать 10 Мб/с в обычной конфигурации.
Seafile поддерживает синхронизацию файлов. Можно включить синхронизацию на телефоне с альбомом камеры.
Seafile поддерживает шифрование библиотек на уровне хранилища. Шифрование осуществляется на стороне клиента с помощью ключа, связанного с паролем пользователя. Расшифровать данные можно на клиенте. В этом случае админ не сможет восстановить зашифрованные библиотеки в случае их удаления или повреждения.
Компоненты сервера Seafile
Сервер Seafile состоит из следующих компонентов:
- Seahub (django) — веб интерфейс. Облегченный сервер Python HTTP gunicorn. Можно засунуть за Nginx или Apache.
- Seafile server (seaf-server) — демон службы данных, обрабатывает загрузку и синхронизацию файлов. Сервер Seafile по умолчанию прослушивает порт 8082.
- Ccnet server (ccnet-server) — демон службы RPC для обеспечения связи между несколькими компонентами. Ccnet используется только для внутренней связи.
Веб интерфейс Seafile
Расскажу только об основных моментах.
Веб интерфейс прост. Поддержка русского языка имеется. Имеется возможность кастомизации — замена логотипа, фоновой картинки, собственные CSS стили.
Внутри можно создавать библиотеки, в библиотеках папки и файлы.Библиотеки можно добавлять в группы для совместного доступа.
Загружать файлы можно простым перетаскиванием мышкой.