Strapi – avoimen koodin headless-sisällönhallintaa

Zone Blogi
Jaa:

Kun puhutaan verkkosivujen sisällönhallintajärjestelmistä, markkinajohtaja on ollut WordPress. Uusien tuulien ja teknologioiden myötä suosituiksi ovat tulleet myös sellaiset avainsanat kuin Node.js ja headless. Tässä esittelemme mahdollisuutta käyttää Zonen virtuaalipalvelimen ympäristössä Strapia, joka on johtavia headless-sisällönhallintajärjestelmiä.

Strapi on erittäin kehittäjäystävällinen ja täysin räätälöitävissä asiakkaan tarpeiden mukaan. Jos Strapi on lukijalle vieras, sovellukseen toimintoihin voi tutustua sen kotisivulla ja lukemalla lisää sen dokumentaatiosta.

Muutaman minuutin kestoisen katsauksen antaa myös seuraava video:

Palvelimen esiasetusten tekeminen

Strapi toimii hyvin Zonen jo verkkosivujen ylläpitopalvelun ensimmäisessä paketissa. Jos palvelin on olemassa, tulisi ennen sovelluksen asentamista suorittaa muutamat toimenpiteet:

1. Aseta SSH-pääsy.

Strapin asentamisen edellytyksenä on, että SSH-pääsyn tulee olla konfiguroitu.

2. Lisää MySQL-käyttäjä ja -tietokanta.

Vaikka Strapi osaa käyttää myös SQLite-tietokantaa, kannattaa silti lisätä MySQL/MariaDB-tietokanta takaamaan varmuuskopiot ja sovelluksen toimintavarmuuden.

Huom.! Säilytä tietokantojen yhteys tiedot turvallisesti sovelluksen asentamiseen asti, koska niitä tarvitaan asennuksia tehtäessä.

3. Määrää web-palvelimen mod_proxy-portti.

Lisää aliverkkotunnus navigoimalla MyZone -valikossa kohtaan Webhotelli > Verkkopalvelin > Aliverkkotunnukset. Napsauta painiketta Lisää aliverkkotunnus, ja lisäämisen jälkeen aseta Sovelluksen portti, johon saapuvat pyynnöt ohjataan (mod_proxy) -kentälle arvo 1337. Nimipalvelimen kirjausten levikin mukaan aliverkkotunnus voisi alkaa toimia pian. Mallissa perustimme aliverkkotunnuksen api.strapiwww.zone.fi.

Jäljempänä ohjeissa käytetty virtXXXX tulisi korvata SSH-käyttäjätunnuksella ja dataXX ensimmäisellä hakemistolla, joka näkyy komennolla pwd .

Asenna Strapi ja tee sille asetukset

Asentaaksesi Strapin tulee luoda SSH-yhteys palvelimelle.

Sitten käynnistämme juurihakemistossa (esim. /dataXX/virtXXX) komennon:

npx create-strapi-app@latest minun-projekti

Vahvistamiseksi tulee vielä näppäillä y ja painaa Enter-näppäintä. Sitten kysytään asetusten tekemisen versiota, sitä varten tulisi valita Custom (manual settings). Asennetaan toimiva sovellus, muttei tehdä MySQL/MariaDB-tietokannan asetuksia. Valintojen jälkeen kysytään tietokantojen ja jonkin muun asetuksen tietoja. Tietokannan kohdassa tulisi valita mysql ja seuraaviin kysymyksiin vastattaessa syöttää aikaisemmin luotujen tietokantojen tiedot. Se voisi näyttää suunnilleen seuraavalta:

? 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/minun-projekti.
Creating files.

Kuluu vähän aikaa, kun asetusvelho asentaa tarvittavat paketit ja riippuvuudet. Kun se on vihdoin tehty, tuloksen pitäisi olla suunnilleen seuraava:

Dependencies installed successfully.

Your application was created at /dataXX/virtXXXXX/minun-projekti.

...

Sitten siirry luomaasi sovellushakemistoon

cd minun-projekti

ja aseta sovelluksen URL

nano config/server.js

Tiedostoon on lisättävä aikaisemmin luotu aliverkkotunnus. Lopullinen tiedosto voisi näyttää suunnilleen tällaiselta:

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: 'https://api.strapiwww.zone.fi',
  app: {  
    keys: env.array('APP_KEYS'),
  },
});

Jotta asianmukainen asetus alkaa myös toimia, sovellus tulee rakentaa uudelleen komennolla

npm run build

Tässä tilassa sovelluksen asetukset on jo tehty ja sovellus voidaan käynnistää monella tavalla. Esimerkiksi:

