docs/quick-start.md

# Pika-aloitus: Welleyn minimiasennus

Lyhin tie toimivaan Welley-instanssiin yhdellä Linux-palvelimella, missä pilvessä tahansa tai omalla laitteistollasi. Se käyttää vain niitä lippuja, joita CLI oikeasti vaatii. Kaikki muu pysyy oletusarvoissa.

Saat käyttöösi alustan, RAG-putken, Nginxin, Redisin ja **mukana tulevan** PostgreSQL-kontin. Let's Encrypt -varmenne myönnetään asennuksen aikana. Hallittua tietokantaa, CDN:ää, telemetriaa tai Slack-integraatiota ei ole. Niitä varten katso AWS EC2- ja DigitalOcean-oppaat.

## 1\. Edellytykset

**Linux-palvelin**

-   Ubuntu 24.04 LTS (tai vastaava ajantasainen jakelu).
-   Lähtökohdaksi 2 vCPU, 4 Gt RAM-muistia ja 60 Gt levytilaa.
-   Julkinen IPv4-osoite, joka ei vaihdu.
-   Saapuva TCP-liikenne portteihin **80** ja **443** sallittu koko internetistä ja porttiin **22** sinulta. Porttia 80 tarvitaan asennuksen aikana varmenteen todennukseen ja sen jälkeen viikoittaiseen uusimiseen.
-   Tavallinen käyttäjä, jolla on `sudo`\-oikeus. Opas ajaa kaiken tällä käyttäjällä, josta käytetään jäljempänä merkintää `<user>`.

**DNS**

Tarvitset kaksi tietuetta, jotka molemmat osoittavat palvelimen julkiseen IP-osoitteeseen:

| Tietue | Tarkoitus |
| --- | --- |
| `<domain>` | itse sivusto |
| `storage.<domain>` | lataukset ja staattiset tiedostot, koska tässä asennuksessa ei ole CDN:ää |

Luo ne ennen aloittamista: CLI tarkistaa, että molemmat nimet osoittavat tähän palvelimeen, ja pysähtyy, jos eivät osoita.

**Sähköpostin DNS-tietueet**

Osoitteen `--smtp-from` verkkotunnuksella pitää olla sähköpostin todennustietueet. Ilman niitä Gmail, Outlook ja muut isot palveluntarjoajat hylkäävät usein viestit, jotka lähetät vastaanottajille, jotka eivät ole koskaan saaneet sinulta mitään. Tämä koskee jokaista kutsua ja rekisteröitymisen vahvistusta, eikä viesti päädy edes roskapostiin, vaikka SMTP-palveluntarjoajasi ilmoittaa sen lähteneen.

| Tietue | Tyyppi | Arvo |
| --- | --- | --- |
| `<mail-domain>` | TXT | SPF, esimerkiksi `v=spf1 include:<provider> ~all`. Ota tarkka arvo SMTP-palveluntarjoajaltasi. |
| `_dmarc.<mail-domain>` | TXT | DMARC, esimerkiksi `v=DMARC1; p=none; rua=mailto:dmarc@<mail-domain>` |
| `<selector>._domainkey.<mail-domain>` | TXT tai CNAME | DKIM, jonka SMTP-palveluntarjoajasi luo, kun vahvistat verkkotunnuksen |

Verkkotunnuksella voi olla vain yksi SPF-tietue. Jos sillä on jo sellainen, lisää palveluntarjoajasi siihen äläkä luo toista. `create` varoittaa, jos SPF tai DMARC puuttuu, mutta ei pysähdy. Se ei voi tarkistaa DKIM:ää, koska selector-nimi riippuu palveluntarjoajastasi.

Älä jätä DKIM:ää väliin. Monet palveluntarjoajat, Amazon SES mukaan lukien, käyttävät oletuksena omaa verkkotunnustaan envelope-lähettäjänä. Silloin SPF tarkistaa palveluntarjoajan verkkotunnuksen eikä sinun omaasi, joten sitä ei lasketa DMARC:ssä, ja vain DKIM voi saada DMARC:n läpi. Tarkista DKIM:n tila palveluntarjoajasi hallintapaneelista. Amazon SES:ssä se löytyy kohdasta _Verified identities_: valitse sieltä `<mail-domain>` ja sen jälkeen DKIM. Tilan pitää olla _Successful_. SES Easy DKIM julkaisee kolme CNAME-tietuetta, joiden nimi on muotoa `<token>._domainkey.<mail-domain>`.

