Strapi – avatud lähtekoodiga headless sisuhaldus

Ingmar Aasoja
Jaga:

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 ning täpsemalt lugedes selle dokumentatsiooni.

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

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.

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.

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  – VeebiserverAlamdomeenid . 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:

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:

? 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:

Dependencies installed successfully.

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

...

Järgmiseks mine loodud rakenduse kataloogi

cd minu-projekt

ning seadista rakenduse URL

nano config/server.js

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

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

<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:

<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

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 VirtuaalserveridVeebiserverPM2 protsessid (Node.js) ning vajuta nuppu Lisa uus rakendus

Täita tuleks väljad:

VäliKirjeldus
nimistrapi
skript või PM2 .JSONmy-project/strapi.config.js

Maksimaalset 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

<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

<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 kanaliga. Zone on oma arenduses keskendunud modernsete tehnoloogiate toele ning teeme kõik, et tänapäevased arendusmeetodi ning rakendused meie serverites probleemidevabalt jookseksid.

Populaarsed postitused

"Pilve pole olemas. On lihtsalt kellegi teise arvuti."

Ardi Jürgens
Mis ikkagi on pilveteenus, kuidas see keerukas süsteem töötab ning kuidas me tulime mõne nädala eest toime ühe jõudlust pärssinud ootamatusega....

Saabub OpenSSL 3 tugi - ka aegunud PHP versioonidele

Ingmar Aasoja
Zone veebimajutusplatvormi aluseks olevat ZoneOS operatsioonisüsteemi ootab ees suurem uuendus: juurutame OpenSSL 3. versiooni. See muutus mõjutab pea...

Uuendame NodeJS ja Python vaikeversioone

Ingmar Aasoja
Juunis 2024 hakkame Zone platvormi järk-järgult l uuendama NodeJS ja Python vaikeversioone, mistõttu palume käesoleva kirjatükiga tähelepanu just...

Veelkord aegunud PHP versioonidest

Kaarel Urva
Mäletatavasti teavitasime aprilli lõpus kliente sellest, et aegunud PHP versioonide kasutamine muutub tasuliseks. Mõistetavasti tuli see uudis paljudele...