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 запрещен)

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

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

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

Годом раньше пилил на малинке систему видеонаблюдения. смысл: малинка+камера+motion+telegram+yandex.disk = как только motion замечает изменения картинки малинка пишет мне в телеграм "Алярма!" и начинает кидаться в я.диск снимками. Я же с телефона могу спокойно их просматривать.

Но правда у этой системы было 2 больших недостатка:

1) Большое число ложных срабатываний. Зашло солнце за тучи - картинка потемнела - малинка бьет тревогу

2) Клиент телеграмма при общении с собой не показывает оповещения, пока сам не зайдешь в свой чат. Особенности телеграмма. Правда его можно заменить на емейл оповещения. Или смс.

Если кому интересно - могу запилить пару постов в стиле "с нуля".

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

Мне было бы интересно

0
Автор поста оценил этот комментарий
А можно скрин в студию для пруфа? Так то это огромный плюс этой штуковины. (Имею ввиду скрин где есть эта опция)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Вот тут есть скрин, только надо заменить ip адрес в сети на белый ip адрес и по этой сслке файл будет доступен извне.

Иллюстрация к комментарию
2
Автор поста оценил этот комментарий

Пропустил ссылки на образы в посте, и больше не могу редактировать пост :( Оставлю ссылки здесь:

образ для карты памяти для Raspberry Pi 2: https://drive.google.com/uc?id=0B_7A3w7-bXT3WHRTS2k3c2hxYkE&...
образ для карты памяти для Raspberry Pi 3: https://drive.google.com/uc?id=0B_7A3w7-bXT3Y0dBRjRRa2VRdjg&...

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

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

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

Расскажи как настроить, чтобы оно было доступно снаружи, при условии, что интернет доступен только через NAT провайдера и белого IP нет?

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

Расскажу в следующем посте

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

Тс эта информация актуальна на сегодняшний день?

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

С тех пор мало что изменилось, поэтому да, актуально.

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

Снова беспокою вас. Некоторое время назад вы выкладыали образ для малинки на гугл диск. После установки я смогу его обновить прямо с малинки с помощью утилиты обновления nextcloud или обновляться можно только в случае покупки на cusdeb.com? Может вы простите меня за наглость и сможете предоставить ссылку на актуальный образ для малинки с nextcloud? Спасибо.

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

Сейчас можно обновить прямо с малинки с помощью утилиты обновления nextcloud, а раньше было подругому. Можете собрать свежий образ самостоятельно, мы опубликовали исходники на GitHub: https://github.com/tolstoyevsky/mmb
Вот краткий мануал на эту тему: https://cusdeb.com/ru/blog/2018/02/23/%D0%BF%D1%80%D0%BE%D1%...

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

Тема старая, но может автор ответит. Тоже решил попробовать сделать облако на малинке. Ответь пожалуйста какие у данной статьи плюсы и минусы в сравнени с вот этой - http://piboard.io/topic/14/%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0...

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
достоинства и недостатки статьи по ссылки -- две стороны одной медали. С одной стороны, очень много ручных манипуляций, а с другой -- есть очень хороший шанс прокачать себя в разных аспектах системного администрирования как раз из-за большого количества ручных манипуляций. Моя статья является скорее обзором как можно большего количества возможностей Nextcloud (ему есть что предложить, т.к. он уже намного больше, чем способ создать Dropbox-подобное хранилище), чем руководством по разворачиванию собственного хранилища. Другими словами, лично я бы не стал сравнивать две эти статьи, а сказал бы, что они в какой-то степени друг друга дополняют.
показать ответы
0
Автор поста оценил этот комментарий

Исключительно полезный гайд. А нельзя ли наваять такой же как сделать из пирожка сетевой бэкап, чтоб собирал изменившиеся файлы в локалке и записывал изменения.

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

А что такое пирожок? :)

показать ответы
0
Автор поста оценил этот комментарий
Я извиняюсь, я не очень сведущ в некоторых понятиях, но я просто подключился жёсткий к роутеру. И доступ к жесткому можно и с инета открыть. Зачем все эти танцы с расспери?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Мне комфортно работать с интерфейсом Nextcloud из Android приложения, да и веб-интерфейсом часто пользуюсь. А какой интерфейс будет, если подключить жёсткий к роутеру я не очень понимаю.

0
DELETED
Автор поста оценил этот комментарий
Спасибо. Подписался.
Кстати если не секрет, где вы заказывали raspberry?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

заказывал на aliexpress, цена 2500, правда ждать долго

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

Пропустил ссылки на образы в посте, и больше не могу редактировать пост :( Оставлю ссылки здесь:

образ для карты памяти для Raspberry Pi 2: https://drive.google.com/uc?id=0B_7A3w7-bXT3WHRTS2k3c2hxYkE&...
образ для карты памяти для Raspberry Pi 3: https://drive.google.com/uc?id=0B_7A3w7-bXT3Y0dBRjRRa2VRdjg&...

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

Мы обновили Nextcloud для 12 версии, вот ссылки для скачивания образов:
для Raspberry Pi 2: https://cusdeb.com/oc/index.php/s/qYgTm2OKFwDhr9R
для Raspberry Pi 3: https://cusdeb.com/oc/index.php/s/czy7i2Go9CWG7L6

0
Автор поста оценил этот комментарий
Это можно накатить на ubuntu server ? На работе нужно поднять сервак для обмена данными, и samba начальника не устраивает.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Можно

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...

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

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

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

А оно умеет делиться файлами по ссылке по инету? Чтоб я мог предоставить кому-то ссылку для скачки без регистрации и смс.

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

Умеет, если настроен белый айпи

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

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

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

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

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

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

А какова вышла стоимость всего оборудования?

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

Raspberry Pi купил за 2500, можно взять Orange Pi за 1300 вместо Raspberry.

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

1
DELETED
Автор поста оценил этот комментарий
А только флешка? А диски терабайт на 8 можно и ещё потоковое медиа желательно.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Можно, у меня внешний HDD на 1 терабайт подлючен

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

Чет как-то сложно. Замаунтить на телефон сетевую fs (считай, фтп или самба) вроде несложно, а поднять webDAV на малинке тоже проблем не составит, зачем эта веб обвязка нужна?

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

Мне нравится тем, что очень похоже на Dropbox

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

А на самой первой Малинке можно настроить? У нее память 512 будет только.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Первая проигрывает второй и третьей как с точки зрения процессора, так и оперативки. Короче, можно, но пользоваться этим будет почти нереально.
показать ответы