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: |
nimi | strapi |
komentosarja tai PM2 .JSON | my-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.