mkdocsをデプロイする
mkdocsは、静的なウェブサページを生成するためのツールです。このツールを使って作成したウェブページをVPS上にデプロイする方法を説明します。
デプロイ環境
前提
デプロイ手順
-
VPSにログインします。
rsa鍵を使ってログインする場合
bash |
---|
| ssh -i ~/.ssh/id_rsa <user>@<your-vps-ip>
|
VPSのufw設定
Tip
SSL証明書を取得(HTTPS化)の事前準備として、VPSのufw設定を行います。
VPSのufw設定を行います。まずは、ufwをインストールします。
bash |
---|
| #!/bin/bash
# ufwのインストール
sudo apt-get update -y
sudo apt-get install -y ufw
|
次に、ufwの設定を行います。
bash |
---|
| #!/bin/bash
# ufwの設定
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
|
Nginxとcertbotのインストール
Tip
SSL証明書を取得(HTTPS化)の事前準備として、Nginxとcertbotのインストールを行います。
VPSにnginxとcertbotをインストールします。
bash |
---|
| #!/bin/bash
# certbotのインストール
sudo apt-get update -y
sudo apt-get install -y certbot python3-certbot-nginx nginx
|
証明書の取得
Let's EncryptでSSL証明書を取得します。
bash |
---|
| #!/bin/bash
# 証明書の取得
sudo certbot --nginx -d <ドメイン>
|
複数ドメインの場合
複数のドメインを設定する場合は、以下のように設定します。
bash |
---|
| # 複数ドメインの証明書の取得
sudo certbot --nginx -d <ドメイン1> -d <ドメイン2>
|
nginxの設定
nginxでサイトへのルーティング設定を行います。
/etc/nginx/sites-available/ |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 | server {
listen 80;
server_name <your-domain>;
# Redirect HTTP to HTTPS
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name <your-domain>;
ssl_certificate /etc/letsencrypt/live/<your-domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<your-domain>/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDH+AESGCM:ECDH+AES256:!ECDH+3DES:!ECDH+AES128:!AES128:!DSS:!RC4:!MD5:!PSK';
ssl_prefer_server_ciphers on;
root /var/www/site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
|
シンボリックリンクの作成
nginxの設定ファイルを有効にするために、sites-available
ディレクトリ内の設定ファイルをsites-enabled
ディレクトリにシンボリックリンクを作成します。
bash |
---|
| #!/bin/bash
sudo ln -s /etc/nginx/sites-available/<site-name> /etc/nginx/sites-enabled/
|
nginx設定のテスト
nginxの設定ファイルにエラーがないかを確認します。
bash |
---|
| #!/bin/bash
sudo nginx -t
|
nginxの再起動
nginxの設定を反映させるために、nginxを再起動します。
bash |
---|
| #!/bin/bash
sudo systemctl restart nginx
|
デプロイ
mkdocsで生成したウェブページをVPSにデプロイします。
リポジトリをクローンして、Nginxのドキュメントルートに配置します。
bash |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #!/bin/bash
# リポジトリのクローン
git clone https://<USERNAME>:<TOKEN>@github.com/<USERNAME>/<REPOSITORY>.git
cd <REPOSITORY>
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
mkdocs build
sudo cp -r site /var/www/
sudo chown -R www-data:www-data /var/www/site
sudo chmod -R 755 /var/www/site
sudo systemctl restart nginx
|