📖

VPSサーバーにStrapi v4をインストール

2023/07/17に公開

参考元

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