655

Домашнее облачное хранилище данных на Raspberry Pi и Nextcloud

Введение


Я расскажу о простом способе создания домашнего облачного хранилища на основе Raspberry Pi и Nextcloud Server, покажу интерфейс Nextcloud и расскажу о его клиентах и приложениях. В рунете есть несколько хороших постов на эту тему, но они больше про установку и настройку Nextcloud. Благодаря стараниям команды разработчиков cusdeb.com, вся установка Nextcloud свелась к записи RAW-образа на карту памяти MicroSD.


Nextcloud начинался как проект ownCloud, который, в свою очередь, был инициирован разработчиками KDE с целью создания платформы для развертывания Dropbox-подобного хранилища данных на своих мощностях. Проект оказался настолько успешным, что сначала вышел из под патронажа KDE, а затем перешел под крыло компании, названной в свою же честь – ownCloud, Inc. К сожалению, ключевые разработчики ownCloud не смогли договориться со своими инвесторами, что стало причиной форка под названием Nextcloud (читайте подробности здесь). Несмотря на то, что ownCloud продолжает свое существование, Nextcloud развивается ключевыми разработчиками ownCloud. Тем не менее, клиентское программное обеспечение ownCloud все еще совместимо с Nextcloud и будет оставаться совместимым так долго, насколько это возможно.


Подготовка


Вот список компонентов, из которых состоит мое домашнее облако:

1. Raspberry Pi 3

2. Блок питания

3. Карта памяти MicroSD

4. Внешний жесткий диск

5. Маршрутизатор.

Я использую маршрутизатор для того, чтобы открыть доступ к облаку извне. Если вы не хотите подключаться к хранилищу через Интернет, то маршрутизатор не обязателен.

Вместо жесткого диска можно использовать простую флешку в качестве хранилища данных. Главное, чтобы первый раздел был отформатирован в NTFS. Можно не подключать внешнее хранилище вообще, тогда файлы будут сохраняться на SD-карту на которой находится вся система с Nextcloud. Настоятельно рекомендую использовать внешнее хранилище, иначе SD-карта быстро придет в негодность.


Установка Nextcloud Server


Скачайте образ для Raspberry Pi 2 или Raspberry Pi 3 и запишите его на SD-карту. Образ содержит операционную систему Ubuntu 16.04, все необходимое серверное программное обеспечение для работы Nextcloud и сам Nextcloud.


Запуск


Вставьте SD-карту в Raspberry Pi, подключите устройство к сети и воткните его в розетку. При первом запуске инициализация Nextcloud продлится около семи минут. Все последующие запуски будут занимать меньше минуты.


Узнайте IP-адрес сервера в локальной сети. Это можно сделать как минимум тремя разными способами:

1. из админки роутера

2. программой Angry IP Scanner (для Windows и различных Unix-подобных ОС)

3. командой sudo ifconfig, авторизовавшись в только что загруженной системе (используйте ubuntu в качестве логина и пароля)


Например, адресом устройства оказался 192.168.0.8, тогда в строке браузера наберите http://192.168.0.8:8001/nc и вы увидите страницу завершения установки Nextcloud.

Придумайте логин и пароль администратора и нажмите кнопку «Завершить установку». Через несколько секунд вы увидите корневой каталог файлов вашего домашнего хранилища.

Пользователи и группы


Nextcloud – это многопользовательская система. Учетные записи пользователей можно создавать как вручную, так и давать пользователям возможность регистрироваться самостоятельно. Для того чтобы создать учетную запись вручную, перейдите на страницу «Пользователи» из выпадающего списка в правом верхнем углу экрана прямо под вашим логином.

Впишите логин и пароль нового пользователя в соответствующие поля. Если вы после этого нажмите кнопку «Создать», то пользователь попадет в безымянную группу. Однако прямо здесь вы можете выбрать одну из существующих групп или создать новую.

Управлять группами можно через панель, которая находится слева.

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

Загрузка файлов через веб интерфейс


Откройте корневой каталог файлов и создайте папку для загрузки файлов, например «Красная Поляна 2017».

Затем, перейдите в папку и загрузите несколько фотографий.

Права доступа к файлам


Кликните на иконке «Поделиться» рядом с названием папки и справа появится панель, в которой можно настроить правила доступа к папке. Я вбил в строку поиска название группы «Лыжники» и установил галочки «можно создавать» и «можно изменить», чтобы члены группы могли загружать свои фотографии в папку «Красная Поляна 2017».

Нажмите на иконке с домиком вверху и вернитесь в корневой каталог файлов. Создайте новую папку и загрузите в неё несколько файлов. Нажмите на иконку «Поделиться» рядом с именем одного из файлов и поставьте галочку «Поделиться ссылкой». Теперь файл доступен по ссылке на любом устройстве в локальной сети.

