From 4f46d262e6967c9c638b40f3b0246d21b7a9b9dc Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 9 Apr 2025 20:29:15 +0900 Subject: feat(blog/nuldoc): rebuild --- .../setup-server-for-this-site/index.html | 132 +++++++-------------- 1 file changed, 44 insertions(+), 88 deletions(-) (limited to 'vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site') diff --git a/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html b/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html index cce709ac..ceba0dcd 100644 --- a/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html +++ b/vhosts/blog/public/posts/2022-10-28/setup-server-for-this-site/index.html @@ -61,54 +61,46 @@
-

はじめに

+

はじめに

- これまでこの blog は GitHub Pages でホストしていたのだが、先日 VPS に移行した。そのときにおこなったサーバのセットアップ作業を書き残しておく。99 % 自分用の備忘録。別のベンダに移したりしたくなったら見に来る。 + これまでこの blog は GitHub Pages でホストしていたのだが、先日 VPS に移行した。 そのときにおこなったサーバのセットアップ作業を書き残しておく。 99 % 自分用の備忘録。別のベンダに移したりしたくなったら見に来る。

-

- 未来の自分へ: 特に自動化してないので、せいぜい苦しんでくれ。 + 未来の自分へ: 特に自動化してないので、せいぜい苦しんでくれ。

-
-

VPS

+

VPS

- さくらの VPS の 2 GB プラン。そこまで真面目に選定していないので、困ったら移動するかも。 + さくらの VPS の 2 GB プラン。 そこまで真面目に選定していないので、困ったら移動するかも。

-
-

事前準備

+

事前準備

-

サーバのホスト名を決める

+

サーバのホスト名を決める

- モチベーションが上がるという効能がある。今回は藤原定家から取って teika にした。たいていいつも源氏物語の帖か小倉百人一首の歌人から選んでいる。 + モチベーションが上がるという効能がある。今回は藤原定家から取って teika にした。 たいていいつも源氏物語の帖か小倉百人一首の歌人から選んでいる。

-
-

SSH の鍵生成

+

SSH の鍵生成

- ローカルマシンで鍵を生成する。 + ローカルマシンで鍵を生成する。

-
$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/teika.key
 $ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github2teika.key
-

- teika.key はローカルからサーバへの接続用、github2teika.key は、GitHub Actions からサーバへのデプロイ用。 + teika.key はローカルからサーバへの接続用、github2teika.key は、 GitHub Actions からサーバへのデプロイ用。

-
-

SSH の設定

+

SSH の設定

.ssh/config に設定しておく。

-
Host teika
     HostName **********
@@ -119,22 +111,19 @@
               
-
-

基本のセットアップ

+

基本のセットアップ

-

SSH 接続

+

SSH 接続

- VPS 契約時に設定した管理者ユーザとパスワードを使ってログインする。 + VPS 契約時に設定した管理者ユーザとパスワードを使ってログインする。

-
-

ユーザを作成する

+

ユーザを作成する

- 管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。sudo グループに追加して sudo できるようにし、su で切り替え。 + 管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。 sudo グループに追加して sudo できるようにし、su で切り替え。

-
$ sudo adduser **********
 $ sudo adduser ********** sudo
@@ -142,79 +131,65 @@
 $ cd
-
-

ホスト名を変える

+

ホスト名を変える

$ sudo hostname teika
-
-

公開鍵を置く

+

公開鍵を置く

$ mkdir ~/.ssh
 $ chmod 700 ~/.ssh
 $ vi ~/.ssh/authorized_keys
-

authorized_keys には、ローカルで生成した ~/.ssh/teika.key.pub~/.ssh/github2teika.key.pub の内容をコピーする。

-
-

SSH の設定

+

SSH の設定

- SSH の設定を変更し、少しでも安全にしておく。 + SSH の設定を変更し、少しでも安全にしておく。

-
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
 $ sudo vi /etc/ssh/sshd_config
-
  • Port を変更
  • -
  • PermitRootLoginno
  • -
  • PasswordAuthenticationno
-

- そして設定を反映。 + そして設定を反映。

-
$ sudo systemctl restart sshd
 $ sudo systemctl status sshd
-
-

