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

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.

Populaarsed postitused

Nutikas Pilveserver: tark lahendus e-poe ja nõudlike veebiprojektide jaoks

Tanel Männik
Nutikas Pilveserver pakub nüüdisaegset ja kulutõhusat lahendust, mis ühendab endas paindlikkuse ja võimsuse, et rahuldada kõrge külastatavusega...

Kuidas me aita(si)me tuntud veebilehtedel suurema külastatavusega toime tulla

Digimaailmas on veebilehtede kiirus ja usaldusväärsus kriitilise tähtsusega. Ikka ja jälle oleme silmitsi olukordadega, kus kliendi käsutuses olev...

Hallatud või halduseta platvorm: kumb vastab paremini sinu vajadustele?

Martin Kirs
ZoneOS platvorm on meie hallatavate teenuste alustala, sisaldades endas justkui mitme IT-spetsialisti pädevusi. Kuidas see platvorm on nii "nutikas" ja...

Zone Veebiakadeemia - lihtsad tööriistad kodulehega alustamiseks

blogi
Zone Veebiakadeemia uue hooaja värskeimas osas räägib Zone arendustiimi juht Ingmar kasulikest tööriistadest, mis aitavad sul hõlpsalt ja arusaadavalt...