Есть несколько способов открыть доступ к домашнему облаку из интернета, но это тема для отдельного поста. Если хотите, чтобы я об этом написал, то дайте знать в комментариях.


Клиенты


Nextcloud предлагает клиенты под Windows, Linux, macOS, Android и iOS, что позволяет настроить синхронизацию почти на всех своих устройствах. К примеру, клиент для синхронизации файлов под Android можно абсолютно бесплатно загрузить из Play Market, а пользователям iOS придется заплатить символическую цену в виде $0.99. С каким бы клиентом вам не пришлось иметь дело, его настройка предельно проста. Сначала вводится адрес сервера, а затем логин и пароль пользователя.

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

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


Приложения


Приложения позволяют расширять возможности Nextcloud, превращая его во что-то большее, чем просто Dropbox-подобное хранилище. Рассмотрим несколько наиболее популярных приложений, которые являются альтернативами известных и очень популярных сервисов.

Разработчики cusdeb.com поместили в образ для Raspberry Pi 2 и Raspberry Pi 3 множество приложений, которые нужно только активировать. Для этого откройте выпадающий список со всеми вашими приложениями и нажмите плюсик.

Вы попадете в каталог приложений. Обращаю ваше внимание, что активация приложений возможна только под учетной записью администратора вашего Nextcloud.


В качестве первого примера рассмотрим Calendar, которое является отличной альтернативой Google Calendar.


Calendar


Для того чтобы установить это приложение, перейдите в раздел «Организация» каталога приложений, найдите Calendar и нажмите кнопку «Включить» и через несколько секунд новое приложение появится в списке.

Вам сразу будет доступен один календарь под названием «Личное», с которого можно начать работу. Добавьте при необходимости столько календарей, сколько вам нужно. Их количество не ограничено. Запланируйте какое-нибудь событие на один из дней в календаре «Личное» для того, чтобы позднее его синхронизировать со своим мобильным устройством и получать от него напоминания о том, что событие приближается.

Рассмотрим в качестве примера синхронизацию календаря «Личное» с устройством на базе Android. Для этого нужно клиентское приложение, которое работает по протоколу DAV. Одним из таких приложений, которое я настоятельно рекомендую, является DAVdroid. Его можно получить как минимум двумя способами: купить в Play Market за 249 руб. или загрузить бесплатно из каталога приложений F-Droid, т.к. DAVdroid является полностью свободным программным обеспечением. Нет никакой разницы, каким именно способом вы воспользуетесь, но помните, что в первом случае вы поддержите разработчиков хорошего ПО.


После первой загрузки клиента вам необходимо настроить подключение к вашему серверу. Используйте в качестве адреса что-то вроде домен-или-ip-адрес-сервера/remote.php/dav/ и логин и пароль вашего текущего пользователя.

Обратите внимание на то, что необходимо явно указать календари, изменения в которых вы хотите отслеживать. В данном случае мой выбор невелик: мне остается только указать DAVdroid, что ему нужно отслеживать изменения в календаре «Личное».

Теперь после пары нажатий на Next клиент может считаться сконфигурированным, и в штатном календаре Android появится запланированное выше мероприятие.

Синхронизация работает в двустороннем режиме. Запланируйте какое-нибудь событие в штатном календаре Android, но не забудьте выбрать календарь «Личное» или любой другой, созданный в приложении Calendar.


Только одна проблема на данный момент остается нерешенной: по умолчанию DAVdroid синхронизирует календари только в ручном режиме. Для того чтобы автоматизировать этот процесс, откройте настройки клиента.

Затем выберете своего пользователя и укажите интервал, с которым клиент будет проверять изменения календарей на сервере.

Теперь все готово для использования приложения Calendar в полную силу.


Default encryption module


С помощью этого приложения вы можете гарантировать шифрование своих данных и данных ваших пользователей. Таким образом, даже если кто-то получит физический доступ к вашему хранилищу, он не сможет прочитать хранящиеся в нем файлы без закрытого ключа. Это достаточно спорное удобство, т. к. если вы используете обычную флэшку в качестве внешнего хранилища, сохраняете на нее данные через Nextcloud, а затем выдергиваете флэшку и втыкаете ее в какое-нибудь другое устройство, то вы уже так просто не сможете получить доступ к своим же файлам. С другой стороны, хранение данных в зашифрованном виде на съемном носителе может кому-то показаться не такой уж и бредовой идеей, так что продолжим исследовать этот вопрос в этом подразделе.


Для того чтобы установить «Default encryption module» откройте каталог приложений, перейдите в раздел «Не включено» и найдите там это приложение. Затем нажмите «Включить». В отличии от других рассмотренных здесь приложений, «Default encryption module» не появится в вашем списке, т. к. оно не предоставляет никакого пользовательского интерфейса.