**SMTP-tunnukset**

Tarvitset palvelimen, käyttäjätunnuksen, salasanan ja lähettäjäosoitteen miltä tahansa palveluntarjoajalta. Alusta tarvitsee ne sähköpostin vahvistukseen ja salasanan palautukseen, ja CLI ei asenna ilman niitä. Oletuksena viestit lähetetään STARTTLS-salauksella portin 587 kautta.

**Ylläpitäjän sähköpostiosoite** ensimmäistä kirjautumista ja salasanan palautusta varten.

## 2\. Asenna Docker

Noudata jakelusi virallisia ohjeita: [Install Docker Engine](https://docs.docker.com/engine/install/). Anna sen jälkeen käyttäjällesi oikeus käyttää daemonia:

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

Kirjaudu ulos ja takaisin sisään. Tarkista sitten, että molemmat osat ovat paikallaan:

```
docker ps
docker compose version
```

## 3\. Lataa CLI

Valitse palvelimeesi sopiva `platform`\-arvo:

**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\. Asenna Welley

```
./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
```

Nämä kuusi lippua ovat koko pakollinen joukko. Komento tarkistaa DNS:n, kirjoittaa asennustiedostot, myöntää varmenteen Certbotilla ja käynnistää kontit. Varaudu siihen, että se kestää useita minuutteja.

Hyväksyt tässä seuraavat oletusarvot:

| Asetus | Oletus |
| --- | --- |
| Asennushakemisto | `~/.welley/<project>`, jossa `<project>` on verkkotunnus, jonka jokainen muu merkki kuin kirjain tai numero on korvattu merkillä `_` (eli `example.com` muuttuu muotoon `example_com`) |
| Tietokanta | mukana tuleva PostgreSQL-kontti, tiedot asennushakemiston alla |
| Varmenteet | Let's Encrypt Certbotin kautta, uusitaan automaattisesti kerran viikossa |
| Lataukset ja staattiset tiedostot | tarjotaan osoitteesta `https://storage.<domain>` |
| Päivitykset | `stable`\-kanava, tarkistetaan päivittäin ja otetaan käyttöön ilman käyttökatkoa, kun se on mahdollista |

## 5\. Ensimmäinen kirjautuminen

Luotu ylläpitäjän salasana tulostuu alustan lokiin:

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

Avaa `https://<domain>`, kirjaudu sisään sillä ylläpitäjän sähköpostiosoitteella, jonka annoit lipulla `-e`, ja vaihda salasana heti. Käsittele lokia salaisena, kunnes olet vaihtanut salasanan.

## 6\. Tarkista lopputulos

```
docker ps
```

Listassa pitäisi näkyä yksi kontti kullekin näistä: `nginx`, `platform-blue`, `rag-pipeline-blue`, `postgres`, `redis`, `autoheal` ja `snoopy`. Kaikkien nimi on muotoa `<project>-<service>-1`.

## Jos jokin meni pieleen

Komentoa `create` ei voi ajaa toista kertaa, kun projektihakemisto tai sen kontit ovat olemassa. Jos tiedostot ovat kunnossa ja vain jotkin kontit eivät käynnistyneet, voit luoda ne uudelleen menettämättä mitään:

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

Jos koko asennus pitää tehdä uudelleen, poista se ja aloita alusta. Tämä poistaa mukana tulevan tietokannan ja kaiken muun:

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

## Muut asiakirjat

-   [**Welley CLI** docs/index.md](https://welley.com/fi/administrators/docs/cli/)
-   [**Palvelimen käyttöönotto** skills/deploy-server/SKILL.md](https://welley.com/fi/administrators/docs/deploy-server-skill/)
-   [**openai.yaml** skills/deploy-server/agents/openai.yaml](https://welley.com/fi/administrators/docs/deploy-server-openai-yaml/)
-   [**DigitalOcean-ohjeet** skills/deploy-server/references/digitalocean.md](https://welley.com/fi/administrators/docs/deploy-server-digitalocean/)
