Устанавливаем NextCloud на Raspberry Pi

Если у вас имеется Raspberry Pi и вы желаете организовать свое облако дома, на данное устройство можно установить NextCloud, мощности самой малинки хватит для данной задачи. Тем самым, можно будет организовать синхронизацию файлов на всех ваших устройствах. Так как NextCloud это кроссплатформенное приложение, и может работать как на Linux, Windows, так и на Android. А так же вы спокойно сможете работать со своими файлами прямо через браузер. А если вы еще и обладатель статического IP адреса, то вы сможете подключаться к вашему собственному облаку из любой точки света, главное, что бы был интернет. Преимуществ такого подхода много, во-первых, Raspberry Pi маленькое и компактное устройство, во-вторых, размер вашего облака будет зависеть только от вас. А именно, какой накопитель вы поставите в эту связку.

Подготовка к установке

Первым делом, необходимо скачать операционную систему для Raspberry Pi, для этого идем на официальный сайт по данной ссылке, и качаем дистрибутив под названием “Raspberry Pi OS with desktop and recommended software”.

nextcloud на raspberry pi 1

Далее, необходимо распаковать скачанный архив, после чего записываем распакованный образ на MicroCD, рекомендованный объем флешки 16 гигабайт. Записать образ вы можете например утилитой “balenaEtcher”, которую можно взять с официального сайта. Либо, воспользоваться утилитой “dd”, которая имеется в Linux, как пользоваться данной утилитой, читайте в этой статье. После записи образа, система почти что готова к использованию, достаточно вставить флешку в Raspberry Pi, включить устройство, и произвести не большую настройку, которая в итоге сводиться к выбору языка системы, временной зоны и задать пароль для пользователя. Следующим шагом, необходимо настроить удаленный доступ к Raspberry Pi, как это сделать, читайте в этой статье, а так же задать статический IP адрес. Подключаемся к Raspberry Pi, обновляем систему, выполнив следующие команды:

sudo apt update && sudo apt upgrade
nextcloud на raspberry pi 2

Для работы с накопителем нам понадобиться утилита GParted, для ее установки переходим в Меню, затем в пункт “Preferences” и в выпадающем списке выбираем “ADD / Remove Software”:

nextcloud на raspberry pi 3

Откроется менеджер приложений, в поисковой строке которого набираем названием нужной нам программы, в данный момент это “GParted” и нажимаем на “Enter”. Устанавливаем “GNOME partition editor”, для установки отмечаем пакет и нажимаем на кнопку “Apply”:

nextcloud на raspberry pi 4

Подготавливаем диск

Следующим шагом подключаем наш диск, который мы будем использовать для хранения нужной нам информации к Raspberry Pi, если вы этого еще не сделали. Запускаем GParted, найдя его в установленных приложениях в пункте “System Tools”. При запуске GPrarted вводим пароль и в появившемся окне программы выбираем в верхнем правом углу наш накопитель, подключенный к Raspberry Pi. У меня диск объемом 500 гигабайт, в GParted он отображается вторым по счету сверху и определяется как /dev/sda:

nextcloud на raspberry pi 5

Форматируем наш накопитель, для этого переходим в пункт “Partition” и из выпадающего списка выбираем пункт “New”:

nextcloud на raspberry pi 6

В появившемся окне программы оставляем все по умолчанию, при желании можно задать название в пункте “Label”, я же оставлю его пустым. Затем нажимаем на кнопку “Add”:

nextcloud на raspberry pi 7

Теперь необходимо запустить форматирования, для этого нажимаем на зеленую галочку, которая находится под пунктом “Partition”:

nextcloud на raspberry pi 8

Подтверждаем форматирования в появившемся окне программы нажав на пункт “Apply” и дожидаемся окончания процесса.

Отключаем IPv6

Данный пункт не обязателен, по этому, вы можете его пропустить, но, для удобства и ввиду того, что данная технология в домашних условиях явно не обязательна, мы отключим IPv6. Для этого необходимо отредактировать конфигурационный файл “sysctl.conf”, давайте откроем его текстовым редактором “Nano”, о котором подробно вы можете прочесть в данной статье. И так, для редактирования данного файла в терминале набираем команду:

