Сервіси, такі як Dropbox, спрощують доступ до ваших файлів з різних пристроїв. Однак, можливо, вам потрібно більше контролю. За менш ніж півгодини ви зможете запустити власну систему хмарної синхронізації на сервері під вашим управлінням, використовуючи Nextcloud.
Що таке Nextcloud?
Nextcloud – це програмне забезпечення з відкритим кодом, яке забезпечує синхронізацію файлів між вашим комп’ютером та іншими пристроями, подібно до Dropbox, OneDrive або Google Drive. Крім того, Nextcloud має велику екосистему додатків, що дозволяє робити більше, ніж просто синхронізувати файли. Ви можете використовувати Nextcloud для керування календарем, контактами або для запуску веб-клієнта електронної пошти IMAP. Можна навіть налаштувати чат в реальному часі виключно для вас та інших, хто має доступ до вашого сервера.
Але є одне важливе застереження. Після того, як ви почнете використовувати Nextcloud, ви будете відповідальні за підтримку сервера. Це означає, що крім керування програмним забезпеченням Nextcloud, вам потрібно стежити за оновленнями операційної системи сервера. Сервери Nextcloud зазвичай працюють без проблем, але якщо щось піде не так, ви будете відповідальні за виправлення.
Хороша новина полягає в тому, що існує багато блогів, форумів та довідкових сторінок, які допоможуть вам вирішити будь-які проблеми. Якщо у вас виникла проблема, швидше за все, хтось вже з цим стикався, і є готове рішення.
Що вам знадобиться для початку
Веб-інтерфейс Nextcloud за замовчуванням.
Для початку роботи з Nextcloud вам знадобляться три основні компоненти:
- Віртуальний сервер під керуванням Ubuntu 18.04
- Оболонка Bash на вашому комп’ютері
- Доменне ім’я
Для наших прикладів ми створимо кілька імен користувачів та паролів, а саме:
- Ім’я користувача та пароль root для вашого сервера
- Звичайне ім’я користувача та пароль сервера з правами адміністратора
- Ім’я користувача та пароль Nextcloud
У цьому посібнику ми використовуємо віртуальний сервер під управлінням Ubuntu 18.04 від DigitalOcean. Але ви можете використовувати будь-якого провайдера, наприклад, Linode або AWS. Незалежно від того, якого провайдера ви виберете, важливо використовувати Ubuntu 18.04 (поточну версію з довгостроковою підтримкою на момент написання), щоб уникнути будь-яких можливих проблем.
Кожен провайдер віртуальних серверів має свої особливості, але всі вони дозволяють запустити сервер за кілька кліків. Для початку рекомендуємо використовувати базовий сервер на пробний період, поки ви не звикнете до Nextcloud. DigitalOcean пропонує сервер за 5 доларів з 1 ГБ оперативної пам’яті, 1 ядром ЦП, 1 ТБ трафіку та 25 ГБ пам’яті. Linode пропонує аналогічний VPS за ту ж ціну.
Якщо ви не використовуєте ключі SSH, попросіть провайдера надати дані для входу root на основі пароля. Після запуску сервера і вашого ознайомлення з командним рядком, ви можете переглянути сторінки довідки вашого провайдера щодо того, як додати ключі SSH для більш безпечного доступу.
Якщо на вашому комп’ютері встановлено Windows 10, вам потрібно буде встановити підсистему Windows для Linux та отримати оболонку Bash з утилітами Linux, щоб продовжити. Користувачам Linux або macOS достатньо програми Terminal. Більшість терміналів Bash мають встановлений SSH, але якщо ні, просто введіть `sudo apt-get install ssh` у вікні терміналу для його встановлення.
Для доменного імені не обов’язково використовувати розширення .COM. Його використовуватимете ви та, можливо, ваші близькі. Наприклад, ми знайшли доменне ім’я .XYZ всього за 1 долар на рік, яке чудово працюватиме.
Підготовка сервера
Щоб підготувати сервер до роботи, вам потрібно налаштувати звичайний обліковий запис користувача з правами адміністратора. Після початкової конфігурації входити як користувач root – це дуже погана ідея.
Наразі ви повинні мати IP-адресу та пароль root від вашого провайдера. IP-адреса – це спосіб підключення до сервера, а пароль – для входу.
Спочатку введіть наступне (замініть X на IP-адресу вашого сервера) і натисніть Enter:
ssh [email protected]
Наша IP-адреса – 165.22.81.172, тому ми ввели її у команді. Якщо все піде за планом, віддалений сервер (де буде Nextcloud) попросить ваш пароль. Введіть пароль, наданий вам вашим провайдером.
Потім вам буде запропоновано встановити новий пароль для root. Оберіть будь-який пароль, але не забудьте його!
Тепер ви на своєму віддаленому сервері, і час починати працювати. Натискайте Enter після кожної команди у статті, щоб її виконати.
Спочатку ми вводимо наступне, щоб додати нового користувача на сервер:
adduser ian
Замініть “ian” на ім’я користувача, яке ви хочете використовувати. Після цієї команди вас попросять ввести пароль для нового користувача. Решта інформації, яку запитує сервер, є необов’язковою; якщо ви не хочете її надавати, просто продовжуйте натискати Enter.
Далі ми вводимо наступне, щоб надати нашому новому користувачеві адміністративні права:
usermod -aG sudo ian
Знову ж, замініть “ian” на ім’я користувача, яке ви вибрали раніше.
Тепер відкрийте друге вікно терміналу та введіть наступне, щоб перевірити, чи працюють нові облікові записи:
ssh [email protected]
Знову ж таки, замініть наведене вище на своє ім’я користувача та IP-адресу сервера. Введіть пароль, створений для цього користувача, коли з’явиться відповідне запитання. Якщо все працює, поверніться до вікна терміналу, де ви увійшли як root.
Тепер ми вводимо наступне, щоб перевірити, чи брандмауер Ubuntu працює належним чином:
ufw дозволити OpenSSH
ufw увімкнути
статус ufw
Остання команда повинна вивести щось схоже на зображення нижче, підтверджуючи, що брандмауер не блокує SSH.
Частини “80, 443/tcp” ви ще не бачите, але ми поговоримо про них пізніше. Тепер закриємо вікно root і повернемося до другого вікна терміналу зі звичайним користувачем.
Встановлення Nextcloud
Колись потрібно було окремо налаштовувати та встановлювати програмне забезпечення Nextcloud, PHP, веб-сервер та базу даних.
Набагато простіше використовувати офіційний пакет Snap, який керує всім за допомогою однієї команди. Не потрібно возитися з базою даних або турбуватися, чи використовує ваш сайт Apache чи Nginx.
Якщо ви хочете побачити, що саме встановлює пакет Snap (спойлер: це решта стеку LAMP плюс Redis), перегляньте репозиторій Nextcloud snap на GitHub.
Вводимо наступне:
sudo snap встановити nextcloud
“sudo” на початку надає звичайному користувачеві тимчасові адміністративні права. Вам буде запропоновано ввести пароль. Якщо все піде добре, за хвилину-дві Nextcloud буде встановлено і (майже) готовий до використання.
Далі вводимо наступне, щоб створити обліковий запис користувача Nextcloud, який зможе входити на наш сайт:
sudo nextcloud.manual-install ianpaul correctHorseBatteryStaple
Замініть “ianpaul” на ім’я користувача, яке ви хочете використовувати для входу в Nextcloud. “correctHorseBatteryStaple” – це наш пароль. Не використовуйте його — це приклад з відомого коміксу XKCD.
Робота з доменами
Щоб спростити собі життя, ми не будемо постійно використовувати IP-адресу для доступу до нашого сервера. Замість цього ми використовуватимемо доменне ім’я, яке, як ми вже говорили, можна придбати всього за 1 долар на рік. Для нашого прикладу ми використовуємо wdzwdzTest.xyz.
Коли у вас є домен, потрібно буде керувати налаштуваннями DNS від вашого реєстратора домену (де ви купили домен) і вказати їх на вашого провайдера сервера. Наприклад, якщо ви вибрали DigitalOcean, це будуть ns1.digitalocean.com, ns2.digitalocean.com і ns3.digitalocean.com.
Далі перейдіть до свого провайдера сервера (наприклад, DigitalOcean, Linode або будь-якого іншого) і додайте новий домен до свого облікового запису. Потрібно буде додати запис A, що вказує на вашу IP-адресу, запис CNAME, якщо ви не хочете постійно використовувати “www”, та записи NS, якщо вони не були додані автоматично.
На зображенні нижче показано приклад з DigitalOcean.
Технічно, може знадобитися до 24 годин, щоб домен почав працювати, але зазвичай це відбувається за кілька хвилин.
Повернення до Nextcloud
Після налаштування домену ми можемо повернутися до завершення налаштування Nextcloud у терміналі. Якщо ви вийшли з сервера, використовуючи свій звичайний обліковий запис ([email protected] у нашому прикладі), увійдіть знову.
Тепер ми вводимо наступне, щоб додати наш новий домен до Nextcloud:
sudo nextcloud.occ config:system:set trusted_domains 1 –value=wdzwdztest.xyz
Замініть “wdzwdztest.xyz” на свій домен.
Далі ми вводимо наступне, щоб перевірити, чи правильно додано наш новий домен:
sudo nextcloud.occ config:system:get trusted_domains
Термінал повинен вивести щось схоже на зображення нижче.
Далі вводимо наступне, щоб дозволити використання необхідних портів через брандмауер:
sudo ufw дозволити 80,443/tcp
Порт 80 використовується для незашифрованого HTTP-трафіку, а порт 443 – для SSL/TLS.
Щоб отримати безкоштовний сертифікат SSL/TLS від Let’s Encrypt, вводимо наступне:
sudo nextcloud.enable-https lets-encrypt
Генератор Let’s Encrypt попросить вашу електронну адресу та доменне ім’я Nextcloud. Просто дотримуйтесь інструкцій, і ви швидко отримаєте безпечний сертифікат. Якщо Let’s Encrypt відпрацював успішно, час перевірити налаштування.
Перейдіть до свого нового домену (наприклад, wdzwdztest.xyz). Ви повинні побачити сторінку входу в Nextcloud (див. нижче) зі значком замка в адресному рядку.
Якщо ви бачите сторінку входу, все готово. Якщо ні, зачекайте кілька годин і повторіть спробу. Якщо ви хочете вирішити проблему негайно, перевірте, чи відповідає сервер через IP-адресу.
Для цього нам потрібно ввести наступне, щоб додати IP-адресу до списку довірених доменів:
sudo nextcloud.occ config:system:set trusted_domains 2 –value=165.22.81.172
Зверніть увагу, що ми використовуємо “trusted_domains 2”, а не “trusted_domains 1”. Якщо ви знову використаєте “trusted_domains 1”, ви перезапишете своє доменне ім’я і не зможете його використовувати.
Після цього введіть IP-адресу в адресний рядок браузера, і ви побачите сторінку входу. Якщо ні, то під час встановлення щось пішло не так.
Оскільки у нас немає SSL-сертифіката для IP-адреси, ви не зможете безпечно увійти. Тому рекомендуємо видалити IP-адресу зі списку довірених доменів після того, як переконаєтеся, що сервер працює. Для цього введіть наступне:
sudo nextcloud.occ config:system:delete trusted_domains 2
Підвищення продуктивності
Якщо ваш сервер Nextcloud працює повільно, можливо, вам потрібно збільшити ліміт пам’яті. За замовчуванням він становить 128 МБ. Щоб збільшити його до 512 МБ, увійдіть на сервер через термінал і введіть:
sudo snap set nextcloud php.memory-limit=512M.
Тепер, коли Nextcloud запущено, ви можете входити в систему, переглядати доступні додатки, ділитися файлами з іншими та встановлювати Nextcloud на свій комп’ютер та мобільні пристрої для синхронізації. Nextcloud пропонує інструменти синхронізації для комп’ютерів та мобільні додатки для Windows, Mac, Linux, iPhone, iPad та Android.
Ласкаво просимо до вашої персональної хмари!