Меню Рубрики

Собственное облако на linux

/4te.me

Из-за очередного приступа параноии, я решил сменить Google Drive на собственное решение и хранить свои файлики поближе к телу. Выбор был между: поднимать в каком-нибудь DigitalOcean виртуалку и хранить там, или собрать дома свое хардварное решение. Подсчитав сколько будет стоить виртуалка с нужным объемом диска, выбор был сделан в пользу домашнего NAS-сервера.

Выбор

У меня было примерно 100 ГБ данных на момент съезда из Google Drive. Виртуалка в DigitalOcean на 160ГБ стоит 40$ в месяц, то есть в год будет выходить

500$. Дорого. За эти деньги можно дома собрать NAS на терабайт с SSD дисками. Есть ещё вариант брать маленькую виртуалку, и к нему подключить S3 хранилище, но софт, который я планировал использовать, не умеет работать с S3.

Итак, вариант с виртуалкой в облаке я отмёл и пошел смотреть, что нынче есть на рынке домашних NAS серверов. Так как я живу в маленькой квартире, NAS я планировал ставить в жилой комнате, и, если он будет шуметь вентиляторами и вибрировать HDD-дисками, то житья в комнате не будет. Поэтому я хотел найти NAS с пассивным охлаждением и вставить туда SSD диски. Не самое дешевое решение, но за тишину приходится платить.

Как выяснилось, на рынке практически нет NAS с пассивным охлаждением. Почему так я не понимаю, по опыту использования — максимальная температура дисков за год использования у меня была 47.0 C (наверно когда я переносил все данные), в покое — 36.0 C, крышка NAS-а чуть теплая. 90% времени диски простаивают и зачем им вентилятор я не понимаю.

Вот модели с пассивным охлаждением которые я смог найти — QNAP HS-210 , QNAP HS-251 , QNAP HS-251+ (он же QNAP S2 ), QNAP HS-453 . У всех моделей обычный x64-процессор, не ARM. Получается маленькая такая desktop-тачка с местом для двух HDD.

  • HS-210 — 512 МБ ОЗУ мало.
  • HS-251 — 1ГБ ОЗУ мало
  • HS-251+ — 2ГБ ОЗУ норм
  • HS-453 — 4 или 8 ГБ ОЗУ. Ultimate решение, но не продается в России и стоит космос.

У Synology бесшумных решений я не нашел. Собирать системник тоже не хотелось — он не получится таким же маленьким и бесшумным как QNAP. В общем выбрал золотую середину — QNAP HS-251+ (QNAP S2).

Из дисков я выбрал WD BLUE 3D NAND SATA SSD 1 TB (WDS100T2B0A). Взял две штуки. Они без проблем заходят в NAS. Итого вышло:

Не самое дешевое решение для NAS, но самое дешевое из подходящих под требования. Кроме этого, чтобы создать свое облако потребуется статический “белый” IP-адрес дома. Чтобы подключаться из интернета к домашнему серверу. Обычно такая услуга есть у любого провайдера.

Программная часть

После покупки и установки самого NAS-а, решил попробовать использовать софт от самого QNAP. Стоит сказать, что он очень разнообразный — полностью заменяет публичные облака и даже умеет запускать виртуальные машины. Из себя он представляет некую ОС (на основе Debian, кажется), с веб-интерфейсом а-ля iPad и проприетарными приложениями.

К сожалению все работает довольно медленно, да и менять один проприетарный продукт на другой, внутренний параноик мне не позволил, поэтому я установил на NAS обыкновенный чистый Linux.

Так как это обычный x86_64 ПК, я записал на флешку свежий дистрибутив, зашел в BIOS и загрузился с нее:

В этом NAS-е есть постоянная память размером 512 МБ куда установлена дефолтная прошивка. Ее я не перезаписывал (при желании можно будет вернуться на нее), и поставил Ubuntu 18.04 на software RAID, собранный из двух установленных дисков. На каждом диске создается по партиции одинакового размера, и они объединяются в RAID1. На одном диске также раздел для загузчика и /boot:

Домашнее облако

Для замены Google Drive (Яндекс.Диск, Dropbox и тд.) я выбрал Seafile — https://www.seafile.com/en/home/