#  Normaali käynnistys
npx strapi start

#  Käynnistetään kehitysversiona
npx strapi develop

Aloittaaksesi lopullisesti sovelluksen käyttö siirry osoitteeseen https://api.strapiwww.zone.fi/admin ja lisää pääkäyttäjä.

Aseta PM2, jotta sovellus toimii jatkuvasti

Jotta sovellus pystyy toimimaan myös kaatumisen tai palvelimen uudelleenkäynnistämisen jälkeen, tulee asettaa My Zone -valikossa PM2. Jos sovellusta parhaillaan suoritetaan, se tulisi nyt sulkea (konsolissa painettava esim. Ctrl + c )

1. Luo PM2-ekosysteemin tiedosto

Luomme oma projekti -kansioon tiedoston strapi.config.js, jonka sisältö on:

module.exports = {
    apps: [{
        name: "strapi",
        script: "npm",
        args: "start",
        cwd: process.env.HOME + "/minun-projekti",
        max_memory_restart : "256M",
        env: {
            NODE_ENV: "production"
        }
    }] 
}

2. Aseta PM2-sovellus MyZonessa

Siirry MyZone -valikossa kohtaan Webhotelli > Verkkopalvelin > PM2 prosessit (Node.js) ja napsauta painiketta Lisää uusi sovellus.

Muista täyttää kentät:

Kenttä:Kuvaus:
nimistrapi
komentosarja tai PM2 .JSONmy-project/strapi.config.js

Maksimaalista muistinkäyttöä ei tarvitse määrätä, koska se on jo asetettu ekosysteemin tiedostossa. Tallennuksen jälkeen sovelluksen pitäisi alkaa toimia muutamassa minuutissa. Toimivuuden auttavat toteamaan jotkin PM2-komennot.

Komennon tuloksessa pitäisi olla tieto, että Strapin tila (status) on running

pm2 list

Jos sovellus ei ole alkanut toimia muutamassa minuutissa, vianlokeja näkee komennolla

pm2 logs

Tiivistelmä

Strapi on headless CMS. Tämä tarkoittaa, että ratkaistu on vain tietorakenteiden API-puoli. Käyttäjälle näkyvä visuaalinen verkkosivusto on kehitettävä erikseen. Käyttöliittymien kehittämiseksi nykyään on loputtomasti vaihtoehtoja: Vue.js, React, Angular, Svelte ja paljon muuta. Sen takia asensimmekin Strapin aliverkkotunnukselle api.strapiwww.zone.fi, jotta esimerkiksi pääverkkotunnukselle strapiwww.zone.fi luotu verkkosivusto voi näyttää HTML- ja JavaScript-tiedostoja Apache-web-palvelimen kautta.

Jos olet joutunut lujille jonkin nykyaikaisen ohjelmistokehyksen toimimaan saamisen kanssa Zone-palvelimella ja kaipaisit kyseiselle sovellukselle samanlaisia ohjeita, voit lähettää pyyntösi osoitteeseen tuki@zone.fi. Zone keskittyy kehitystoiminnassaan modernien teknologioiden tukeen ja teemme kaikkemme, jotta nykyaikaiset kehitysmenetelmät ja sovellukset toimivat palvelimillamme ongelmitta.

Kommentit

Suositut postaukset

.EU-verkkotunnuksen ale päättyy! Käytä tilaisuutta ja rekisteröi yhden euron domain vielä tänään

Zone Blogi
Viime vuonna alkanut .EU-verkkotunnusten alennusmyynti saavuttaa loppunsa tammikuun lopussa. Tämän vuoksi suosittelemme kaikille hyödyntämään vielä...

Verkkosivuston muutosten automaattinen julkaiseminen Github Actionsin kautta

Krista Veske
Kuten monet muutkin ammattikehittäjät, myös minä tunnen välillä, että pelkkä töissä kirjoitettu koodi ei riitä, joten koodaan joskus myös työn...

Odottamaton uhka yksityisyydelle ja vapaudelle internetissä

Ardi Jürgens
Valitettavasti poliitikot ja byrokraatit ovat kuin suljettujen ovien takana sopineet, että kyseinen asetuksen ansiosta jokainen EU-maa voi sijoittaa selaimiin...

Hyvä asiakastuki on menestyksen avain, eli haloo, miksi et vastaa?

Martti Varik
Miten suuri pettymys voi olla, jos tarvitset pikaisesti työmiestä tai rakentajaa, ja lähetät sähköpostitiedustelun kahdeksalle ammattilaiselle, mutta...