Szybki start: minimalne wdrożenie Welley
Najkrótsza droga do działającej instancji Welley na jednym hoście z Linuksem, w dowolnej chmurze lub na własnym sprzęcie. Ten przewodnik używa tylko flag, których CLI naprawdę wymaga. Wszystko inne zostaje przy wartościach domyślnych.
Co dostajesz: platformę, potok RAG, Nginx, Redis i wbudowany kontener PostgreSQL, z certyfikatem Let's Encrypt wystawianym podczas instalacji. Bez zarządzanej bazy danych, bez CDN, bez telemetrii i integracji ze Slackiem. Jeśli ich potrzebujesz, zajrzyj do przewodników dla AWS EC2 i DigitalOcean.
1. Wymagania wstępne
Host z Linuksem
- Ubuntu 24.04 LTS (lub podobna aktualna dystrybucja).
- 2 vCPU, 4 GB RAM, 60 GB dysku na początek.
- Publiczny adres IPv4, który się nie zmienia.
- Przychodzący ruch TCP na portach 80 i 443 otwarty dla internetu, a port 22 otwarty dla ciebie. Port 80 jest potrzebny podczas instalacji do weryfikacji certyfikatu, a potem do cotygodniowego odnawiania.
- Użytkownik bez uprawnień roota z
sudo: przewodnik wykonuje wszystko jako ten użytkownik, w dalszej części oznaczony jako<user>.
DNS
Dwa rekordy, oba wskazujące na publiczny adres IP hosta:
| Rekord | Przeznaczenie |
|---|---|
<domain> |
sama strona |
storage.<domain> |
przesłane i statyczne pliki, ponieważ ta konfiguracja nie ma CDN |
Utwórz je przed rozpoczęciem: CLI sprawdza, czy obie nazwy wskazują na ten host, i zatrzymuje się, jeśli tak nie jest.
Rekordy DNS dla poczty
Domena twojego adresu --smtp-from potrzebuje rekordów uwierzytelniania poczty. Bez nich Gmail, Outlook i inni więksi dostawcy często odrzucają wiadomości do odbiorców, którzy nigdy wcześniej nic od ciebie nie dostali. Dotyczy to każdego zaproszenia i potwierdzenia rejestracji, a wiadomość nie trafia nawet do spamu, choć twój dostawca SMTP zgłasza ją jako wysłaną.
| Rekord | Typ | Wartość |
|---|---|---|
<mail-domain> |
TXT | SPF, na przykład v=spf1 include:<provider> ~all. Dokładną wartość weź od swojego dostawcy SMTP |
_dmarc.<mail-domain> |
TXT | DMARC, na przykład v=DMARC1; p=none; rua=mailto:dmarc@<mail-domain> |
<selector>._domainkey.<mail-domain> |
TXT lub CNAME | DKIM, generowany przez dostawcę SMTP, gdy weryfikujesz domenę |
Domena może mieć tylko jeden rekord SPF. Jeśli już jakiś ma, dodaj do niego swojego dostawcę zamiast tworzyć drugi rekord. create ostrzega, gdy brakuje SPF lub DMARC, ale się nie zatrzymuje. Nie może sprawdzić DKIM, ponieważ nazwa selektora zależy od dostawcy.
Nie pomijaj DKIM. Wielu dostawców, między innymi Amazon SES, domyślnie wysyła z własną domeną jako nadawcą koperty. SPF sprawdza wtedy domenę dostawcy, a nie twoją, więc nie liczy się do DMARC i tylko DKIM może sprawić, że DMARC przejdzie. Sprawdź status DKIM w konsoli swojego dostawcy. W Amazon SES znajdziesz go w Verified identities, przy pozycji <mail-domain>, w sekcji DKIM, i musi mieć wartość Successful. SES Easy DKIM publikuje trzy rekordy CNAME o nazwach <token>._domainkey.<mail-domain>.
Dane dostępowe SMTP
Host, użytkownik, hasło i adres nadawcy, od dowolnego dostawcy. Platforma potrzebuje ich do potwierdzania adresu e-mail i odzyskiwania hasła, a CLI odmawia instalacji bez nich. Domyślnie zakładane jest wysyłanie przez STARTTLS na porcie 587.
Adres e-mail administratora do pierwszego logowania i odzyskiwania hasła.
2. Zainstaluj Dockera
Postępuj zgodnie z oficjalną instrukcją dla swojej dystrybucji: Install Docker Engine. Potem pozwól swojemu użytkownikowi komunikować się z demonem:
sudo usermod -aG docker <user>
Wyloguj się i zaloguj ponownie, a potem sprawdź, czy obie części są na miejscu:
docker ps
docker compose version
3. Pobierz CLI
Wybierz wartość platform, która pasuje do twojego hosta:
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. Wdróż
./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
Te sześć flag to cały wymagany zestaw. Polecenie sprawdza DNS, zapisuje pliki wdrożenia, wystawia certyfikat przez Certbota i uruchamia kontenery. Spodziewaj się, że potrwa to kilka minut.
Wartości domyślne, które tu akceptujesz:
| Ustawienie | Wartość domyślna |
|---|---|
| Katalog instalacji | ~/.welley/<project>, gdzie <project> to domena z każdym znakiem niealfanumerycznym zastąpionym przez _ (czyli example.com zmienia się w example_com) |
| Baza danych | wbudowany kontener PostgreSQL, dane w katalogu instalacji |
| Certyfikaty | Let's Encrypt przez Certbota, odnawiane automatycznie raz w tygodniu |
| Przesłane i statyczne pliki | serwowane z https://storage.<domain> |
| Aktualizacje | kanał stable, sprawdzane codziennie i instalowane bez przestoju, gdy to możliwe |
5. Pierwsze logowanie
Wygenerowane hasło administratora jest wypisywane w logu platformy:
docker logs example_com-platform-blue-1 | grep "Auto-init complete"
Otwórz https://<domain>, zaloguj się adresem e-mail administratora podanym w -e i od razu zmień hasło. Dopóki tego nie zrobisz, traktuj log jako tajny.
6. Sprawdź wynik
docker ps
Na liście powinien być po jednym kontenerze dla nginx, platform-blue, rag-pipeline-blue, postgres, redis, autoheal i snoopy, każdy o nazwie <project>-<service>-1.
Jeśli coś poszło nie tak
create nie uruchomi się drugi raz, dopóki istnieje katalog projektu lub jego kontenery. Jeśli pliki są w porządku, a tylko część kontenerów się nie uruchomiła, utwórz je ponownie, nic nie tracąc:
./wlycli deploy restart -d example.com
Jeśli samo wdrożenie trzeba zrobić od nowa, usuń je i zacznij od początku. Pamiętaj, że to usuwa wbudowaną bazę danych razem ze wszystkim innym:
./wlycli deploy delete -d example.com --yes-please-delete-all-the-data