Nextcloud - это пакет программного обеспечения для создания и использования файлового,а с помощью плагинов и не только файлового, хостинга. Nextcloud является бесплатным приложением с открытым исходным кодом, поэтому любой может установить и использовать свой собственный файловый хостинг на базе NextCloud.
Данная статья будет базироваться на использовании Hetzner Cloud
Для работы нам потребуется:
- Проект Hetzner Cloud
- Настроенный ssh ключ для вашего проекта Hetzner Cloud
- API токен Hetzner Cloud для вашего проекта
- Установленная утилита hcloud
- Опционально, доменное имя, A-запись которого будет вести на IP адрес вашего сервера
- Базовые навыки работы в командной строке (ssh, sudo, etc.)
В данной статье будут использованы следующие константы:
- <sshkeyid> название вашего SSH ключа в вашем проекте Hetzner cloud
- <yourservername> hostname вашего сервера
- <yourserverip> IP адрес вашего сервера
- <yourdomainname> доменное имя (опционально)
- <yourusername> имя пользователя
- <your_password> пароль пользователя
Шаг №1 - Создание сервера на базе Ubuntu
На этом этапе мы будем использовать инструмент командной строки hcloud на своей ПК, чтобы создать сервер в своем проекте Hetzner Cloud. Чтобы использовать инструмент hcloud CLI, нам нужно сначала установить его и инициализировать контекст. Для получения информации о том, как это сделать, обратитесь к руководству How-to: Hetzner Cloud CLI.
С помощью командной строки запустите:
hcloud server create --type cx11 --name <your_server_name> --image ubuntu-20.04 --ssh-key <ssh_key_id>
Это займет всего минуту. После создания системы вы получите id и <youripaddress> для созданного сервера. Обратите внимание на этот IP-адрес, потому что мы будем использовать его на более поздних этапах.
Шаг №2 - Начальная настройка сервера
Сервер не совсем готов к использованию, поскольку создан из образа Ubuntu 20.04, и нам нужно выполнить некоторую настройку сервера. Войдите на сервер из вашей локальной системы, используя ssh:
ssh root@<your_ip_address>
Это позволит вам войти на сервер как root, используя ключ ssh, который вы указали при создании сервера.
После того, как вы вошли в систему как root, создайте пользователя без полномочий root для остальных шагов. На сервере:
adduser <your_user_name>
Вам нужно будет создать пароль для этого пользователя. Ответьте на запросы соответствующим образом или нажмите Enter, чтобы принять значения по умолчанию.
Чтобы иметь возможность запускать административные задачи, вам необходимо добавить этого пользователя в группу sudo со следующим:
usermod -aG sudo <your_user_name>
Наконец, чтобы иметь возможность войти в систему с помощью ключа ssh, вы копируете открытый ключ в каталог пользователя ~ / .ssh:
rsync --archive --chown=<your_user_name>:<your_user_name> ~/.ssh /home/<your_user_name>
Убедитесь, что вы можете войти в систему под этим пользователем, открыв другой локальный терминал и войдя в систему:
ssh <your_user_name>@<your_ip_address>
Если это сработает, вы готовы продолжить настройку сервера с новой учетной записью.
Поскольку этот сервер доступен в Интернете, давайте настроим базовый брандмауэр, чтобы обеспечить некоторую защиту. Самый простой способ поддерживать брандмауэр в Ubuntu 20.04 - использовать UFW.
Используя UFW, мы разрешим доступ к серверу по ssh, но защитим все остальные порты. Сделайте следующее:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
Примите предупреждение, которое появится, когда вы включите брандмауэр, и теперь вы должны увидеть, что брандмауэр активен и что трафик ssh разрешен.
Теперь давайте обновим сервер, чтобы убедиться, что установлены все самые последние исправления и исправления безопасности. Бежать:
sudo apt update && sudo apt upgrade
Это займет несколько минут и обновит систему до последних версий, доступных в репозитории. После этого запустите:
cat /var/run/reboot-required
Если вы видите сообщение о том, что требуется перезагрузка, перезагрузитесь и продолжайте отсюда. В противном случае переходите к следующему шагу.
Шаг №3 - Установка Nextcloud
sudo apt install snapd
После установки Snap запустите:
sudo snap install nextcloud
Это займет несколько минут, чтобы собрать и установить все различные компоненты. После завершения вы готовы приступить к настройке.
Шаг №4 - Настройка Nextcloud
Чтобы иметь возможность войти в Nextcloud, вам необходимо иметь учетную запись администратора. Эту учетную запись можно создать с помощью команды:
sudo nextcloud.manual-install <ваше_имя_пользователя> <ваш_пароль>
После настройки учетной записи вы увидите сообщение об успешной установке Nextcloud.
Мы сделаем еще несколько шагов по настройке, используя интерфейс командной строки Nextcloud под названием occ ("owncloud console").
По умолчанию Nextcloud настроен на разрешение доступа только через интерфейс localhost. Для нас это не очень интересно, поэтому нам нужно добавить еще один адрес в список доступа. Вы можете увидеть существующий список разрешенных с помощью:
sudo nextcloud.occ config:system:get trusted_domains
Добавьте адрес вашего сервера в разрешенный список с помощью:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=<your_ip_address>
Если у вас есть зарегистрированное доменное имя, замените IP-адрес своим доменным именем в аргументе значения. В этом случае команда будет выглядеть так:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=<your_domain_name>
Номер списка начинается с 0, поэтому 1 указывает, что он будет следующим в списке. Если вы повторно запустите команду config: sytem: get выше, она теперь покажет, что у вас есть два доверенных домена.
Для простоты мы можем использовать самоподписанный сертификат для включения шифрования на нашем сервере. Этот тип сертификата будет отображать предупреждения в нашем браузере, когда мы заходим на наш сайт Nextcloud, но это нормально для нашего личного использования и не влияет на доступные нам функции.
Чтобы создать самоподписанный сертификат, запустите:
sudo nextcloud.enable-https self-signed
Вы получите сообщение о том, что сертификат был создан и служба перезапускается.
Если вы хотите использовать сертификат Let's Encrypt, это можно сделать, просто получив его с помощью команды:
sudo nextcloud.enable-https lets-encrypt
Чтобы использовать сертификат Let's Encrypt, вам необходимо настроить действительное доменное имя в соответствии с приведенными выше инструкциями.
Последняя часть настройки - настроить наш брандмауэр UFW для разрешения доступа к портам 80 и 443 с помощью следующей команды:
sudo ufw allow 80,443/tcp
Проверьте статус брандмауэра с помощью sudo ufw status, чтобы убедиться, что порты открыты. Теперь вы готовы войти на свой сайт Nextcloud.
Шаг №5 - Авторизация в Nextcloud
Откройте в локальном браузере страницу https: <yourserverip>. Щелкните предупреждения о ненадежном сертификате, чтобы перейти на экран входа в систему. Введите имя пользователя и пароль, которые вы установили ранее на странице входа:
Прочтите экран приветствия, на котором представлена информация о Nextcloud и доступных клиентах. Пройдя через вводный экран, вы можете изучить интерфейс и начать использовать Nextcloud.
Заключение
Если вы прочли и выполнили все пункты из статьи, значит теперь у вас есть Nextcloud, работающий в Hetzner Cloud, который вы можете использовать для обмена и хранения файлов. С помощью плагинов Nextcloud можно превратить в полноценный офисный пакет, поэтому не стесняйтесь исследовать настройки приложения и вкладку дополнений. Приятная особенность запуска Nextcloud в Hetzner Cloud заключается в том, что вы можете обновить свой сервер до более производительного экземпляра или добавить общие тома, чтобы получить больше емкости диска, когда вам это нужно.