Skip to content

Встановлення ​

Ця сторінка проведе вас через розгортання PWA Hub на власному сервері - від чистої машини до робочої панелі. Інсталятор бере на себе всю рутину: встановлює все необхідне, створює службового користувача, розкладає файли, генерує паролі й запускає систему. Знадобиться ліцензійний ключ - інсталятор запитає його першим. Потім залишиться відкрити доступ через Cloudflare і вказати домен панелі під час першого входу.

Домен панелі задається під час активації ліцензії

Одразу після встановлення панель відкривається за IP сервера. Домен, на якому вона житиме далі, ви вкажете на екрані ліцензії - будь-який хост, DNS якого веде через Cloudflare на ваш сервер: піддомен вашого домену (наприклад, admin.<ваш-домен>) або окремий домен. Після активації панель відповідає лише на цьому домені, а вхід за IP закривається. DNS-запис для нього підготуйте заздалегідь (див. крок 1 нижче та розділ «Домени та Cloudflare»).

Увесь процес займає кілька хвилин. Нижче - покроково, з готовими командами: копіюйте і вставляйте.

Встановлення однією командою ​

Підключіться до сервера через SSH і запустіть:

bash
curl -fsSL https://install.pwahub.org/bootstrap.sh | sudo bash

Насамперед інсталятор запитає ліцензійний ключ:

text
License key (XXXX-XXXX-XXXX-XXXX), then press Enter:
>

Вставте ключ і натисніть Enter. Ключ одразу перевіряється: якщо він неправильний або ліцензія не активна, встановлення зупиниться з підказкою - на сервері ще нічого не змінено. Далі скрипт перевірить сервер і розгорне все необхідне. За ходом встановлення можна стежити прямо в терміналі - кожен крок позначається зеленою галочкою.

Встановлення без запитань

Ключ можна передати одразу в команді - зручно для скриптів і повторного встановлення:

bash
curl -fsSL https://install.pwahub.org/bootstrap.sh | sudo bash -s -- --license XXXX-XXXX-XXXX-XXXX

Повторний запуск на вже встановленому сервері приймає той самий ключ - дані й паролі при цьому зберігаються. Інший ключ підійде, лише якщо попередня ліцензія більше не активна; робочу ліцензію змінюють у панелі, у розділі «Ліцензія».

Вимоги до сервера ​

Перед встановленням переконайтеся, що сервер підходить: чистий VPS на Ubuntu 20.04+ або Debian 12-13, від 2 vCPU, 4 ГБ RAM і 20 ГБ диска, доступ root і вільні порти 80 та 443. Інсталятор перевірить усе сам на самому початку і зупиниться, якщо щось не так. Повний чек-лист - у розділі «Вимоги та підготовка».

Чистий сервер - найкращий старт

Розгортайте PWA Hub на свіжій машині, де ще нічого не висить на портах 80 і 443. Так інсталятор відпрацює без конфліктів, і система одразу підніметься як слід.

Що робить інсталятор ​

Коротко: інсталятор перевіряє сервер, встановлює все необхідне, створює службового користувача pwa та розкладає файли у /opt/pwa, генерує .env з паролями й самопідписаний SSL-сертифікат під режим Cloudflare Full, потім запускає систему й показує підсумкову інформацію з адресою панелі.

Увесь вивід дублюється в лог-файл, тож нічого не загубиться, навіть якщо ви закрили термінал:

bash
cat /var/log/pwa-bootstrap.log

Де взяти паролі ​

У самому кінці інсталятор покаже блок Generated Configuration - адресу системи та пароль адміністратора. Виглядає він приблизно так:

text
Generated Configuration:
APP_URL: http://203.0.113.10
Admin Password: xxxxxxxxxxxxxxxx

! IMPORTANT: Save the admin password!
All service credentials are stored in: /opt/pwa/.env

Не встигли скопіювати? Нічого страшного - ті самі значення завжди можна переглянути у двох місцях:

bash
cat /var/log/pwa-bootstrap.log
cat /opt/pwa/.env

ADMIN_PASSWORD - це пароль першого адміністратора з поштою [email protected], під яким ви ввійдете до панелі. Збережіть його одразу.

Збережіть пароль надійно

Пароль адміністратора генерується один раз під час встановлення. Перепишіть його в менеджер паролів або інше безпечне місце - відновити його можна лише з .env на самому сервері, а туди після налаштування ви навряд чи будете заглядати щодня.