sudo nano /etc/sysctl.conf

В открывшемся окне спускаемся и вставляем следующий параметр:

net.ipv6.conf.all.disable_ipv6 = 1

Затем сохраняем отредактированный файл сочетаем клавиш “ctrl + o” и выходим из редактора Nano “ctrl + x”:

nextcloud на raspberry pi 9

Обновляем конфигурацию IP адресов командой:

sudo sysctl -p

Устанавливаем необходимое ПО

Давайте установим необходимое программное обеспечение, которое нам понадобиться для дальнейшей работы и установки NextClaud, переходим в терминал и вводим команду:

sudo apt install net-tools tree ncdu bash-completion curl dnsutils htop iftop pwgen screen wget
nextcloud на raspberry pi 10

Подтверждаем установку и дожидаемся ее окончания, после чего имеет смысл перезагрузить Raspberry Pi, это можно сделать как из меню, так и выполнив команду:

sudo reboot

Монтируем накопитель в fstab

Что бы при каждой загрузки системы наш накопитель (Жесткий диск) каждый раз монтировался необходимо прописать данную команду в fstab. Переходим в терминал и сначала давайте смонтируем наш накопитель, для этого вводим команду:

sudo fdisk -l

Смотрим где находится наш накопитель, в моем случае это “/dev/sda1”, определить вы можете по размеру вашего накопителя:

nextcloud на raspberry pi 11

Монтируем его ведя команду “mount”, а затем названия устройства, в моем же случае это “/dev/sda1”, затем указываем путь, куда хотим монтировать. Смонтировать устройство можно в любую директорию, для этого к примеру вы можете создать в домашнем каталоге пользователя папку, и прописав к ней путь, смонтировать накопитель в нее. Я же буду монтировать в каталог “mnt”:

sudo mount /dev/sda1 /mnt
nextcloud на raspberry pi 12

Проверить примонтировался ли накопитель, можно командой “mount”, как видно на скриншоте ниже, накопитель примонтировался:

sudo mount
nextcloud на raspberry pi 13

Теперь переходим к редактированию fstab, открываем его текстовым редактором Nano введя команду:

sudo nano /etc/fstab

Спускаемся в самый низ и в конце вписываем наш накопитель, в мем случае это – /dev/sda1, затем указываем куда он будет монтироваться, в моем случае это каталог /mnt, вы же можете указать любой каталог, который захотите. Далее указываем параметры “ext4 defaults”, это формат и параметр монтирования нашего накопителя. Далее вписываем “0 3”, после чего сохраняем и выходим из конфигурационного файла fstab:

/dev/sda1 /mnt ext4 defaults 0 3
nextcloud на raspberry pi 14

Прежде чем продолжить, давайте убедимся, что мы все правильно вписали в fstab, и наш накопитель будет монтироваться автоматически при каждом запуске системы. Для проверки давайте его сначала размонтируем его командой “umount”, а затем укажем наш накопитель /dev/sda1:

sudo umount /dev/sda1

Смотрим, размонтировался ли наш накопитель, для этого вводим команду “mount”

sudo mount

Как видно на скриншоте, наш накопитель сейчас не смонтирован:

nextcloud на raspberry pi 15

Теперь давайте смонтируем его при помощи fstab, для этого вводим все ту же команду “mount”, но, добавляем ключ “-a”:

sudo mount -a

А затем все так же проверяем, примонтировался ли наш накопитель, и как вы можете увидеть, он появился в списке. Что означает, что параметры в fstab заданы правильно:

sudo mount
nextcloud на raspberry pi 16

Устанавливаем Apache2 php mysql

Переходим к установке так называемого LAMP, так как на нем будет работать веб-интерфейс NextCloud. Для начала необходимо установить необходимые пакеты, для этого отправляемся в терминал и вводим команду:

