aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/content/posts/2022-10-28
diff options
context:
space:
mode:
Diffstat (limited to 'services/nuldoc/content/posts/2022-10-28')
-rw-r--r--services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md (renamed from services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.dj)75
1 files changed, 25 insertions, 50 deletions
diff --git a/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.dj b/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md
index 6fed329..4af8854 100644
--- a/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.dj
+++ b/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md
@@ -15,8 +15,7 @@ remark = "公開"
date = "2023-08-30"
remark = "ssh_config に IdentitiesOnly yes を追加"
---
-{#intro}
-# はじめに
+# はじめに {#intro}
これまでこの blog は GitHub Pages でホストしていたのだが、先日 VPS に移行した。
そのときにおこなったサーバのセットアップ作業を書き残しておく。
@@ -24,23 +23,19 @@ remark = "ssh_config に IdentitiesOnly yes を追加"
未来の自分へ: 特に自動化してないので、せいぜい苦しんでくれ。
-{#vps}
-# VPS
+# VPS {#vps}
[さくらの VPS](https://vps.sakura.ad.jp/) の 2 GB プラン。
そこまで真面目に選定していないので、困ったら移動するかも。
-{#preparation}
-# 事前準備
+# 事前準備 {#preparation}
-{#hostname}
-## サーバのホスト名を決める
+## サーバのホスト名を決める {#hostname}
モチベーションが上がるという効能がある。今回は藤原定家から取って `teika` にした。
たいていいつも源氏物語の帖か小倉百人一首の歌人から選んでいる。
-{#ssh-key}
-## SSH の鍵生成
+## SSH の鍵生成 {#ssh-key}
ローカルマシンで鍵を生成する。
@@ -52,8 +47,7 @@ $ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github2teika.key
`teika.key` はローカルからサーバへの接続用、`github2teika.key` は、
GitHub Actions からサーバへのデプロイ用。
-{#ssh-config}
-## SSH の設定
+## SSH の設定 {#ssh-config}
`.ssh/config` に設定しておく。
@@ -66,16 +60,13 @@ Host teika
IdentitiesOnly yes
```
-{#basic-setup}
-# 基本のセットアップ
+# 基本のセットアップ {#basic-setup}
-{#login}
-## SSH 接続
+## SSH 接続 {#login}
VPS 契約時に設定した管理者ユーザとパスワードを使ってログインする。
-{#user}
-## ユーザを作成する
+## ユーザを作成する {#user}
管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。
`sudo` グループに追加して `sudo` できるようにし、`su` で切り替え。
@@ -87,15 +78,13 @@ $ su **********
$ cd
```
-{#hostname}
-## ホスト名を変える
+## ホスト名を変える {#hostname}
```shell-session
$ sudo hostname teika
```
-{#public-key}
-## 公開鍵を置く
+## 公開鍵を置く {#public-key}
```shell-session
$ mkdir ~/.ssh
@@ -106,8 +95,7 @@ $ vi ~/.ssh/authorized_keys
`authorized_keys` には、ローカルで生成した `~/.ssh/teika.key.pub` と
`~/.ssh/github2teika.key.pub` の内容をコピーする。
-{#ssh-config}
-## SSH の設定
+## SSH の設定 {#ssh-config}
SSH の設定を変更し、少しでも安全にしておく。
@@ -127,8 +115,7 @@ $ sudo systemctl restart sshd
$ sudo systemctl status sshd
```
-{#ssh-connect}
-## SSH で接続確認
+## SSH で接続確認 {#ssh-connect}
今の SSH セッションは閉じずに、ターミナルを別途開いて疎通確認する。
セッションを閉じてしまうと、SSH の設定に不備があった場合に締め出しをくらう。
@@ -137,8 +124,7 @@ $ sudo systemctl status sshd
$ ssh teika
```
-{#close-ports}
-## ポートの遮断
+## ポートの遮断 {#close-ports}
デフォルトの 22 番を閉じ、設定したポートだけ空ける。
@@ -152,8 +138,7 @@ $ sudo ufw status
ここでもう一度 SSH の接続確認を挟む。
-{#ssh-key-for-github}
-## GitHub 用の SSH 鍵
+## GitHub 用の SSH 鍵 {#ssh-key-for-github}
GitHub に置いてある private リポジトリをサーバから clone したいので、SSH 鍵を生成して置いておく。
@@ -185,8 +170,7 @@ Host github.com
$ ssh -T github.com
```
-{#upgrade-packages}
-## パッケージの更新
+## パッケージの更新 {#upgrade-packages}
```shell-session
$ sudo apt update
@@ -196,30 +180,25 @@ $ sudo apt upgrade
$ sudo apt autoremove
```
-{#site-hosting-setup}
-# サイトホスティング用のセットアップ
+# サイトホスティング用のセットアップ {#site-hosting-setup}
-{#dns}
-## DNS に IP アドレスを登録する
+## DNS に IP アドレスを登録する {#dns}
このサーバは固定の IP アドレスがあるので、`A` レコードに直接入れるだけで済んだ。
-{#install-softwares}
-## 使うソフトウェアのインストール
+## 使うソフトウェアのインストール {#install-softwares}
```shell-session
$ sudo apt install docker docker-compose git make
```
-{#docker}
-## メインユーザが Docker を使えるように
+## メインユーザが Docker を使えるように {#docker}
```shell-session
$ sudo adduser ********** docker
```
-{#open-http-ports}
-## HTTP/HTTPS を通す
+## HTTP/HTTPS を通す {#open-http-ports}
80 番と 443 番を空ける。
@@ -230,8 +209,7 @@ $ sudo ufw reload
$ sudo ufw status
```
-{#clone-repositories}
-## リポジトリのクローン
+## リポジトリのクローン {#clone-repositories}
```shell-session
$ cd
@@ -240,23 +218,20 @@ $ cd nsfisis.dev
$ git submodule update --init
```
-{#certbot}
-## certbot で証明書取得
+## certbot で証明書取得 {#certbot}
```shell-session
$ docker-compose up -d acme-challenge
$ make setup
```
-{#run-server}
-## サーバを稼動させる
+## サーバを稼動させる {#run-server}
```shell-session
$ make serve
```
-{#outro}
-# 感想
+# 感想 {#outro}
(業務でなく) 個人だと数年ぶりのサーバセットアップで、これだけでも割と時間を食ってしまった。
とはいえ式年遷宮は楽しいので、これからも定期的にやっていきたい。