docs/quick-start.md

# Rychlý start: minimální nasazení Welley

Nejkratší cesta k běžící instanci Welley na jednom linuxovém hostiteli, v libovolném cloudu nebo na vašem vlastním hardwaru. Používá jen přepínače, které CLI skutečně vyžaduje, vše ostatní zůstane ve výchozím nastavení.

Co dostanete: platformu, RAG pipeline, Nginx, Redis a **přibalený** kontejner s PostgreSQL, s certifikátem od Let's Encrypt vydaným během instalace. Bez spravované databáze, bez CDN, bez telemetrie a bez integrace se Slackem. Ty najdete v návodech pro AWS EC2 a DigitalOcean.

## 1\. Předpoklady

**Linuxový hostitel**

-   Ubuntu 24.04 LTS (nebo srovnatelná aktuální distribuce).
-   Pro začátek 2 vCPU, 4 GB RAM a disk 60 GB.
-   Veřejná adresa IPv4, která se nemění.
-   Příchozí TCP **80** a **443** otevřené do internetu a **22** otevřené pro vás. Port 80 je potřeba během instalace pro ověření certifikátu a potom pro týdenní obnovu.
-   Uživatel bez práv roota s `sudo`. Návod vše spouští pod tímto uživatelem, který je níže označen jako `<user>`.

**DNS**

Dva záznamy, oba ukazují na veřejnou IP adresu hostitele:

| Záznam | Účel |
| --- | --- |
| `<domain>` | samotný web |
| `storage.<domain>` | nahrané a statické soubory, protože toto nastavení nemá CDN |

Vytvořte je před začátkem: CLI ověří, že oba názvy míří na tohoto hostitele, a pokud ne, zastaví se.

**E-mailové záznamy DNS**

Doména vaší adresy v `--smtp-from` potřebuje záznamy pro ověření e-mailů. Bez nich Gmail, Outlook a další velcí poskytovatelé často zahodí poštu příjemcům, kterým jste dosud nic neposlali. Týká se to všech pozvánek i potvrzení registrace. E-mail přitom nepřistane ani ve spamu, i když ho váš poskytovatel SMTP hlásí jako odeslaný.

| Záznam | Typ | Hodnota |
| --- | --- | --- |
| `<mail-domain>` | TXT | SPF, například `v=spf1 include:<provider> ~all` (přesnou hodnotu vezměte od svého poskytovatele SMTP) |
| `_dmarc.<mail-domain>` | TXT | DMARC, například `v=DMARC1; p=none; rua=mailto:dmarc@<mail-domain>` |
| `<selector>._domainkey.<mail-domain>` | TXT nebo CNAME | DKIM, vygeneruje ho váš poskytovatel SMTP, když ověřujete doménu |

Doména může mít jen jeden záznam SPF. Pokud už ho má, přidejte do něj svého poskytovatele a nevytvářejte druhý. Příkaz `create` upozorní, když SPF nebo DMARC chybí, ale nezastaví se. DKIM ověřit nemůže, protože název selektoru je specifický pro vašeho poskytovatele.

DKIM nevynechávejte. Mnoho poskytovatelů, mimo jiné Amazon SES, odesílá ve výchozím nastavení s vlastní doménou jako obálkovým odesílatelem. SPF pak kontroluje doménu poskytovatele, ne vaši, takže se nezapočítává do DMARC a DMARC může projít jen díky DKIM. Stav DKIM zkontrolujte v konzoli svého poskytovatele. V Amazon SES ho najdete v části _Verified identities_, pak u položky `<mail-domain>`, pak v části _DKIM_, a musí tam být _Successful_. SES Easy DKIM zveřejňuje tři záznamy CNAME s názvem `<token>._domainkey.<mail-domain>`.

**Přihlašovací údaje k SMTP**

Hostitel, uživatel, heslo a adresa odesílatele, od libovolného poskytovatele. Platforma je potřebuje pro potvrzení e-mailu a obnovu hesla a CLI bez nich instalaci odmítne. Výchozí nastavení počítá s odesíláním přes STARTTLS na portu 587.

**E-mailová adresa správce** pro první přihlášení a obnovu hesla.

## 2\. Instalace Dockeru

Postupujte podle oficiálního návodu pro vaši distribuci: [Install Docker Engine](https://docs.docker.com/engine/install/). Potom svému uživateli povolte komunikaci s démonem:

```
sudo usermod -aG docker <user>
```

Odhlaste se a znovu přihlaste a pak ověřte, že obojí funguje:

```
docker ps
docker compose version
```

## 3\. Stažení CLI

Vyberte hodnotu `platform`, která odpovídá vašemu hostiteli:

**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\. Nasazení

```
./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 šest přepínačů je celá povinná sada. Příkaz zkontroluje DNS, zapíše soubory nasazení, vydá certifikát přes Certbot a spustí kontejnery. Počítejte s tím, že to potrvá několik minut.

Výchozí hodnoty, které tu přijímáte:

| Nastavení | Výchozí hodnota |
| --- | --- |
| Instalační adresář | `~/.welley/<project>`, kde `<project>` je doména, v níž je každý nealfanumerický znak nahrazen znakem `_` (takže z `example.com` se stane `example_com`) |
| Databáze | přibalený kontejner s PostgreSQL, data v instalačním adresáři |
| Certifikáty | Let's Encrypt přes Certbot, obnovují se automaticky jednou týdně |
| Nahrané a statické soubory | poskytují se z `https://storage.<domain>` |
| Aktualizace | kanál `stable`, kontrolují se denně a kde je to možné, instalují se bez výpadku |

## 5\. První přihlášení

Vygenerované heslo správce se vypíše do logu platformy:

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

Otevřete `https://<domain>`, přihlaste se e-mailem správce, který jste zadali přes `-e`, a hned změňte heslo. Do té doby považujte log za tajný.

## 6\. Kontrola výsledku

```
docker ps
```

Měli byste vidět po jednom kontejneru pro `nginx`, `platform-blue`, `rag-pipeline-blue`, `postgres`, `redis`, `autoheal` a `snoopy`, všechny pojmenované `<project>-<service>-1`.

## Když se něco pokazí

Příkaz `create` se podruhé nespustí, dokud existuje adresář projektu nebo jeho kontejnery. Pokud jsou soubory v pořádku a jen se některé kontejnery nepodařilo spustit, vytvořte je znovu, o nic nepřijdete:

```
./wlycli deploy restart -d example.com
```

Pokud je potřeba celé nasazení udělat znovu, odstraňte ho a začněte od začátku. Tím se smaže přibalená databáze i všechno ostatní:

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

## Další dokumenty

-   [**Welley CLI** docs/index.md](https://welley.com/cs/administrators/docs/cli/)
-   [**Nasazení serveru** skills/deploy-server/SKILL.md](https://welley.com/cs/administrators/docs/deploy-server-skill/)
-   [**openai.yaml** skills/deploy-server/agents/openai.yaml](https://welley.com/cs/administrators/docs/deploy-server-openai-yaml/)
-   [**Referenční informace k DigitalOcean** skills/deploy-server/references/digitalocean.md](https://welley.com/cs/administrators/docs/deploy-server-digitalocean/)
