aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/posts/2022-10-28/setup-server-for-this-site/index.html
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-03-18 19:51:06 +0900
committernsfisis <nsfisis@gmail.com>2023-03-18 19:51:06 +0900
commit7f15e0b8277ac8b101b4f71ce57c1c5442927141 (patch)
tree31d54a18ede023adeb23a984c907860d667288bd /public/posts/2022-10-28/setup-server-for-this-site/index.html
parent032dc3c5e6d0ef84a9f4ea6be10e19b7f43c53b8 (diff)
downloadblog.nsfisis.dev-7f15e0b8277ac8b101b4f71ce57c1c5442927141.tar.gz
blog.nsfisis.dev-7f15e0b8277ac8b101b4f71ce57c1c5442927141.tar.zst
blog.nsfisis.dev-7f15e0b8277ac8b101b4f71ce57c1c5442927141.zip
fix(nuldoc): fix whitespaces being trimmed
Diffstat (limited to 'public/posts/2022-10-28/setup-server-for-this-site/index.html')
-rw-r--r--public/posts/2022-10-28/setup-server-for-this-site/index.html158
1 files changed, 79 insertions, 79 deletions
diff --git a/public/posts/2022-10-28/setup-server-for-this-site/index.html b/public/posts/2022-10-28/setup-server-for-this-site/index.html
index 8e1eea1..ae78d67 100644
--- a/public/posts/2022-10-28/setup-server-for-this-site/index.html
+++ b/public/posts/2022-10-28/setup-server-for-this-site/index.html
@@ -54,52 +54,52 @@
</ol>
</section>
<section id="section--_はじめに">
- <h2><a href="#section--_はじめに">はじめに</a></h2>
+ <h2><a href="#section--_はじめに">はじめに</a></h2>
<p>
これまでこの blog は GitHub Pages でホストしていたのだが、先日 VPS に移行した。そのときにおこなったサーバのセットアップ作業を書き残しておく。99 % 自分用の備忘録。別のベンダに移したりしたくなったら見に来る。
</p>
-
+
<p>
未来の自分へ: 特に自動化してないので、せいぜい苦しんでくれ。
</p>
</section>
-
+
<section id="section--_vps">
- <h2><a href="#section--_vps">VPS</a></h2>
+ <h2><a href="#section--_vps">VPS</a></h2>
<p>
- <a href="https://vps.sakura.ad.jp/">さくらの VPS</a>の 2 GB プラン。そこまで真面目に選定していないので、困ったら移動するかも。
+ <a href="https://vps.sakura.ad.jp/">さくらの VPS</a> の 2 GB プラン。そこまで真面目に選定していないので、困ったら移動するかも。
</p>
</section>
-
+
<section id="section--_事前準備">
- <h2><a href="#section--_事前準備">事前準備</a></h2>
+ <h2><a href="#section--_事前準備">事前準備</a></h2>
<section id="section--_サーバのホスト名を決める">
- <h3><a href="#section--_サーバのホスト名を決める">サーバのホスト名を決める</a></h3>
+ <h3><a href="#section--_サーバのホスト名を決める">サーバのホスト名を決める</a></h3>
<p>
モチベーションが上がるという効能がある。今回は藤原定家から取って ``teika&apos;&apos; にした。たいていいつも源氏物語の帖か小倉百人一首の歌人から選んでいる。
</p>
</section>
-
+
<section id="section--_ssh_の鍵生成">
- <h3><a href="#section--_ssh_の鍵生成">SSH の鍵生成</a></h3>
+ <h3><a href="#section--_ssh_の鍵生成">SSH の鍵生成</a></h3>
<p>
ローカルマシンで鍵を生成する。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/teika.key
$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github2teika.key</code></pre>
-
+
<p>
- <code>teika.key</code>はローカルからサーバへの接続用、<code>github2teika.key</code>は、GitHub Actions からサーバへのデプロイ用。
+ <code>teika.key</code> はローカルからサーバへの接続用、<code>github2teika.key</code> は、GitHub Actions からサーバへのデプロイ用。
</p>
</section>
-
+
<section id="section--_ssh_の設定">
- <h3><a href="#section--_ssh_の設定">SSH の設定</a></h3>
+ <h3><a href="#section--_ssh_の設定">SSH の設定</a></h3>
<p>
- <code>.ssh/config</code>に設定しておく。
+ <code>.ssh/config</code> に設定しておく。
</p>
-
+
<pre class="highlight" language="ssh_config" linenumbering="unnumbered"><code>Host teika
HostName **********
User **********
@@ -107,134 +107,134 @@
IdentityFile ~/.ssh/teika.key</code></pre>
</section>
</section>
-
+
<section id="section--_基本のセットアップ">
- <h2><a href="#section--_基本のセットアップ">基本のセットアップ</a></h2>
+ <h2><a href="#section--_基本のセットアップ">基本のセットアップ</a></h2>
<section id="section--_ssh_接続">
- <h3><a href="#section--_ssh_接続">SSH 接続</a></h3>
+ <h3><a href="#section--_ssh_接続">SSH 接続</a></h3>
<p>
VPS 契約時に設定した管理者ユーザとパスワードを使ってログインする。
</p>
</section>
-
+
<section id="section--_ユーザを作成する">
- <h3><a href="#section--_ユーザを作成する">ユーザを作成する</a></h3>
+ <h3><a href="#section--_ユーザを作成する">ユーザを作成する</a></h3>
<p>
- 管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。<code>sudo</code>グループに追加して<code>sudo</code>できるようにし、<code>su</code>で切り替え。
+ 管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。<code>sudo</code> グループに追加して <code>sudo</code> できるようにし、<code>su</code> で切り替え。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo adduser **********
$ sudo adduser ********** sudo
$ su **********
$ cd</code></pre>
</section>
-
+
<section id="section--_ホスト名を変える">
- <h3><a href="#section--_ホスト名を変える">ホスト名を変える</a></h3>
+ <h3><a href="#section--_ホスト名を変える">ホスト名を変える</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo hostname teika</code></pre>
</section>
-
+
<section id="section--_公開鍵を置く">
- <h3><a href="#section--_公開鍵を置く">公開鍵を置く</a></h3>
+ <h3><a href="#section--_公開鍵を置く">公開鍵を置く</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ vi ~/.ssh/authorized_keys</code></pre>
-
+
<p>
- <code>authorized_keys</code>には、ローカルで生成した<code>~/.ssh/teika.key.pub</code>と<code>~/.ssh/github2teika.key.pub</code>の内容をコピーする。
+ <code>authorized_keys</code> には、ローカルで生成した <code>~/.ssh/teika.key.pub</code> と <code>~/.ssh/github2teika.key.pub</code> の内容をコピーする。
</p>
</section>
-
+
<section id="section--_ssh_の設定_2">
- <h3><a href="#section--_ssh_の設定_2">SSH の設定</a></h3>
+ <h3><a href="#section--_ssh_の設定_2">SSH の設定</a></h3>
<p>
SSH の設定を変更し、少しでも安全にしておく。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
$ sudo vi /etc/ssh/sshd_config</code></pre>
-
+
<ul>
<li>
- <code>Port</code>を変更
+ <code>Port</code> を変更
</li>
-
+
<li>
- <code>PermitRootLogin</code>を<code>no</code>に
+ <code>PermitRootLogin</code> を <code>no</code> に
</li>
-
+
<li>
- <code>PasswordAuthentication</code>を<code>no</code>に
+ <code>PasswordAuthentication</code> を <code>no</code> に
</li>
</ul>
-
+
<p>
そして設定を反映。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo systemctl restart sshd
$ sudo systemctl status sshd</code></pre>
</section>
-
+
<section id="section--_ssh_で接続確認">
- <h3><a href="#section--_ssh_で接続確認">SSH で接続確認</a></h3>
+ <h3><a href="#section--_ssh_で接続確認">SSH で接続確認</a></h3>
<p>
今の SSH セッションは閉じずに、ターミナルを別途開いて疎通確認する。セッションを閉じてしまうと、SSH の設定に不備があった場合に締め出しをくらう。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ ssh teika</code></pre>
</section>
-
+
<section id="section--_ポートの遮断">
- <h3><a href="#section--_ポートの遮断">ポートの遮断</a></h3>
+ <h3><a href="#section--_ポートの遮断">ポートの遮断</a></h3>
<p>
デフォルトの 22 番を閉じ、設定したポートだけ空ける。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo ufw deny ssh
$ sudo ufw allow *******
$ sudo ufw enable
$ sudo ufw reload
$ sudo ufw status</code></pre>
-
+
<p>
ここでもう一度 SSH の接続確認を挟む。
</p>
</section>
-
+
<section id="section--_github_用の_ssh_鍵">
- <h3><a href="#section--_github_用の_ssh_鍵">GitHub 用の SSH 鍵</a></h3>
+ <h3><a href="#section--_github_用の_ssh_鍵">GitHub 用の SSH 鍵</a></h3>
<p>
GitHub に置いてある private リポジトリをサーバから clone したいので、SSH 鍵を生成して置いておく。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ ssh-keygen -t ed25519 -b 521 -f ~/.ssh/github.key
$ cat ~/.ssh/github.key.pub</code></pre>
-
+
<p>
- <a href="https://github.com/settings/ssh">GitHub の設定画面</a>から、この公開鍵を追加する。
+ <a href="https://github.com/settings/ssh">GitHub の設定画面</a> から、この公開鍵を追加する。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ vi ~/.ssh/config</code></pre>
-
+
<p>
設定はこう。
</p>
-
+
<pre class="highlight" language="ssh_config" linenumbering="unnumbered"><code>Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github.key</code></pre>
-
+
<p>
最後に接続できるか確認しておく。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>ssh -T github.com</code></pre>
</section>
-
+
<section id="section--_パッケージの更新">
- <h3><a href="#section--_パッケージの更新">パッケージの更新</a></h3>
+ <h3><a href="#section--_パッケージの更新">パッケージの更新</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo apt update
$ sudo apt upgrade
$ sudo apt update
@@ -242,60 +242,60 @@ IdentityFile ~/.ssh/github.key</code></pre>
$ sudo apt autoremove</code></pre>
</section>
</section>
-
+
<section id="section--_サイトホスティング用のセットアップ">
- <h2><a href="#section--_サイトホスティング用のセットアップ">サイトホスティング用のセットアップ</a></h2>
+ <h2><a href="#section--_サイトホスティング用のセットアップ">サイトホスティング用のセットアップ</a></h2>
<section id="section--_dns_に_ip_アドレスを登録する">
- <h3><a href="#section--_dns_に_ip_アドレスを登録する">DNS に IP アドレスを登録する</a></h3>
+ <h3><a href="#section--_dns_に_ip_アドレスを登録する">DNS に IP アドレスを登録する</a></h3>
<p>
- このサーバは固定の IP アドレスがあるので、<code>A</code>レコードに直接入れるだけで済んだ。
+ このサーバは固定の IP アドレスがあるので、<code>A</code> レコードに直接入れるだけで済んだ。
</p>
</section>
-
+
<section id="section--_使うソフトウェアのインストール">
- <h3><a href="#section--_使うソフトウェアのインストール">使うソフトウェアのインストール</a></h3>
+ <h3><a href="#section--_使うソフトウェアのインストール">使うソフトウェアのインストール</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo apt install docker docker-compose git make</code></pre>
</section>
-
+
<section id="section--_メインユーザが_docker_を使えるように">
- <h3><a href="#section--_メインユーザが_docker_を使えるように">メインユーザが Docker を使えるように</a></h3>
+ <h3><a href="#section--_メインユーザが_docker_を使えるように">メインユーザが Docker を使えるように</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>sudo adduser ********** docker</code></pre>
</section>
-
+
<section id="section--_httphttps_を通す">
- <h3><a href="#section--_httphttps_を通す">HTTP/HTTPS を通す</a></h3>
+ <h3><a href="#section--_httphttps_を通す">HTTP/HTTPS を通す</a></h3>
<p>
80 番と 443 番を空ける。
</p>
-
+
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw reload
$ sudo ufw status</code></pre>
</section>
-
+
<section id="section--_リポジトリのクローン">
- <h3><a href="#section--_リポジトリのクローン">リポジトリのクローン</a></h3>
+ <h3><a href="#section--_リポジトリのクローン">リポジトリのクローン</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ cd
$ git clone git@github.com:nsfisis/nsfisis.dev.git
$ cd nsfisis.dev
$ git submodule update --init</code></pre>
</section>
-
+
<section id="section--_certbot_で証明書取得">
- <h3><a href="#section--_certbot_で証明書取得">certbot で証明書取得</a></h3>
+ <h3><a href="#section--_certbot_で証明書取得">certbot で証明書取得</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ docker-compose up -d acme-challenge
$ make setup</code></pre>
</section>
-
+
<section id="section--_サーバを稼動させる">
- <h3><a href="#section--_サーバを稼動させる">サーバを稼動させる</a></h3>
+ <h3><a href="#section--_サーバを稼動させる">サーバを稼動させる</a></h3>
<pre class="highlight" language="shell-session" linenumbering="unnumbered"><code>$ make serve</code></pre>
</section>
</section>
-
+
<section id="section--_感想">
- <h2><a href="#section--_感想">感想</a></h2>
+ <h2><a href="#section--_感想">感想</a></h2>
<p>
(業務でなく) 個人だと数年ぶりのサーバセットアップで、これだけでも割と時間を食ってしまった。とはいえ式年遷宮は楽しいので、これからも定期的にやっていきたい。コンテナデプロイにしたい気持ちもあるのだが、色々実験したい関係上、本物のサーバも欲しくはある。次の式年遷宮では、手順の一部だけでも自動化したいところ。
</p>