Strapi を AWS Lightsail の Node JS で使う
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
中身をまるっと入れ換え。
ついでにロゴも変える。
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
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
参考:
- クイックスタートガイド: Amazon Lightsail の Node.js | Lightsail ドキュメント
- Deploy Strapi to AWS Lightsail in 10 minutes - Strapi - Magestore
- Node.js packaged by Bitnami for AWS Cloud
- How to install Strapi API Platform on Ubuntu/Debian Servers
- Linux Ubuntu — apt-get update / upgrade の違い - Qiita
- How to Deploy Strapi to Your Own VPS
- NODE_ENV ってなんだ? - Qiita
Strapi v4で管理画面を日本語にしてロゴも変える - Qiita
Discussion