После активации приложения необходимо включить шифрование на странице администратора. Для этого перейдите на страницу «Администрирование». Затем в разделе «Шифрование» поставьте галочку напротив «Включить шифрование на стороне сервера». После этого необходимо перезайти в систему под текущим пользователем. Теперь все ваши файлы будут шифроваться перед сохранением в вашем облаке.

Заключение


В этом посте я рассказал о своём домашнем облачном хранилище данных, из каких компонентов я сделал сервер и о простом способе установки программного обеспечения Nextcloud. Я на примерах показал как управлять файлами и правами доступа через веб-интерфейс Nextcloud, как синхронизировать файлы с телефона и как пользоваться календарем. Наконец, я написал о том, как включить шифрование файлов в хранилище. Все это лишь малая часть того, на что способен Nextcloud. Рекомендую ознакомиться с руководством пользователя на официальном сайте, чтобы узнать обо всех возможностях.


Надеюсь вам понравился мой пост. Я увлекаюсь разработкой программного обеспечения и в следующих постах поделюсь с вами другими интересными штуками, которые я сделал при помощи Raspberry Pi.


Жду ваших комментариев!

Arduino & Pi

1.5K постов20.8K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
17
DELETED
Автор поста оценил этот комментарий
Да что-б тебя! Я сразу захотел настроить эту хрень у себя дома.
раскрыть ветку (34)
3
Автор поста оценил этот комментарий

только не забудь прикупить СХД с raid1

иначе это облако ничем не отличается от компа и в любой непонятной ситуации данные уйдут

4
Автор поста оценил этот комментарий

Я не ожидал, что pikabu порежет ссылки и запретит редактировать пост больше трёх раз, поэтому оставлю здесь информацию о том как скачать и образы и как всё запустить: https://cusdeb.com/w/Nextcloud_%D0%BD%D0%B0_Raspberry_Pi/ru

раскрыть ветку (32)
8
Автор поста оценил этот комментарий

по опыту рекомендовал бы не использовать USB винт.

а переходник на SATA, и внешнее питание на винт

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (31)
2
Автор поста оценил этот комментарий

Эта байда тоже к USB подключается. Возможно, что-то она там накэширует, но главное ее предназначение -- дать возможность отдельно подводить 12 В к 3,5-дюймовым дискам. Т. е. исключительно дает возможность подключать 3,5-дюймовые диски по сравнению с только 2,5-дюймовыми непосредственно на USB. С помощью десяти костылей...)


Вот если бы она к GPIO могла подключаться, но у Распая такой возможности нет.

раскрыть ветку (10)
2
DELETED
Автор поста оценил этот комментарий

А что мешает использовать Orange Pi Zero NAS Expansion board (можно сразу стыковать на родной Orange Pi)? Ставим SSD M2 и вперёд. С другой стороны если нужен большой объём хранилища, то интереснее использовать внешний HDD через SATA с доп питанием. Скорость передачи данных позволяет. Это вам не USB 2.0

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Я на малине. С китайцами пока не экспериментировал. Есть, безусловно SoB с такими возможностями, но там уже или цена, или надежность, или экосистема похуже.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Апельсин поддерживает весь код малины (насколько я помню). И цена базового One фактически один в один.

0
Автор поста оценил этот комментарий

может и по gpio подключаться.

проблема с винтами в том что питание не хватает. от этого нестабильно работает.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

В GPIO нет выхода на прямой обмен с памятью, следовательно, нет там и SATA. Вероятно, можно как-то извратиться, но скорость будет примерно как у флоппи-диска.


Питание на USB будет ровно такое, какое подано на сам распай -- там система абсолютно прозрачная: провод прямиком идет с microUSB на USB. Следовательно, проблемы с питанием 2,5-дюймовых дисков могут быть только в том случае, если на саму плату подано плохое питание.

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

для ATA ,будет задействовано 24 из GPIO.

а этот переходник с ATA to SATA нормально конвертит. скорость только не особо большая будет. если на USB вешать то там и сеть еще висит на том потоке, так что поделят они ее.

прямо sata на gpio нет да там скорость низкая будет. и нет драйверов.


а проблема в питании будет так как на USB мало ли что повесить придется.

проходили знаем. в лучшем случае отваливается в худшем не работает и палит дорожки питания. первый раз столкнулся когда делал шлюз на asterisk. с внешним питанием тоже работало не стабильно судя по всему у многих, мне как то повезло что завелось но было 4 модема

#comment_81151000

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Какой переходник? Тот, что в посте, физически (логически, химически и эзотерически) подключается шнурком microUSB к порту USB на плате. Никаких других соединений с платой у этого переходника нет.


А что дорожки горят, и отрубается, может, проблема в чем-то другом?) У меня, например, третий распай с двумя винтами по 2 ТБ прекрасно рубит под OSMC с постоянно запущенными серверами UPnP, DLNA, SSH, SMB, Web, торрент-клиентом, облаком, транслирует одновременно в локалку и по HDMI FullHD DTS 7.1, и ничего не отваливается.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

