Собственный облачный сервер
Давно хотел поднять собственный облачный сервер для хранения каких то личных моментов (фото, видео и тд…), т.к. хранить на смартфоне всю информацию не очень хорошо (забивает драгоценную память на моем iPhone), а так же хотелось бы всегда иметь под рукой доступ к часто используемым файлам.
Наткнулся на Nextcloud (open source программа, с помощью которой можно организовать собственное облачное хранилище). Выглядит все это дело так:







а так же разделы: События, контакты, почта, календарь, заметки и многое другое . Кстати, присутствует поддержка офисных документов… Еще в nextcloud имеется центр приложений, откуда можно скачать полезные для себя скрипты.
В этой статье я распишу установку пакета на сервере.
В моем случае параметры сервера такие:
CPU: Intel(R) Xeon(R) CPU E5-2643 0 @ 3.30GHz (1 core)
HDD: 512GB
ОЗУ: 4GB
OS: UBUNTU 22.04
Нагрузка:

Установку операционной системы на сервер или какие либо настройки виртуальной тачки (своей или арендованной), я описывать не буду, мануалов по этому делу полно в интернете.
Итак установка NextCloud:
Подготовка к установке
Для начала установим необходимые пакеты:
Веб-сервер Apache, базу данных MariaDB и различные модули для PHP:
sudo apt update sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip unzip
Мы установили основной набор пакетов для Nextcloud. Если вы решите добавить дополнительные приложения (аддоны), тогда возможно потребуется установить дополнительные пакеты. Перед началом установки новых приложений рекомендуется внимательно изучить их требования и устанавливать необходимые пакеты по мере необходимости.
Большинство настроек Nextcloud сохраняет в базе данных. Поэтому перед первым запуском мы создадим базу данных и пользователя, а сам Nextcloud автоматически сформирует необходимые таблицы, индексы и представления. Для доступа к нашему локальному серверу мы воспользуемся простой консольной утилитой mysql.
sudo mysql
Создадим пользователя и БД. Введите следующие команды, и не забудьте установить пароль! Также можно указать другое имя пользователя и БД при необходимости.
CREATE USER 'nextcloud_user'@'localhost">localhost' IDENTIFIED BY 'ВАШ__ПАРОЛЬ'; CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost">localhost';FLUSH PRIVILEGES;
База настроена, выходим из командной строки SQL:
quit;
Установка и настройка Nextcloud
Теперь мы готовы к установке Nextcloud. Скачиваем самую последнюю версию и распаковываем ее:
unzip latest.zip
Затем переместим распакованное приложение директорию /var/www:
sudo cp -r nextcloud /var/www
И сменим владельца каталога, чтобы Apache мог корректно обрабатывать все вложенные файлы:
sudo chown -R www-data:www-data /var/www/nextcloud
Настройка веб-сервера Apache
Теперь настроим Apache. Создайте файл /etc/apache2/sites-available/nextcloud.conf с настройками виртуального хоста.
В качестве доменного имени мы будем использовать cloud.YOU_DOMAIN.com, а вам необходимо указать свой домен:
<VirtualHost *:80> DocumentRoot /var/www/nextcloud/ ServerName cloud.YOU_DOMAIN.com
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
Чтобы Apache начал использовать этот файл конфигурации, выполните в shell-консоли команду:
a2ensite nextcloud.conf
Далее активируем несколько модулей Apache, которые необходимы Nextcloud для корректной работы:
a2enmod rewritea2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Перезапустим Apache, чтобы применить все выполненные настройки:
service apache2 restart
Получение TLS-сертификата
Nextcloud в настоящее время готов к использованию, однако работает по протоколу HTTP и не обеспечивает шифрование трафика. Для увеличения безопасности сервера мы планируем выдать и настроить бесплатный TLS-сертификат от Let’s Encrypt. Первым шагом будет установка утилиты certbot, которая автоматически генерирует и обновляет TLS-сертификаты.
sudo apt-get install -y certbot
Запросим сертификат с помощью команды (не забудьте в параметре указать свое доменное имя):
sudo certbot --nginx -d cloud.my-domain.com
Затем Certbot запросит указать адрес электронной почты и согласиться с условиями использования. На этот адрес будут приходить уведомления о скором истечении срока сертификата. Сертификаты Let’s Encrypt действительны 90 дней. Для автоматического обновления сертификата добавьте задание cron или таймер systemd, который будет запускать следующую команду.:
sudo certbot renew --quiet
Теперь необходимо включить соответствующие модули в Apache, чтобы он начал использовать SSL-сертификаты:
a2enmod ssl a2ensite default-ssl
И еще раз перезапустим Apache, чтобы он применил новые настройки:
service apache2 reload
Инициализация облака Nextcloud и начальный интерфейс
Откроем в браузере страницу https://cloud.YOUR_DOMAIN.com и увидим окно первоначальной настройки Nextcloud. Создадим учетную запись администратора, а также укажите название БД, пользователя и пароль, которые мы заводили на этапе настройки MariaDB. При необходимости также можете поменять каталог, где будут размещаться пользовательские данные.

Затем появится окно для ввода учетной записи, где требуется ввести логин и пароль для только что созданного пользователя. После завершения начальной настройки мы перейдем к основному интерфейсу Nextcloud. Здесь уже доступны примерные файлы для ознакомления и базовые приложения активированы, такие как синхронизация файлов, просмотр фотографий, создание записей и другие функции.
Nextcloud успешно установлен и готов к использованию. Теперь вы можете создавать новых пользователей, добавлять дополнительные приложения и настраивать Nextcloud различными способами по вашему усмотрению.
Ссылки
Заключение
Мы успешно развернули и сконфигурировали облачное хранилище Nextcloud на нашем собственном сервере. Все требуемые зависимости были установлены, MariaDB и Apache были предварительно настроены для развертывания, а сервер был защищен бесплатным SSL-сертификатом от Let’s Encrypt для обеспечения шифрования трафика.
После установки настоятельно рекомендую заглянуть в раздел «Параметры сервера - Общие сведения» и убедиться в отсутствии ошибок сервиса. (В моем случае были ошибки с SSL сертификатом, а так же некоторые системные ошибки, решил гугля, а так же читая документацию)


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



Наш облачный сервер готов, приятного пользования!