Кроки після встановлення ​

Інсталятор розгортає систему й запускає її автоматично - коли встановлення завершилося, стек уже працює. Залишається один крок: відкрити до неї доступ через Cloudflare. Домен і ліцензію ви вкажете прямо в панелі під час першого входу - файли на сервері редагувати не потрібно.

Підготуйте домен для панелі ​

Вирішіть, за якою адресою відкриватиметься панель: зазвичай це піддомен вашого домену на кшталт admin.<ваш-домен>, але підійде й будь-який інший хост, аж до окремого домену. Обмежень два: хост має обслуговуватися Cloudflare і не збігатися з доменом якогось PWA.

У Cloudflare додайте для цього хоста проксійований A-запис, що вказує на IP вашого сервера (той, на який ви ставили PWA Hub - інсталятор показує його в блоці Generated Configuration). Поля запису та порядок за кроками - у розділі «Домени та Cloudflare».

Додавання A-запису для домену панелі в Cloudflare (у прикладі - admin)

Запис потрібен до моменту активації ліцензії

Перший вхід відбувається за IP, тому без запису ви не застрягнете. Але домен, який ви вкажете на екрані ліцензії, має вже резолвитися на сервер - інакше після активації панель не відкриється ні за доменом, ні за IP. Записи в Cloudflare застосовуються зазвичай за хвилину. DNS для доменів ваших PWA система пізніше створює сама.

Перший вхід ​

Відкрийте панель у браузері за IP сервера - https://<IP-сервера>/ (адресу показано в блоці Generated Configuration).

Підтвердьте перехід ​

Поки в панелі немає домену, вона працює за IP із самопідписаним сертифікатом, і браузер попередить, що з'єднання не захищене. Для першого входу це нормально - підтвердьте перехід:

  • Chrome: на сторінці Your connection is not private («Ваше з'єднання не конфіденційне», NET::ERR_CERT_AUTHORITY_INVALID) натисніть Advanced («Додатково»), потім посилання Proceed to <IP> (unsafe) («Перейти на сайт <IP> (небезпечно)»).
  • Safari: натисніть Show Details («Показати подробиці»), потім visit this website («відвідати цей вебсайт») і підтвердьте.
  • Firefox: натисніть Advanced… («Додатково…»), потім Accept the Risk and Continue («Прийняти ризик і продовжити»).

Chrome: попередження про сертифікат, кнопка Advanced

Chrome: після Advanced - посилання Proceed to <IP> (unsafe)

Попередження більше не з'явиться, коли панель переїде на домен: там з'єднання захищає Cloudflare.

Увійдіть під першим адміністратором:

  • Пошта: [email protected]
  • Пароль: значення ADMIN_PASSWORD з блоку Generated Configuration.

Після входу ви потрапите на екран ліцензії: ключ із встановлення там уже підставлено - вкажіть домен панелі в рядку Panel domain і натисніть Update License (докладно - у розділі «Ліцензія»). Панель переїде на цей домен, а вхід за IP закриється - далі відкривайте її лише за доменом.

Панель не відкривається за доменом?

Майже завжди річ у DNS-записі цього хоста в Cloudflare (див. вище). Перевірте, що запис створено, він вказує на IP вашого сервера та проксіюється (помаранчева хмара). Записи застосовуються за хвилину-дві. Відповідь 403 під час заходу за IP після активації - не помилка: вхід за IP закрито навмисно.

Одразу змініть пароль

ADMIN_PASSWORD згенеровано автоматично, і він відомий усім, хто бачив лог встановлення. Після першого входу відкрийте сторінку профілю (меню в правому верхньому куті → Profile) і задайте власний пароль у картці Change password - так панель буде під вашим повним контролем.

Активуйте ліцензію ​

Під час першого входу, поки ліцензію не активовано, відкриється екран ліцензії. Ключ, який ви ввели під час встановлення, уже стоїть у полі - укажіть домен і оновіть ліцензію, панель розблокується. Домен прив'язується до ліцензії й застосовується одразу, без правки .env та перезапуску. Який вигляд має цей екран - у розділі «Вхід у систему», докладніше про активацію - у розділі «Ліцензія».

Оновлення ​

Тримати PWA Hub в актуальному стані просто - усе робиться прямо з панелі, без SSH. Як оновлювати систему й обслуговувати сервер, описано в розділі «Обслуговування сервера».