фото в студию этой поделки с uptime системы :


я уже слышал неоднократно про такие системы, что они не глючат :)

но что то не одной не видел, хотя тестирую с самых первых версий :)

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Обычный распай 3 в бутербродном корпусе с пассивными радиаторами. Винты подключены через USB-SATA адаптеры с дополнительным питанием. Все три питания (2*HDD + плата) воткнуты в зарядное устройство 2,4 А на порт. Надежный microSD 32 ГБ. Родная сборка с сайта OSMC (а не кривой бандл от производителя плат).


+ Руки из плеч.


Аптайм у нее с обновления до обновления. Между обновлениями, требующими перезагрузки, машина работает без перерыва.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Обычный распай 3 в прозрачном корпусе с пассивными радиаторами. Винты подключены через USB-SATA адаптеры с дополнительным питанием. Все три питания (2*HDD + плата) воткнуты в зарядное устройство 2,4 А на порт. Надежный microSD 32 ГБ. Родная сборка с сайта OSMC (а не кривой бандл от производителя плат).

фото рабочей железки :)

знаю я эти сказки про то что оно работает с дисками :)


+ Руки из плеч.

намек конечно понял.


Аптайм у нее с обновления до обновления. Между обновлениями, требующими перезагрузки, машина работает без перерыва.

а зачем обновления?


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

Иллюстрация к комментарию
0
DELETED
Автор поста оценил этот комментарий
А переходник на sata, по чем обменивается?
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

gpio

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий
На сколько помню, на gpio можно ремапить второй sdio канал, или smi. Интересно, сто этот переходник использует...
0
Автор поста оценил этот комментарий

На ebay нашел именно эту штуку за 22 евро. Немного дороговато=) Где еще можно глянуть?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

banana pi смотри там уже разведен sata

0
Автор поста оценил этот комментарий

Я недавно узнал, что у Orange Pi есть SATA разъём для подключения жёсткого диска. Как-нибудь попробую, думаю так будет лучше чем с переходником.

раскрыть ветку (11)
4
Автор поста оценил этот комментарий

Нифига не будет. Там стоит переходник usb<->sata, и будет такая же донская скорость.

http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthre...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Всегда есть Banana Pi/A20 - там нативный SATA, но он помедленнее overall. Зато и цены отдемпинговали. И я на нём бы и делал, ибо SD вообще мусор и убьётся за год с моим уровнем насилования с клиентом и постоянно файлами гигов на 50 в клиенте.

0
Автор поста оценил этот комментарий
У меня на banana pi сервер, там тоже есть sata. В чем отличия nextcloud от owncloud? Кроме оформления разницы не заметил
раскрыть ветку (7)
3
Автор поста оценил этот комментарий

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

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

недавно перевел своих с OC на NC. Порадовала поддержка php7 у NC11. но в винде по прежнему проблема с webDav. Без правки реестра и запуска службы - не подключалось к *cloud.

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

А где суть то? Owncloud у меня на PHP 7/7.1 работает ещё с 9 версии.


Но поставить интересно. Оно как есть грейдится или надо плясать?

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

странно. официально OC только с 10ки 7.1 поддерживает. хотя может с 9.1 завезли. я с 9.0.х уходил. не суть.


перескачить можно легко. но по определенному порядку, который делал:

1. обновляемся с 9 OC до 10NC

2. обновляемся с 10NC до 11NC

миграции сами наказываются. может только приложения выключить.



обновил порядка 10ти серверов - проблем не возникло ни разу.  но я докер пользую.


вот официальный ман:

https://help.nextcloud.com/t/migrating-from-owncloud-to-next...

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Понятно, спасибо. Я докер не использую т.к. у меня всё в одном на домашнем, и свои папки, и куча на одном адресе на других хвостах...

0
Автор поста оценил этот комментарий

А вы какойто официальный докер контейнер используете с Nextcloud?  Или свой сделали?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

облака, что OC, что NC - официальные. с докерхаба. там все из коробки идет


https://hub.docker.com/_/owncloud/

https://hub.docker.com/_/nextcloud/


за 2-3 года пользования - докер сэкономил кучу времени и нервов. свои косяки есть, но вещь годная. имхо.

0
Автор поста оценил этот комментарий
Автор поста оценил этот комментарий

У в чем разница-то? Эта хрень все равно через юзб подключается! Обычный sata<->usb конвертер с распайкой для 12В и 5В...

раскрыть ветку (2)
Автор поста оценил этот комментарий

внешним питанием.

раскрыть ветку (1)
Автор поста оценил этот комментарий

есть куча юзб кейсов с внешним питанием за четверть, и даже меньше, цены этой приблуды

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку