Instalace Strapi

Co budeme potřebovat:

  • Účet v Roští administraci
  • Nainstalovaný terminál (třeba tabby)

Tento návod byl testován na Runtime 2023.01-1, je ale pravděpodobně, že poběží i na novějších verzích.

Postup instalace

Prvním krokem je vytvoření aplikace v administraci, kde Strapi poběží:

Vytvoření Node.js aplikace v administraci

Vybereme větší balíček, alespoň Normal+, protože instalační proces i Strapi samotné má relativně vysoké nároky na paměť.

Hned po vytvoření aplikace nastavíme heslo pro přístup na SSH a přejdeme do info karty, kde jsou uvedeny přístupy na SSH.

SSH přístup

Z info karty si také poznamenáme doménu, kterou nám administrace přidělila.

Pokud plánujete Strapi používat na produkční data, přejděte zde rovnou do karty Parametry a zapněte HTTPS.

Máme-li, můžeme se připojit na SSH například přes tabby nebo jiného SSH klienta.

Po přihlášení vybereme Node.js verzi, kterou podporuje současná verze Strapi. V našem případě to je Node.js 18 a na výběr požijeme příkaz rosti:

rosti
# Přejdeme do techs a vybereme verzi Node.js

Výběr verze Node.js

Vyčistíme adresář /srv/app a zkontrolujeme, jestli opravdu běžíme na správné verzi Node.js:

cd ~/app && rm *
node -v

Teď aktualizujeme yarn a vytvoříme Strapi projekt:

npm install -g yarn
yarn create strapi-app my-strapi --quickstart

Přepínač "--quickstart" řekne instalátoru, aby Strapi používalo SQLite jako úložiště. Pokud ho vynecháte, můžete během instalace nastavit jednu z podporovaných databází.

Na konci instalace se Strapi spustí, ale nemáme se na něj jak dostat, takže ho vypneme pomocí CTRL + C.

Přejdeme do souboru /srv/conf/supervisor.d/node.conf a řádek začínající directory= změníme na:

directory=/srv/app/my-strapi

Ve stejném souboru ještě změníme řádek začínající command= na:

command=/srv/bin/primary_tech/npm run develop

Kromě těchto změn ještě musíme nastavit doménu, na které Strapi poběží. Jednu pro nás vygenerovala administrace pod doménou rostiapp.cz a najdeme ji v administraci v info kartě. Přejdeme do souboru /srv/app/my-strapi/config/server.js a přidáme tam parametr url podobně jako tady:

module.exports = ({ env }) => ({
    host: env('HOST', '0.0.0.0'),
    port: env.int('PORT', 1337),
    url: "https://strapi-6165.rostiapp.cz", # <---- TADY
    app: {
        keys: env.array('APP_KEYS'),
    },
});

Doménu sem musíme napsat, protože na Roští běží aplikace za reverzní proxy a Strapi potřebuje vědět, na jaké externí doméně běží, aby mohl svůj frontend připojit k backendu.

Aby se změna ve Strapi projevila musíme ještě zavolat yarn build:

cd /srv/app/my-strapi/
yarn build

Teď načteme novou konfiguraci a necháme supervisord restartovat procesy, kterých se změna týká:

supervisorctl reread
supervisorctl update

Když si vypíšeme obsah standardního výstupu Strapi:

cat /srv/log/node.log

Zjistíme, že běží na portu 1337, na který musíme nasměrovat Nginx. To uděláme v souboru /srv/conf/nginx.d/app.conf. Řádek začínající na proxy_pass upravíme tak, aby celý soubor vypadal takto:

server {
    listen       0.0.0.0:8000;
    listen       [::]:8000;
    location / {
            proxy_pass         http://127.0.0.1:1337/;
            proxy_redirect     default;
            proxy_set_header   X-Real-IP  $remote_addr;
            proxy_set_header   Host       $host;
    }
}

Nakonec restartujeme Nginx:

supervisorctl restart nginx

A na doméně, kterou administrace přidělila vaší aplikaci na začátku tohoto návodu se dostanete na svou novou instalaci Strapi.

Čerstvá instalace Strapi

Poznámky na konec

  • Více informací k instalaci se dozvíte v oficiální Strapi dokumentaci.
  • Strapi vyžaduje spoustu paměti, takže pokud se chová nestabilně, zvedněte balíček v administraci.
  • Než vytvoříte prvního uživatele, nezapomeňte v administraci zapnout HTTPS.
  • Řetězec my-strapi v tomto návodu můžete vyměnit za vlastní název instance.