---
title: "Strapi – avatud lähtekoodiga <em>headless</em> sisuhaldus"
canonical_url: "https://www.zone.ee/blogi/strapi-avatud-lahtekoodiga-headless-sisuhaldus/"
post_type: "post"
published: "2022-04-01T08:59:43+00:00"
modified: "2022-04-01T08:59:43+00:00"
author: "Ingmar Aasoja"
featured_image: "https://www.zone.ee/static/sites/2/2022/04/strapi.png"
taxonomies:
  category:
    - name: "Tehniline"
      url: "https://www.zone.ee/blogi/category/tehniline/"
  post_tag:
    - name: "Arendajale"
      url: "https://www.zone.ee/blogi/tag/arendajale/"
    - name: "CMS"
      url: "https://www.zone.ee/blogi/tag/cms/"
    - name: "headless"
      url: "https://www.zone.ee/blogi/tag/headless/"
    - name: "Sisuhaldus"
      url: "https://www.zone.ee/blogi/tag/sisuhaldus/"
  skills:
    - name: "Spetsialistile"
      url: "https://www.zone.ee/blogi/skill/spetsialistile/"
---

# Strapi – avatud lähtekoodiga <em>headless</em> sisuhaldus

**Kui me räägime sisuhaldussüsteemidest, siis on veebis kindlaks liidriks olnud WordPress. Uute tuulte ja tehnoloogiatega on popid juba ka märksõnad nagu** *nodejs* **ja** *headless***. Käesolevaga** **tutvustame võimalust kasutada Zone virtuaalserveri keskkonnas üht juhtivat** *headless***-sisuhaldus süsteemi nimega Strapi.**