sudo apt install apache2 php7.3 php7.3-gd php7.3-curl php7.3-common php7.3-intl php-pear php-apcu php7.3-xml libapache2-mod-php7.3 php7.3-mbstring php7.3-zip php7.3-mysql mariadb-server-10.3 smbclient imagemagick php-imagick

Подтверждаем установку нажав на “Enter” и дожидаемся когда все пакеты установятся. Когда установка завершиться, давайте включим некоторые модули, которые могут пригодятся в работе с Nextcloud:

sudo a2enmod rewrite headers env dir mime
nextcloud на raspberry pi 17

Затем необходимо перезапустить Apache2, вводим команду для перезапуска Apache2:

sudo systemctl restart apache2

Далее необходимо сконфигурировать базу данных, вводим для этого команду:

sudo mysql_secure_installation

Нас попросят ввести пароль от root пользователя, но так как мы его не задавали для базы данных, оставляем данное поле незаполненным и просто нажимаем на “Enter”:

nextcloud на raspberry pi 18

Далее необходимо задать тот самый пароль, вводим букву “Y” и в появившейся строке “New password” вводим пароль, затем снова нажимаем на “Enter” и в строке “Re-enter new password” подтверждаем его:

nextcloud на raspberry pi 19

На все остальные вопросы можно просто нажимать на “Enter”. Создаем базу данных для NextCloud, для этого вводим команду:

sudo mysql

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

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
nextcloud на raspberry pi 20

Создадим нового пользователя, замените имя “cyber_x” на имя вашего пользователя, а также вместо “password” придумайте пароль для вашего пользователя базы данных, вводим команду:

CREATE USER cyber_x@localhost identified by 'password';
nextcloud на raspberry pi 21

Затем даем нашему пользователю привилегии, не забудьте заменить имя, считываем привилегии и выходим, для этого выполняем ряд следующих команд:

GRANT ALL PRIVILEGES on nextcloud.* to cyber_x@localhost;
FLUSH privileges;
quit;

Устанавливаем Nextcloud

Для того, что бы закачать свежую версию NextCloud, рекомендую скопировать ссылку с официального сайта, а затем продолжить устаовку. Для этого можно перейти на официальный сайт NextCloud и скопировать ссылку с кнопки, для этого нажимаем правой клавишей мышки и выбираем пункт “Копировать адрес ссылки”. Это на тот случай, если эту статью будут читать в то время, когда NextCloud выпустит свежую версию своего продукта:

nextcloud на raspberry pi 22

После того как вы скопировали ссылку, переходим в директорию “/var/www” при помощи команды “cd”, и скачиваем архив с NextCloud в эту директорию, утилитой “wget”:

wget https://download.nextcloud.com/server/releases/nextcloud-20.0.1.zip
nextcloud на raspberry pi 23

Мы скачали архив, который теперь необходимо распаковать, распаковывать будем утилитой “unzip”, но, для начала необходимо посмотреть на названием самого архива, вводим команду “ls -la”, а затем распаковываем введя команду “unzip” и название архива:

sudo unzip nextcloud-20.0.1.zip
nextcloud на raspberry pi 24

Теперь можно удалить не нужный архив, это можно сделать командой “sudo rm -r nextcloud-20.0.1.zip”. Зададим права на директорию “nextcloud”, которую мы извлекли из архива, так как по умолчанию она будет принадлежать только root пользователю, а нам это не нужно. Что бы изменить права, выполним команду:

sudo chown -R www-data:www-data /var/www/nextcloud/
nextcloud на raspberry pi 25

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

sudo nano /etc/apache2/sites-available/nextcloud.conf 

Вписываем в него следующую конфигурацию, заменив в ней только доменное имя “cloud-cyber-x.ru” на любое свое, по нему в будущем вы сможете подключаться к NextCloud через браузер:

<VirtualHost *:80>
         DocumentRoot /var/www/nextcloud
         ServerName cloud-cyber-x.ru
       <Directory /var/www/nextcloud/>
            Options +FollowSymlinks
            AllowOverride All
            Require all granted
               <IfModule mod_dav.c>
                    Dav off
               </IfModule>
       </Directory>
</VirtualHost>
nextcloud на raspberry pi 26

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

