Strapi – avatud lähtekoodiga headless 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 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
– 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:
npx create-strapi-app@latest minu-projekt
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.
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'),
},
});
Selleks, et vastav seadistus ka tööle hakkaks, tuleb rakendus uuesti buildida käsuga
npm run build
Selles seisus on rakendus juba seadistatud ning seda on võimalik käivitada mitmel viisil. Näiteks:
# Tavaline käivitus
npx strapi start
# Arendusversioonina käivitus
npx strapi develop
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"
}
}]
}
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.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
pm2 list
Kui rakendus mõne minuti jooksul tööle pole hakanud, siis vealogisid näeb käsuga
pm2 logs
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.