Выбор был между ним и Nextcloud/ownCloud, но после тестовых установок выбрал Seafile. До 3-х пользователей можно использовать Enterprise версию — её и взял. В ней есть поиск по файлам и еще несколько полезных функций, вот здесь есть сравнение бесплатной и enterprise версий. Разворачивал с помощью Docker — очень просто и быстро, на сайте есть подробный мануал

У Seafile есть веб-интерфейс, desktop-приложение для всех ОС и мобильный клиент.

Nextcloud/ownCloud гораздо богаче по функционалу и хранят файлы в открытом виде, то есть их можно интегрировать в другие серверные приложения, но жуткие тормоза при аплоаде файлов и на веб-интерфейсе делают их неработопригодными.

Seafile тоже не идеален, всё что он умеет — просто хранить файлы. Особенности использования:

    хранит данные в бинарных файлах. То есть их нельзя просматривать на диске. Получаем высокую скорость при доступе к данным, но теряем в гибкости. Вот так выглядят данные на ФС:

есть приложение для Android/iOS. Довольно скромное, но заливать фотки с телефона и просматривать файлы умеет.

Домашний NAS и медиа-плеер

Так как в NAS-е есть HDMI выход, я его подключил к телевизору и сделал из него медиа-плеер. В комплекте также есть пульт ДУ:

С помощью очень классной программы Kodi (https://kodi.tv/) можно полностью заменить smartTV, онлайн-кинотеатр и приставку для проигрывания IPTV. Он устанавливается на linux и на экран выводит свой интерфейс. Навигация пультом ДУ или приложением Kore. С пультом были проблемы, не заводился из коробки, пришлось немного потанцевать с бубном.

Вот так выглядит интерфейс Kodi на телевизоре:

Как я использую Kodi:

  • плеер фильмов, которые лежат на NAS-диске
  • плеер IPTV вместо MAG-250. Умеет показывать multicast-потоки
  • проигрыватель YouTube (приложение не очень удобное, но юзабельное)
  • в поездках с помощью приложения Kodi для Android подключаюсь к своему NAS и смотрю с него фильмы. Получается такой self-hosted онлайн-кинотеатр
  • для скачивания новых фильмов на NAS установил Transmission + web-интерфейс

Также на NAS поставил FTP и Samba, чтобы подключаться с девайсов в локальной сети и NFS для монтирования сетевого диска.

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

  • приложения Яндекс.Диск/Google Photo удобнее и быстрее. Да, opensource-аналоги не дают такого удобства использования — то тут, то там встречаются мелкие косяки (например в android-приложении seafile фотки при просмотре скачиваются полностью, т.е. не превью сжатое, а фото если весит 5МБ — оно все полетит на телефон, это медленно и занимает место на телефоне; хотя в веб-морде есть превьюхи). Ну и поиск в Гугл.фото по содержанию фотографий (когда в поиске вводишь “горы”, и он показывает все фотографии гор из вашей библиотеки) — это вообще киллер фича, такого в бесплатные аналоги не знаю когда завезут.
  • скорость загрузки файлов в Seafile гораздо выше, чем в публичные облака
  • смотреть фильмы теперь супер удобно. Особенно в поездках. 4G есть практически везде в России, и теперь не надо закачивать кучу фильмов на телефон — смотрю онлайн, подключаясь с телефона к домашнему серверу. В случае отсутствия связи, например в поезде, подключаюсь по FTP и скачиваю перед отправлением.
  • Kodi — супер комбайн, но хотелось бы научиться стримить телевизионный сигнал на телефон, чтобы смотреть ТВ не из дома. Этого еще не понял как сделать.
  • чтобы все это настроить пришлось покурить мануалы и подзаморочиться с установкой и наладкой.

Хочу ли я вернуться в публичные облака (Google Drive, Яндекс.Диск)? Нет, не хочу. На мой взгляд, плюсов в такой схеме все же больше, чем минусов. А внутренний параноик теперь спит сладким сном.

Источник

Облачное хранилище 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 — это свободное и открытое веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Собираем linux с нуля
  • Смотреть в ютубе ос linux
  • Сменить метку диска linux
  • Сменить группу файла linux
  • Сменить владельца папки linux рекурсивно