Rýchly štart: minimálne nasadenie Welley
Najkratšia cesta k bežiacej inštancii Welley na jednom hostiteľskom serveri s Linuxom, v ľubovoľnom cloude alebo na vlastnom hardvéri. Používa iba tie prepínače, ktoré CLI naozaj vyžaduje. Všetko ostatné zostáva v predvolenom nastavení.
Čo získate: platformu, RAG pipeline, Nginx, Redis a pribalený kontajner s PostgreSQL, s certifikátom od Let's Encrypt vydaným počas inštalácie. Bez spravovanej databázy, bez CDN, bez telemetrie a bez integrácie so Slackom. Tie nájdete v návodoch pre AWS EC2 a DigitalOcean.
1. Čo potrebujete
Hostiteľský server s Linuxom
- Ubuntu 24.04 LTS (alebo porovnateľnú aktuálnu distribúciu).
- Na začiatok 2 vCPU, 4 GB RAM a 60 GB disk.
- Verejnú adresu IPv4, ktorá sa nemení.
- Prichádzajúce TCP porty 80 a 443 otvorené do internetu a port 22 otvorený pre vás. Port 80 je potrebný počas inštalácie na overenie certifikátu a potom na týždennú obnovu.
- Používateľa bez práv root so
sudo. Návod všetko spúšťa pod týmto používateľom, ďalej ho označujeme<user>.
DNS
Dva záznamy, oba smerujúce na verejnú IP adresu hostiteľského servera:
| Záznam | Účel |
|---|---|
<domain> |
samotný web |
storage.<domain> |
nahrané súbory a statické súbory, pretože toto nastavenie nemá CDN |
Vytvorte ich ešte pred začiatkom: CLI skontroluje, či sa obe mená prekladajú na tento server, a ak nie, zastaví sa.
E-mailové záznamy DNS
Doména vašej adresy --smtp-from potrebuje záznamy na overenie e-mailov. Bez nich Gmail, Outlook a ďalší veľkí poskytovatelia často zahodia poštu pre príjemcov, ktorí od vás ešte nikdy nič nedostali. Týka sa to každého pozvania a každého potvrdenia registrácie. Pošta sa pritom nedostane ani do spamu, hoci váš poskytovateľ SMTP hlási, že ju odoslal.
| Záznam | Typ | Hodnota |
|---|---|---|
<mail-domain> |
TXT | SPF, napríklad v=spf1 include:<provider> ~all. Presnú hodnotu zistíte u svojho poskytovateľa SMTP |
_dmarc.<mail-domain> |
TXT | DMARC, napríklad v=DMARC1; p=none; rua=mailto:dmarc@<mail-domain> |
<selector>._domainkey.<mail-domain> |
TXT alebo CNAME | DKIM, vygeneruje ho váš poskytovateľ SMTP, keď overíte doménu |
Doména môže mať iba jeden záznam SPF. Ak už nejaký má, pridajte do neho svojho poskytovateľa namiesto vytvárania druhého záznamu. Príkaz create upozorní, ak SPF alebo DMARC chýba, ale nezastaví sa. DKIM skontrolovať nevie, pretože názov selektora je špecifický pre vášho poskytovateľa.
DKIM nevynechávajte. Mnohí poskytovatelia, medzi nimi Amazon SES, odosielajú predvolene s vlastnou doménou ako obálkovým odosielateľom. SPF potom overuje doménu poskytovateľa, nie vašu, takže sa nezapočíta do DMARC a DMARC môže prejsť iba vďaka DKIM. Stav DKIM skontrolujte v konzole svojho poskytovateľa. V Amazon SES je pod Verified identities / <mail-domain> / DKIM a musí tam byť Successful. SES Easy DKIM zverejní tri záznamy CNAME s názvom <token>._domainkey.<mail-domain>.
Prihlasovacie údaje SMTP
Hostiteľ, používateľ, heslo a adresa odosielateľa, od ľubovoľného poskytovateľa. Platforma ich potrebuje na potvrdenie e-mailu a obnovu hesla a CLI bez nich inštaláciu odmietne spustiť. Predvolené nastavenie predpokladá odosielanie cez STARTTLS na porte 587.
E-mailovú adresu správcu pre prvé prihlásenie a obnovu hesla.
2. Nainštalujte Docker
Postupujte podľa oficiálnych pokynov pre vašu distribúciu: Install Docker Engine. Potom svojmu používateľovi umožnite komunikovať s démonom:
sudo usermod -aG docker <user>
Odhláste sa a znova prihláste, potom skontrolujte, či sú obe súčasti na mieste:
docker ps
docker compose version
3. Stiahnite CLI
Vyberte hodnotu platform, ktorá zodpovedá vášmu serveru:
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. Nasadenie
./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
Týchto šesť prepínačov je celá povinná sada. Príkaz skontroluje DNS, zapíše súbory nasadenia, vydá certifikát cez Certbot a spustí kontajnery. Počítajte s niekoľkými minútami.
Predvolené nastavenia, ktoré tu prijímate:
| Nastavenie | Predvolená hodnota |
|---|---|
| Inštalačný adresár | ~/.welley/<project>, kde <project> je doména, v ktorej je každý nealfanumerický znak nahradený znakom _ (takže example.com sa zmení na example_com) |
| Databáza | pribalený kontajner s PostgreSQL, dáta v inštalačnom adresári |
| Certifikáty | Let's Encrypt cez Certbot, automaticky obnovované raz týždenne |
| Nahrané a statické súbory | sprístupnené z https://storage.<domain> |
| Aktualizácie | kanál stable, kontrola každý deň, inštalácia bez výpadku, ak je to možné |
5. Prvé prihlásenie
Vygenerované heslo správcu sa vypíše do logu platformy:
docker logs example_com-platform-blue-1 | grep "Auto-init complete"
Otvorte https://<domain>, prihláste sa ako správca s e-mailom, ktorý ste zadali cez -e, a hneď zmeňte heslo. Dovtedy s logom zaobchádzajte ako s tajomstvom.
6. Kontrola výsledku
docker ps
Mali by ste vidieť po jednom kontajneri pre nginx, platform-blue, rag-pipeline-blue, postgres, redis, autoheal a snoopy, všetky pomenované <project>-<service>-1.
Ak sa niečo pokazilo
Príkaz create sa nespustí druhýkrát, kým existuje adresár projektu alebo jeho kontajnery. Ak sú súbory v poriadku a nespustili sa iba niektoré kontajnery, vytvorte ich znova bez straty akýchkoľvek dát:
./wlycli deploy restart -d example.com
Ak je potrebné nasadenie urobiť odznova, odstráňte ho a začnite od začiatku. Tým sa vymaže pribalená databáza spolu so všetkým ostatným:
./wlycli deploy delete -d example.com --yes-please-delete-all-the-data