SSH で接続確認

+

SSH で接続確認

- 今の SSH セッションは閉じずに、ターミナルを別途開いて疎通確認する。セッションを閉じてしまうと、SSH の設定に不備があった場合に締め出しをくらう。 + 今の SSH セッションは閉じずに、ターミナルを別途開いて疎通確認する。 セッションを閉じてしまうと、SSH の設定に不備があった場合に締め出しをくらう。

-
$ ssh teika
-
-

ポートの遮断

+

ポートの遮断

- デフォルトの 22 番を閉じ、設定したポートだけ空ける。 + デフォルトの 22 番を閉じ、設定したポートだけ空ける。

-
$ sudo ufw deny ssh
 $ sudo ufw allow *******
@@ -222,35 +197,28 @@
 $ sudo ufw reload
 $ sudo ufw status
-

- ここでもう一度 SSH の接続確認を挟む。 + ここでもう一度 SSH の接続確認を挟む。

-
-

GitHub 用の SSH 鍵

+

GitHub 用の SSH 鍵

- GitHub に置いてある private リポジトリをサーバから clone したいので、SSH 鍵を生成して置いておく。 + GitHub に置いてある private リポジトリをサーバから clone したいので、SSH 鍵を生成して置いておく。

-
$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github.key
 $ cat ~/.ssh/github.key.pub
-

GitHub の設定画面 から、この公開鍵を追加する。

-
$ vi ~/.ssh/config
-

- 設定はこう。 + 設定はこう。

-
Host github.com
     HostName github.com
@@ -259,18 +227,15 @@
     IdentityFile ~/.ssh/github.key
     IdentitiesOnly yes
-

- 最後に接続できるか確認しておく。 + 最後に接続できるか確認しておく。

-
$ ssh -T github.com
-
-

パッケージの更新

+

パッケージの更新

$ sudo apt update
 $ sudo apt upgrade
@@ -280,36 +245,31 @@
               
-
-

サイトホスティング用のセットアップ

+

サイトホスティング用のセットアップ

-

DNS に IP アドレスを登録する

+

DNS に IP アドレスを登録する

- このサーバは固定の IP アドレスがあるので、A レコードに直接入れるだけで済んだ。 + このサーバは固定の IP アドレスがあるので、A レコードに直接入れるだけで済んだ。

-
-

使うソフトウェアのインストール

+

使うソフトウェアのインストール

$ sudo apt install docker docker-compose git make
-
-

メインユーザが Docker を使えるように

+

メインユーザが Docker を使えるように

$ sudo adduser ********** docker
-
-

HTTP/HTTPS を通す

+

HTTP/HTTPS を通す

- 80 番と 443 番を空ける。 + 80 番と 443 番を空ける。

-
$ sudo ufw allow 80/tcp
 $ sudo ufw allow 443/tcp
@@ -317,9 +277,8 @@
 $ sudo ufw status
-
-

リポジトリのクローン

+

リポジトリのクローン

$ cd
 $ git clone git@github.com:nsfisis/nsfisis.dev.git
@@ -327,27 +286,24 @@
 $ git submodule update --init
-
-

certbot で証明書取得

+

certbot で証明書取得

$ docker-compose up -d acme-challenge
 $ make setup
-
-

サーバを稼動させる

+

サーバを稼動させる

$ make serve
-
-

感想

+

感想

- (業務でなく) 個人だと数年ぶりのサーバセットアップで、これだけでも割と時間を食ってしまった。とはいえ式年遷宮は楽しいので、これからも定期的にやっていきたい。コンテナデプロイにしたい気持ちもあるのだが、色々実験したい関係上、本物のサーバも欲しくはある。次の式年遷宮では、手順の一部だけでも自動化したいところ。 + (業務でなく) 個人だと数年ぶりのサーバセットアップで、これだけでも割と時間を食ってしまった。 とはいえ式年遷宮は楽しいので、これからも定期的にやっていきたい。 コンテナデプロイにしたい気持ちもあるのだが、色々実験したい関係上、本物のサーバも欲しくはある。 次の式年遷宮では、手順の一部だけでも自動化したいところ。

-- cgit v1.2.3-70-g09d2