Strapi on väga arendajasõbralik ning täielikult kohandatav kliendi vajadustele lähtuvalt. Kui rakendus on lugejale võõras, siis saab rakendusega tutvuda [Strapi koduleheküljel](https://strapi.io/) ning täpsemalt lugedes selle [dokumentatsiooni](https://docs.strapi.io/developer-docs/latest/getting-started/introduction.html).

Mõneminutilise lühiülevaate saab ka järgnevast videost:

https://www.youtube.com/watch?v=zd0_S_FPzKg

### **Serveri eelseadistamine**

Strapi jookseb kenasti Zone veebimajutuse esimeses paketis. Kui server on olemas, siis tuleks enne rakenduse paigaldamist käia läbi mõned sammud:

**1. Seadista SSH ligipääs**.

Strapi paigaldamiseks peab olema seadistatud SSH ligipääs. SSH ühenduse loomise kohta saab täpsemalt lugeda Zone kasutajatoe veebilehelt artiklist [SSH ühenduse loomine](https://www.zone.ee/help/kb/ssh-uhenduse-loomine/).

**2. Lisa MySQL kasutaja ja andmebaas.**

Kuigi Strapi oskab kasutada ka SQLite andmebaasi, oleks siiski targem lisada MySQL/MariaDB andmebaas, et tagada varukoopiad ning rakenduse töökindlus. Andmebaasi lisamise kohta saad lugeda Zone kasutajatoe veebilehelt artiklist [MySQL/MariaDB andmebaasi kasutajakontod.](https://www.zone.ee/help/kb/mysqlmariadb-andmebaasi-kasutajakontod/)

**NB!** Säilita andmebaaside andmed turvaliselt kuni rakenduse paigaldamiseni, kuna neid läheb seadistamisel vaja.

**3. Määra veebiserveri mod\_proxy port.**

Lisa alamdomeen navigeerides Minu Zones `Virtuaalserverid` – `Veebiserver` – `Alamdomeenid` . Vajuta nuppu `Lisa alamdomeen` ning pärast lisamist seadista `Rakenduse port, kuhu suunata sisenevad päringud (mod_proxy)` väljale väärtus **1337**. Vastavalt nimeserveri kirjete levikule, võiks alamdomeen tööle hakata peagi. Näidises lõime alamdomeeni `api.miljonivaade.eu`

Edaspidi õpetuses kasutatud **virtXXXX** tuleks asendada SSH kasutajanimega ning **dataXX** esimese kataloogiga, mida näeb käsuga `pwd` .

### **Paigalda ning seadista Strapi**

Strapi paigaldamiseks tuleb luua SSH ühendus serverisse.

Järgmiseks käivitame juurkataloogis (näiteks /dataXX/virtXXX) käsu:

```bash
npx create-strapi-app@latest minu-projektCode language: CSS (css)
```

Kinnituseks tuleb veel sisestada `y` ning vajutada klahvi `Enter` . Järgnevaks küsitakse seadistamise versiooni, selleks tuleks valida `Custom (manual settings)` . Vastasel juhul küll paigaldatakse töötav rakendus, aga ei seadistata MySQL/MariaDB andmebaasi. Pärast valikud küsitakse andmebaaside ja mõne muu seadistuse andmeid. Andmebaasi kohapeal tuleks valida `mysql` ning järgnevate küsimustega sisestada varasemalt loodud andmebaaside andmed. Välja võiks näha see umbes järgmine:

```bash
? Choose your installation type Custom (manual settings)
? Choose your default database client mysql
? Database name: dXXXXX_strapi
? Host:  dXXXXX.mysql.zonevs.eu
? Port: 3306
? Username: dXXXXX_strapi
? Password: *************************
? Enable SSL connection: Yes

Creating a project with custom database options.
Creating a new Strapi application at /dataXX/virtXXXXX/minu-projekt.
Creating files.Code language: JavaScript (javascript)
```

Seejärel läheb veidi aega, et seadistusviisard paigaldaks vajalikud pakid ja sõltuvused. Kui see on viimaks tehtud, peaks olema väljund umbes järgmine:

```bash
Dependencies installed successfully.

Your application was created at /dataXX/virtXXXXX/minu-projekt.

...
```

Järgmiseks mine loodud rakenduse kataloogi

```bash
cd minu-projekt
```

ning seadista rakenduse URL

```bash
nano config/server.js
```

Faili tuleb lisada varem loodud alamdomeen. Lõplik fail võiks välja näha umbes selline:

```javascript
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: 'https://api.miljonivaade.eu',
  app: {
    keys: env.array('APP_KEYS'),
  },
});Code language: JavaScript (javascript)
```

Selleks, et vastav seadistus ka tööle hakkaks, tuleb rakendus uuesti buildida käsuga

```bash
<strong>npm run build</strong>Code language: HTML, XML (xml)
```

Selles seisus on rakendus juba seadistatud ning seda on võimalik käivitada mitmel viisil. Näiteks:

```bash
<em># Tavaline käivitus</em>
<strong>npx strapi start</strong>

<em># Arendusversioonina käivitus</em>
<strong>npx strapi develop</strong>Code language: HTML, XML (xml)
```

Et rakendust lõplikult kasutama hakata, tuleb minna aadressile

`https://api.miljonivaade.eu/admin` ning lisada administraator-kasutaja.

### **Seadista Pm2 tagamaks rakenduse tööshoid**

Selleks, et rakendus tööle jääks ka pärast ootamatut kokkujooksmist või serveri taaskäivitust, tuleb seadistada Minu Zone’s pm2. Kui rakendus hetkel jookseb, siis tuleks see praegu kinni panna (konsoolis vajutada näiteks `ctrl + c` ).

**1. Loo pm2 ökosüsteemi fail**

Loome minu-projekt kausta faili `strapi.config.js` . Sisuga

```javascript
module.exports = {
    apps: [{
        name: "strapi",
        script: "npm",
        args: "start",
        cwd: process.env.HOME + "/minu-projekt",
        max_memory_restart : "256M",
        env: {
            NODE_ENV: "production"
        }
    }]
}Code language: JavaScript (javascript)
```

**2. Seadista pm2 rakendus Minu Zones**

Mine Minu Zones `Virtuaalserverid` – `Veebiserver` – `PM2 protsessid (Node.js)` ning vajuta nuppu `Lisa uus rakendus`

Täita tuleks väljad:

**Väli****Kirjeldus****nimi**strapi**skript või PM2 .JSON**my-project/strapi.config.jsMaksimaalset mälukasutust määrama ei pea, kuna see on juba seadistatud ökosüsteemi failis. Pärast salvestamist peaks mõne minuti jooksul rakendus tööle hakkama. Kinnituseks aitavad konsoolis mõned pm2 käsud.

Käsu väljundis peaks olema info, et Strapi on `running` statuses

```bash
<strong>pm2 list</strong>Code language: HTML, XML (xml)
```

Kui rakendus mõne minuti jooksul tööle pole hakanud, siis vealogisid näeb käsuga

```bash
<strong>pm2 logs</strong>Code language: HTML, XML (xml)
```

### Kokkuvõtteks

Strapi on headless CMS. See tähendab, et lahendatud on vaid andmestruktuuride API pool. Kasutajale nähtav visuaalne veebileht tuleb eraldi arendada. Kasutajaliideste arendamiseks on tänapäeval lõputult valikuid. Vue.js, React, Angular, Svelte ning palju muud. Seepärast paigaldasimegi strapi alamdomeenile `api.miljonivaade.eu` , et näiteks peadomeenile `miljonivaade.eu` loodud veebileht saaks html ja javascripti faile üle Apache veebiserveri kuvada.

Kui oled jänni jäänud mõne kaasaegse raamistiku töölepanekuga Zone serveris ning sooviksid vastavale rakendusele samasugust õpetust, siis võid sooviavalduse saata **info@zone.ee** või liitudes meie **[slack.zone.eu](https://slack.zone.eu/)** kanaliga. Zone on oma arenduses keskendunud modernsete tehnoloogiate toele ning teeme kõik, et tänapäevased arendusmeetodi ning rakendused meie serverites probleemidevabalt jookseksid.
