docs/quick-start.md

Швидкий старт: мінімальне розгортання Welley

Найкоротший шлях до робочого екземпляра Welley на одному хості з Linux, у будь-якій хмарі або на вашому власному обладнанні. Використовуються лише ті прапорці, яких CLI справді вимагає; усе інше залишається за замовчуванням.

Що ви отримаєте: платформу, конвеєр RAG, Nginx, Redis і вбудований контейнер PostgreSQL, а також сертифікат Let's Encrypt, який видається під час встановлення. Без керованої бази даних, CDN, телеметрії та інтеграції зі Slack (для цього дивіться посібники для AWS EC2 і DigitalOcean).

1. Що потрібно підготувати

Хост з Linux

  • Ubuntu 24.04 LTS (або подібний актуальний дистрибутив).
  • Для початку 2 vCPU, 4 ГБ RAM, 60 ГБ диска.
  • Публічна адреса IPv4, яка не змінюється.
  • Вхідні TCP-порти 80 і 443 відкриті для інтернету, а 22 відкритий для вас. Порт 80 потрібен під час встановлення для перевірки сертифіката, а згодом для щотижневого оновлення.
  • Користувач без прав root, який може виконувати sudo: посібник виконує все від імені цього користувача, нижче він позначений як <user>.

DNS

Два записи, обидва вказують на публічну IP-адресу хоста:

Запис Призначення
<domain> сам сайт
storage.<domain> завантажені та статичні файли, бо в цій конфігурації немає CDN

Створіть їх до початку: CLI перевіряє, що обидві назви вказують на цей хост, і зупиняється, якщо це не так.

DNS-записи для пошти

Домен вашої адреси --smtp-from потребує записів автентифікації пошти. Без них Gmail, Outlook та інші великі провайдери часто відкидають листи отримувачам, які раніше нічого від вас не отримували. Це стосується кожного запрошення й кожного підтвердження реєстрації, причому листи навіть не потрапляють до спаму, хоча ваш SMTP-провайдер повідомляє, що їх надіслано.

Запис Тип Значення
<mail-domain> TXT SPF, наприклад v=spf1 include:<provider> ~all; точне значення візьміть у свого SMTP-провайдера
_dmarc.<mail-domain> TXT DMARC, наприклад v=DMARC1; p=none; rua=mailto:dmarc@<mail-domain>
<selector>._domainkey.<mail-domain> TXT або CNAME DKIM, його створює ваш SMTP-провайдер, коли ви підтверджуєте домен

Домен може мати лише один запис SPF. Якщо він уже є, додайте до нього свого провайдера, а не створюйте другий. create попереджає, якщо SPF або DMARC немає, але не зупиняється. DKIM він перевірити не може, бо назва селектора залежить від вашого провайдера.

Не пропускайте DKIM. Багато провайдерів, зокрема Amazon SES, за замовчуванням надсилають листи зі своїм доменом як адресою відправника конверта. Тоді SPF перевіряє домен провайдера, а не ваш, тому він не зараховується для DMARC, і пройти DMARC допоможе лише DKIM. Перевірте стан DKIM у консолі свого провайдера. В Amazon SES він у розділі Verified identities, далі <mail-domain>, далі DKIM, і там має бути Successful. SES Easy DKIM публікує три записи CNAME з назвами <token>._domainkey.<mail-domain>.

Дані для SMTP

Хост, користувач, пароль і адреса відправника від будь-якого провайдера. Платформі вони потрібні для підтвердження електронної пошти та відновлення пароля, а CLI відмовляється встановлювати без них. За замовчуванням передбачено надсилання через STARTTLS на порту 587.

Електронна адреса адміністратора для першого входу та відновлення пароля.

2. Встановіть Docker

Дотримуйтеся офіційної інструкції для вашого дистрибутива: Install Docker Engine. Потім дозвольте своєму користувачу звертатися до демона:

sudo usermod -aG docker <user>

Вийдіть із системи й увійдіть знову, а потім перевірте, що обидві частини на місці:

docker ps
docker compose version

3. Завантажте CLI

Виберіть значення platform, яке відповідає вашому хосту:

linux/amd64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=linux/amd64" -o wlycli
chmod +x wlycli
./wlycli -v
  
linux/arm64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=linux/arm64" -o wlycli
chmod +x wlycli
./wlycli -v
  
darwin/arm64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=darwin/arm64" -o wlycli
chmod +x wlycli
./wlycli -v
  
darwin/amd64

curl -fL "https://appstore.allroads.social/v1/social.wellesley.wlycli/latest?channel=stable&platform=darwin/amd64" -o wlycli
chmod +x wlycli
./wlycli -v
  

4. Розгортання

./wlycli deploy create \
-d example.com \
-e admin@example.com \
--smtp-host smtp.example.com \
--smtp-user "$MAIL_USER" \
--smtp-password "$MAIL_PASSWORD" \
--smtp-from noreply@example.com

Ці шість прапорців і є повним набором обов'язкових. Команда перевіряє DNS, записує файли розгортання, видає сертифікат через Certbot і запускає контейнери; це триватиме кілька хвилин.

Значення за замовчуванням, які ви тут приймаєте:

Параметр За замовчуванням
Каталог встановлення ~/.welley/<project>, де <project> означає домен, у якому кожен символ, що не є літерою чи цифрою, замінено на _ (тож example.com стає example_com)
База даних вбудований контейнер PostgreSQL, дані зберігаються в каталозі встановлення
Сертифікати Let's Encrypt через Certbot, автоматично оновлюються раз на тиждень
Завантажені та статичні файли віддаються з https://storage.<domain>
Оновлення канал stable, перевіряються щодня, застосовуються без простою, де це можливо

5. Перший вхід

Згенерований пароль адміністратора виводиться в журнал платформи:

docker logs example_com-platform-blue-1 | grep "Auto-init complete"

Відкрийте https://<domain>, увійдіть з електронною адресою адміністратора, яку ви передали через -e, і негайно змініть пароль. Доки ви цього не зробили, ставтеся до журналу як до секрету.

6. Перевірте результат

docker ps

Ви маєте побачити по одному контейнеру для nginx, platform-blue, rag-pipeline-blue, postgres, redis, autoheal і snoopy, і всі вони названі за шаблоном <project>-<service>-1.

Якщо щось пішло не так

create не запуститься вдруге, поки існує каталог проєкту або його контейнери. Якщо з файлами все гаразд, а не запустилися лише деякі контейнери, перестворіть їх, нічого не втрачаючи:

./wlycli deploy restart -d example.com

Якщо ж саме розгортання потрібно зробити заново, видаліть його й почніть спочатку. Це видалить вбудовану базу даних разом з усім іншим:

./wlycli deploy delete -d example.com --yes-please-delete-all-the-data

Інші документи