建立我的第一個Blog - part 2: ENV 設定
Next.js 和 Strapi ENV 設定
前言
這篇文章會主要介紹我如何為我的Blog分別建立prodoction和dev環境
Strapi 環境變數設定
這個是上一篇文章中CLI預設的.env
# Server
HOST=0.0.0.0
PORT=1337
# Secrets
APP_KEYS=
API_TOKEN_SALT=
ADMIN_JWT_SECRET=
TRANSFER_TOKEN_SALT=
# Database
DATABASE_CLIENT=postgres
DATABASE_HOST=strapiDB
DATABASE_PORT=5432
DATABASE_NAME=strapi
DATABASE_USERNAME=admin
DATABASE_PASSWORD=admin
DATABASE_SSL=false
JWT_SECRET=
然後我們Copy一個.env.prod,修改一下port和database 的connect
NODE_ENV=production
# Server
HOST=0.0.0.0
PORT=1338
# Secrets
APP_KEYS=
API_TOKEN_SALT=
ADMIN_JWT_SECRET=
TRANSFER_TOKEN_SALT=
# Database
DATABASE_CLIENT=postgres
DATABASE_HOST=strapiDB
DATABASE_PORT=5433
DATABASE_NAME=strapi
DATABASE_USERNAME=admin
DATABASE_PASSWORD=admin
DATABASE_SSL=false
JWT_SECRET=
主要是改:
- DATABASE_PORT
- PORT
Next.js 環境變數設定
Next.js 這邊並沒有建立預設的.env file。
我們需要自行建立以下檔案
.env.development
.env.development.local
.env.production
然後自行填上token和你的strapi的domain
STRAPI_API_TOKEN=
NEXT_PUBLIC_STRAPI_URL=
這邊.local的就要填上localhost以連上自己本機的strapi server .env.development.local
STRAPI_API_TOKEN=<YOUR_STRAPI_TOKEN>
NEXT_PUBLIC_STRAPI_URL=http://localhost:1337
Strapi token
strapi 的token 主要用來給Strapi 外部的服務透過REST / GraphQL api 來存取strapi的資料,我們可以利用這個token來控制這些服務的權限
取得 Strapi api token
前往setting > Api Tokens
duration: unlimited token type: read-only
然後就可以先save,就會給你一串token,把他複製起來,並放到Next.js .env.development.local的STRAPI_API_TOKEN
之後就可以進到webfolder運行一下命令啓動
yarn dev
看到Environments: .env.development.local, .env.development就是設定成功了!
更多關於Next.js ENV 設定可以去 https://nextjs.org/docs/pages/building-your-application/configuring/environment-variables
TODO
環境設定先到這邊,下一篇我會介紹如何使用docker 和docker compose 去同搭建dev 和production 環境,並引用我們這篇建立的.env檔。
- 用docker建立strapi image
- 用docker compose deploy包含strapi+postgreSQL的 DEV 和 PRODUCTION 環境
- 用Github action 做CD Deploy (self-hosted runner)
- CD Deploy web to Vercel
- Vercel 接Cloudflare domain