sudo a2dissite 000-default.conf
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
nextcloud на raspberry pi 27

Первичная настройка NextCloud

Пришло время к первичной настройке NextCloud. Открываем браузер и в адресной строке вводим IP адрес нашей Raspberry Pi, на которою мы и устанавливали Nextcloud, и мы попадаем на стандартную первичную страницу данного сетевого облака:

nextcloud на raspberry pi 28

Первым делом давайте зададим логин и пароль для записи администратора, в соответствующих полях вписываем к примеру логин “admin” и пароль к нему пусть будет “password”. Я же настоятельно рекомендую для данной записи задать пароль как можно надежнее, и хранить его например в менеджере паролей KeePassXC, о котором вы можете прочесть в этой статье:

nextcloud на raspberry pi 29

Далее указываем наш носитель, на который мы будем сохранять данные, для этого возвращаемся в терминал и давайте создадим на нашем носителе каталог под названием “Documents”, вы же можете задать любое имя. Для создания каталога мы воспользуемся утилитой “mkdir”, о которой читайте в этой статье. Как вы помните, наш носитель монтируется в каталог “/mnt”, переходим в него и создаем в нем каталог “Documents”

cd /mnt
sudo mkdir Documents
nextcloud на raspberry pi 30

Задаем права на только что созданный каталог, так как на данный момент права на этот каталог принадлежат root пользователю, а нам необходимо, что бы он принадлежал www-data. Для этого вводим команду:

sudo chown -R www-data:www-data Documents
nextcloud на raspberry pi 31

Возвращаемся в браузер и в поле “Каталог с данными” вписываем путь, где и будут хранится данные, а именно тот самый каталог, который мы только что создали. В моем случае он находится по адресу “/mnt/Documents/”:

nextcloud на raspberry pi 32

Далее необходимо задать пароль и логин от базы данных, которую мы создавали, заполняем соответствующие поля. В моем случае логин от базы данных был “cyber_x”, а пароль “password”, название базы данных было “nextcloud”, после чего нажимаем на кнопку “Завершить установку”:

nextcloud на raspberry pi 33

Немного подождем, когда процесс завершиться, после чего вводите логин и пароль от администратора и попадаете в панель управления NextCloud, дальше можно создавать новых пользователей, каталоги, и так далее.

nextcloud на raspberry pi 34

Заключение

Все действия намеренно проводил в графическом интерфейсе, а можно было бы многое сделать и через SSH, но, не все любят работать без графики. Так же, старался упростить данный мануал по развертыванию NextCloud на Raspberry Pi, на сколько это вообще возможно. У вас может возникнуть вопрос по поводу старта и первоначальной настройки операционной системы на Raspberry Pi, почему я пропустил данный пункт. Отвечу, так как у меня нет возможности захвата видео с Raspberry Pi, по этому и не описал первоначальную настройку операционной системы. В целом, могу сказать, что данная связка NextCloud + Raspberry Pi показала себя довольно-таки не плохо, а с учетом того, что размеры данного облака получаются компактные, сервер можно хранить где угодно. Главное, что бы была флешка шустрая, рекомендуется для этого использовать MicroSD class 10. Подробнее про MicroSD можно прочесть на официальном сайте Raspberry Pi, перейдя по данной ссылке.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

8 комментариев к «Устанавливаем NextCloud на Raspberry Pi»

  1. Добрый вечер. Большое спасибо за инструкцию. Все по ней настроил и облако заработало. Но столкнулся с проблемой, что после перезагрузки raspberry облако не работает. Подскажите, пожалуйста, как сделать так, чтобы после перезагрузки малинки облако запускалось автоматически?

    1. Не помню если честно как я это делал, да и малинка сейчас занята, погуглите, где то находил инструкцию

  2. И по умолчанию облако работает на протоколе http. Подскажите, пожалуйста, как перевести на https?

  3. Сделал все по инструкции. При подключении пишет ошибку “страница не доступна, сайт 192.168.0.103 не отправил данные.

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

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

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Отказаться
Политика конфиденциальности