なぜ自宅サーバーを立てたか

もともとサーバーやインフラなどの分野にすこし興味がわいてきて、やりたいと思っていた。 だがクラウドサーバーだとお金や制限などいろいろあるので、手元で小さく動かして、インフラやセキュリティ、Linux について少しでも技術を深めたかった。そこで、家にあった ThinkPad を使ってサーバーを立てることにしました。

構成

  • ThinkPad X240(メモリ 8GB)
  • Ubuntu Server

やったこと

ThinkPad に Ubuntu Server を USB 経由で導入し、ネットの記事や AI などを参考にして実装した。

外からつなぐ:Tailscale と SSH

サーバーは家の Wi-Fi の中にあるので、そのままだと家の外からはつなげない。ルーターでポートを開けると世界中からログインを試されて危ない。なので Tailscale を入れて、自分の端末どうしだけの専用のネットワークを作った。今は Mac から、Tailscale の IP アドレスに SSH(鍵認証)で入っている。

接続が切れても作業を残す:tmux

SSH が切れると、その中で動かしていたプログラムも一緒に止まってしまう。tmux の中で動かしておけば、SSH が切れても動き続けて、tmux attach でまた続きから作業できる。

執筆時点では、homestat 用と portfolio 用の 2 つの tmux のセッションを作って、それぞれで Claude Code を開いて使っている。tmux の良い使い方があれば知りたいので、ぜひ教えてほしいです。

ノート PC をサーバーにするための設定

  • バッテリー:ずっと電源につなぎっぱなしだとバッテリーが劣化するので、TLP で充電を 80% で止めて、75% を下回ったら再開するようにした(/etc/tlp.d/01-battery.conf)
  • ふた:ふたを閉じるとスリープしてしまうので、/etc/systemd/logind.conf.d/lid.conf に HandleLidSwitch=ignore を書いて無効にした

バッテリーを外しても動くなら、外したほうがいいかもと思いつつ、AC アダプターが抜けたときや停電のときに少しでも動ける時間を作るために、つけたままでもいいのかなと考えている。ノート PC で自宅サーバーを運用している人の意見をぜひ聞きたいです。

つまずいたこと

基本、躓いたら AI との壁打ちで少しずつ理解しながら進めているが、全く知らない分野なので覚えることも多く、一つ分かったら一つ忘れてたりして、なかなか手に技術が身に付かない。

だが、やらないよりいろいろやっているほうがいいと思うので、6〜8 割理解できたら次に進む、の精神で進めている。

/proc が見つからなかった

メモリの状態を見ようとして head -5 ~/proc/meminfo と打ったら、ファイルがないと言われた。~ は自分のホーム(/home/o1m0)のことで、/proc はルート直下にあるのが正しかった。

調べてみると、/proc の中のファイルはディスクに保存されているわけではなく、読んだ瞬間にカーネルが作っているらしい。実際 ls -l /proc/loadavg を見るとサイズが 0 なのに、cat すると中身が出てくる。free などのコマンドも、作っている homestat も、ここを読んでいる。

あと、今はユーザーが自分だけだけど、ほかのユーザーを追加して運用したら何が変わるのかも気になっている。

次にやること

homestat を実装して運用していきたい。

関係する作品homestat自宅の Ubuntu サーバーの状態を返す API