📖
VPSサーバーにStrapi v4をインストール
VPSサーバーの用意
ここでは書かないが、VPSサーバーを以下の内容で用意していることが前提で進めていく。
OS | Ubuntu |
Docker | 24.0.2, |
Docker compose | v2.18.1 |
NodeJS | v18.16.1 |
Yarn | 1.22.19 |
作業ディレクトリ | ~/opt/app |
Strapiのインストール
公開用のディレクトリを用意
mkdir backend
cd $_
npx
でStrapiをクイックインストールする。
npx create-strapi-app@latest myproject --quickstart
基本的にはエンターを押しまくればOK。
~/opt/app/backend/myproject
という構成になる。
ファイルの移動
~/opt/app/backend/myproject
の中身を一つ上の階層の、~/opt/app/backend
に移動させる。
mv .* ../
myproject
を削除
公開用のディレクトリに戻り、cd ../
sudo rm -rf myproject
必要なファイルの作成
version: "3"
services:
strapi:
container_name: strapi
build: .
image: strapi:latest
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: strapiDB
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
JWT_SECRET: ${JWT_SECRET}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
APP_KEYS: ${APP_KEYS}
NODE_ENV: ${NODE_ENV}
VIRTUAL_HOST: ${VIRTUAL_HOST}
LETSENCRYPT_HOST: ${LETSENCRYPT_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
volumes:
- ./config:/opt/app/config
- ./src:/opt/app/src
- ./package.json:/opt/package.json
- ./yarn.lock:/opt/yarn.lock
- ./.env:/opt/app/.env
- ./public/uploads:/opt/app/public/uploads
ports:
- ":1337"
environment:
MYSQL_USER: ${DATABASE_USERNAME}
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_DATABASE: ${DATABASE_NAME}
volumes:
- strapi-data:/var/lib/mysql
- ./data:/var/lib/mysql # if you want to use a bind folder
ports:
- "3306:3306"
networks:
- strapi
volumes:
strapi-data:
networks:
strapi:
name: Strapi
driver: bridge
common_network:
name: common_network
external: true
FROM node:16
# Installing libvips-dev for sharp Compatability
RUN apt-get update && apt-get install libvips-dev -y
ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY ./package.json ./yarn.lock ./
ENV PATH /opt/node_modules/.bin:$PATH
RUN yarn config set network-timeout 600000 -g && yarn install
WORKDIR /opt/app
COPY ./ .
RUN yarn build
# EXPOSE 1337
CMD ["yarn", "develop"]
〜自動で生成された部分〜
# for docker-compose.yml
NODE_ENV=development
DATABASE_USERNAME=admin
DATABASE_PASSWORD=XXXXX
DATABASE_NAME=XXXXX
DATABASE_PORT=5432
DATABASE_HOST=localhost
# nginx proxy
VIRTUAL_HOST=XXXXX.jp
LETSENCRYPT_HOST=XXXXX.jp
LETSENCRYPT_EMAIL=XXXXX@gmail.com
起動して初回登録
docker compose up -d
Discussion