🚀

Strapi を AWS Lightsail の Node JS で使う

2022/09/09に公開

Lightsailの作業

AWS Lightsail で Node.js Packaged By Bitnami For AWS Cloud(以下 Bitnami Node.js) のインスタンスを作成する。

ポートの解放

Strapi は 1337 ポートを使うのでインスタンスの設定画面で『ネットワーキング』を選択しIPv4 ファイアウォールに追加する。

SSL化

sudo /opt/bitnami/bncert-tool --perform_public_ip_validation 0 --perform_dns_validation 0

Strapiの準備

パスワードを確認する

(参考:1)

cat bitnami_application_password

Strapi では下記が必要になります。

  • Node,js 10.X 以上
  • npm 6.X 以上
node -v

💬 Node.js → v16.15.0

npm -v

💬 npm → 8.19.1

pm2 のインストール

デフォルトでは forever が入っている。

yarn add pm2 -g

forever と pm2 の両方をインストールすることをお勧めします。npm パーミッションの問題が発生した場合は、Sudo を使用してください。
らしい。

Strapi のインストール

Bitnami Node.js ではDebianと言われるソフトを使っている。

サーバーの更新

(参考:5)

apt-get update
インストール可能なパッケージの「一覧」を更新する。実際のパッケージのインストール、アップグレードなどはおこなわない。

apt-get upgrade
インストール済みのパッケージ更新をおこない、新しいバージョンにアップグレードする。「有効なパッケージ一覧」を元に実行されるので、 apt-get update と組み合わせて使う必要がある。

apt-get update
apt-get upgrade

Strapiのインストール

cd /opt/bitnami/apache2/htdocs/

勝手にセットアップしてくれる〜✨
(***** = プロジェクト名)

yarn create strapi-app *****
yarn install --production
cd *****

.env の変更

(参考:6)

確かすでに設定されてた。

vi .env
+ HOST=0.0.0.0
+ PORT=1337 
+ APP_KEYS=2V+39791mGaxSwRHHhwfhg==,aMWCRV6iaTxRZXx5NM/2BA==,rIsvFirfdm8YNwsy0Q+ nLug==,dWUY3urnIol5YOkpdLTkfQ==
+ API_TOKEN_SALT=ksJpczGexS/3UaQ4Lb2efQ==
+ ADMIN_JWT_SECRET=S1WqtEgbW9ZKy3eF2JUbZQ==
+ JWT_SECRET=S72rrbkK0kCk1eE6g5CqIA==

言語の設定

(参考:8)

デフォルトではEnglish なので日本語に変更。

cd *****/src/admin/

app.example.js があるので app.js にコピー。

cp app.example.js app.js

中身をまるっと入れ換え。
ついでにロゴも変える。

~/admin/app.js

import MenuLogo from "./extensions/menu-logo.png";
import AuthLogo from "./extensions/auth-logo.png";

export default {
  config: {
    locales: ["ja"],
    auth: {
      logo: AuthLogo,
    },
    menu: {
      logo: MenuLogo,
    },
  },
  bootstrap() {},
};
mkdir extensions

この中にロゴを追加。

menu-logo.png 32x32の画像で良さそうでした。
auth-logo.png 434x120の画像を用意

これで日本語が使える🇯🇵

ビルド

yarnの場合

NODE_ENV=production yarn build

npmの場合

NODE_ENV=production npm run build
「NODE_ENV=productionって何?」

(参考:7)

Node.js で、慣習的によく使う環境変数の名前らしい。

$ #  1. 環境変数を指定すれば...
$ export NODE_ENV='development'
$ node
// 2. process.env から参照できる。
process.env.NODE_ENV
'development'

server.jsの作成

(参考:6)

vi server.js
~/*****/server.js
const strapi = require('@strapi/strapi');
    strapi(/* {...} */).start();

サーバーを起動

pm2の場合

NODE_ENV=production pm2 start server.js --name api

foreverの場合

NODE_ENV=production forever start server.js

確認

pm2の場合

pm2 list

foreverの場合

forever list

参考:

  1. クイックスタートガイド: Amazon Lightsail の Node.js | Lightsail ドキュメント
  2. Deploy Strapi to AWS Lightsail in 10 minutes - Strapi - Magestore
  3. Node.js packaged by Bitnami for AWS Cloud
  4. How to install Strapi API Platform on Ubuntu/Debian Servers
  5. Linux Ubuntu — apt-get update / upgrade の違い - Qiita
  6. How to Deploy Strapi to Your Own VPS
  7. NODE_ENV ってなんだ? - Qiita
    Strapi v4で管理画面を日本語にしてロゴも変える - Qiita

Discussion