Добавить в корзинуПозвонить
Найти в Дзене
mr__human

Домашнее удаленное хранилище на основе Nextcloud. Часть первая.

В учебных целях, мне и моим так называемым одногруппникам, понадобилось к 15 сентября облако, к которому доступ будут иметь только они и я (админ).
Понадобилось из за того,что надо быстро загружать учебный материал: Презентации, записанные вебинары и всякие онлайн лекции. Не проблема конечно же посмотреть запись и на официальном ресурсе (GB), но они загружают свои видео, только через двое суток, что не очень удобно.
Я вызвался помочь в данной проблеме, я до появления хранилища, записывал трансляции так называемого буткемпа - летнего лагеря (трансляции перед основной учебой) и загружал на всякие файлообменники через пару минут после окончания трансляции. По загрузке контента - я впереди на двое суток.
Так же учащимся, можно будет загружать свои домашние работы.
Я понимаю что можно было и ограничиться обычным ftp сервером, но тогда, что бы загружать контент, надо было качать ftp клиент.
Ну ладно дисклеймер в принципе готов, начнем!
Подготовка инфраструктуры - домашней.
Первым делом я на

В учебных целях, мне и моим так называемым одногруппникам, понадобилось к 15 сентября облако, к которому доступ будут иметь только они и я (админ).
Понадобилось из за того,что надо быстро загружать учебный материал: Презентации, записанные вебинары и всякие онлайн лекции. Не проблема конечно же посмотреть запись и на официальном ресурсе (GB), но они загружают свои видео, только через двое суток, что не очень удобно.
Я вызвался помочь в данной проблеме, я до появления хранилища, записывал трансляции так называемого буткемпа - летнего лагеря (трансляции перед основной учебой) и загружал на всякие файлообменники через пару минут после окончания трансляции. По загрузке контента - я впереди на двое суток.
Так же учащимся, можно будет загружать свои домашние работы.
Я понимаю что можно было и ограничиться обычным ftp сервером, но тогда, что бы загружать контент, надо было качать ftp клиент.
Ну ладно дисклеймер в принципе готов, начнем!

Подготовка инфраструктуры - домашней.
Первым делом я начал экспериментировать по самим операционным системам. Я системный администратор *nix систем, могу администрировать сервера на linux, BSD и Mac. В качестве начальной системы для эксперимента, была выбрана Ubuntu Server 22.04.1 - это было моей ошибкой, я намучался с ней. Для меня проще админить на Cent OS и Gentoo Linux. Ну ладно прекращаем ныть и за работу.

Изначально для самого сервера я взял Raspberry Pi 3b, sd карта на 64 гб для всей системы и небольшой вебморды для личных целей. А для файлопомойки - hdd на 500 гб. Но модем на 100 мегабит все портил, интернет соединение с внешним миром у меня более 900 мегабит, решено было переехать на Raspberry Pi 4 (8гб оперативы) - да и такая железка у меня есть. Тут то уже гигабитный интернет, но снова не то, во первых я четвертую малину (Raspberry pi 4), хотел использовать в другом проекте, потом узнаем что вышло из нее.
Во вторых адский перегрев даже с активным охлаждением, sd карта перегревается и может откиснуть. В третьих гигабитный модем малины висит на usb хабе 3.0 - не очень хорошо, когда все висит на одном хабе.
И было решено сразу перелезть на десктопное железо, для этого было решено использовать: i3-3217U, 4 гб оперативы, 120 гб ssd - для системы и 500 гб hdd для файлов. Короче использовал ноутбук старый.
Загружаем iso файл ubuntu server и пишем ее на флешку. На windows - через etcher, на unix через dd. dd if=/home/user/Downloads/ubuntuserver.iso of=/dev/sdb status=progress
где if - путь до директории, где лежит образ системы, а of путь к usb носителю. USB носитель можно узнать через lsldk. Ну и status-progress чисто показывает прогресс записи. Момент установки системы я пропущу, но скажу лишь, что lvm настройку я не ставил. После перезагрузки вводим следующие команды:
sudo -i

apt update && apt -y full upgrade
Далее я для себя установил пакеты, которые понадобятся именно, но вы можете не ставить:
apt install -y tmux mc git curl htop

И далее есть два пути установки nextcloud легкая - автоматическая и сложная - ручная. После неудачного ручного способа установки, я плюнул и поставил так: snap install nextcloud.
Все, готово. Nextcloud установлен.
Далее узнаем адрес сервер "ip a" - у меня это 192.168.5.150.
И на другом компьютере заходим на ip адрес через браузер, придумайте логин администратора и пароль - готово. Облако готово на 70%.
Далее я переназначал носитель через сам сервер.

mkdit /mnt/nextcloud - создал новую директорию для будущего носителя.
mount /dev/sda /mnt/nextcloud - где сда жесткий диск.
Настройка автоматического монтирования диска при запуске системы, монтирую диски и проверяю корректность:
nano /etc/fstab
UUID=36276a15-1ca6-4c86-9309-288c6c825ae6 /mnt/nextcloud ext4 defaults 0 0
ctrl + o ctrl + x.
mount -a
cp -a /var/snap/nextcloud/common/nextcloud/data/. /mnt/nextcloud/data
Тут мы скопировали данные с начальной директории на новую.
Теперь нам нужно поправить конфиг, что бы nextcloud понял, что его хранилище перезжает на другой диск.
Для начала ls /var/snap/nextcloud/ и в ней покажет папку с цифрами. Цифры запомните.
Далее nano /var/snap/nextcloud/ваше число/nextcloud/config/config.php
и находим 'datadirectory' => '/var/snap/nextcloud/common/nextcloud'
и меняем на 'datadirectory' => '/mnt/nextcloud' - то есть назначили новый путь.
Далее перезагрузить nextcloud не перезагружаю машину и дать разрешение на новую директорию.
snap disable nextcloud
snap enable nextcloud
snap connect nextcloud:removable-media

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

В дальнейшем оформить все качественно и красиво.
Приобрести сетевой шкаф. Поставить туда полноценный свитч, так же полноценный nas на 4 терабайта для начала. Так же поместить сервер для двух хостингов - игровой сервер и сайт для него.
Потребности растут, а сделано пока что все колхозно. Т
Ну и в ближайшее время пересобрать nextcloud на той же astra linux - импортозамещение епт.