自宅サーバーは盆栽。高校生自宅サーバー主の自己紹介
こんにちは、さかなです。
普段は自宅サーバーを運用したり、Discord Botを開発したり、Proxmox VEを触ったり、VPNを張ったり、BGPを喋らせたりしています。
肩書きを一言で言うなら、
高校生自宅サーバー主
です。
ただ、最近は「自宅サーバー主」というより、
自宅に小さいインターネットっぽい何かを生やしている人
の方が近い気がしています。
普通の家には、だいたいWi-Fiルーターがあります。
私の家には、Proxmox VEがあり、複数台のサーバーがあり、VPNがあり、監視があり、たまにBGPがあります。
おかしいですね。
でも、自宅サーバーは盆栽なので仕方ありません。
私は何をしている人なのか
私は、主に次のようなことをしています。
- 自宅サーバーの運用
- Webサービスの開発
- Discord Botの開発
- ネットワーク構築
- セキュリティ研究
- 監視基盤の構築
- DN42でのBGP実験
- たまに記事を書く
開発者というより、どちらかというと 運用しながら作る人 です。
コードを書いて終わりではなく、
「これ、どうやって本番で動かす?」
「落ちたらどう復旧する?」
「ログはどこに出る?」
「メトリクスは見える?」
「Cloudflareの裏はどうなってる?」
「この構成、単一障害点では?」
みたいなことを考えがちです。
怒られそうですが、ClaudeでCVEを見つけたり、友達とHonoにコントリビュートしてみたり、AIを活用して色々やっています。
自宅サーバーとの出会い
最初のきっかけは、Minecraftサーバーでした。
無料のレンタルサーバーを使っていたのですが、制限が多くて、
「だったら自分で建てればよくない?」
となりました。
今思えば、この一言がすべての始まりでした。
Minecraftサーバーを建てる
↓
Linuxを触る
↓
Webサーバーを建てる
↓
Proxmox VEを触る
↓
ラックサーバーを買う
↓
監視を入れる
↓
VPNを張る
↓
BGPを喋る
↓
DN42に参加する
こうして、気づいたら普通の家庭に存在しない経路制御が家に生えていました。
怖いですね。
今の自分を構成図にすると
たぶん、今の自分はこんな感じです。
なんかこうして見ると、だいぶ散らかっています。
でも、技術は散らかしてから整理すると理解が深まるので、これはこれで良いと思っています。
はい。
Swiftly読み上げbot
私が作っている代表的なサービスのひとつに、Swiftly読み上げbot があります。
Discordのテキストチャンネルのメッセージを、ボイスチャンネルで読み上げるBotです。
ただの読み上げBotに見えるかもしれませんが、実際に作るとかなり奥が深いです。
- 低遅延
- 音声合成
- 辞書機能
- Webダッシュボード
- Discordのイベント処理
- VC接続管理
- 監視
- ログ
- 障害対応
- ユーザー体験
このあたりを全部考える必要があります。
読み上げBotは、ただ声を出せばいいわけではありません。
遅いと会話のテンポが崩れます。
余計なメッセージが多いと邪魔になります。
設定が面倒だと管理者が困ります。
落ちると普通に悲しいです。
なのでSwiftlyでは、
必要な機能を、できるだけ速く、できるだけ邪魔にならない形で届ける
という思想を大事にしています。
私はこれを、Discordの会話を支える小さな音声インフラだと思っています。
Botというより、もはや生活インフラです。
いや、言いすぎかもしれません。
でも作ってる側は本気です。
自宅サーバーは盆栽
GitHubのプロフィールにも書いているのですが、私はよく
自宅サーバーは盆栽
だと思っています。
自宅サーバーは、ただサーバーを置けば終わりではありません。
- 配線を整える
- 監視を入れる
- ログを見る
- 設定を直す
- ネットワークを分ける
- バックアップを考える
- 障害で泣く
- 復旧して喜ぶ
- また構成を変える
この繰り返しです。
普通の人から見ると、
「それ、何が楽しいの?」
となるかもしれません。
でも、自宅サーバー民からすると、
「昨日より少し綺麗な構成になった」
「監視が見やすくなった」
「障害の原因がわかった」
「復旧手順が整った」
「配線がちょっとマシになった」
これだけで嬉しいです。
盆栽です。
水をやる代わりに apt update をします。
剪定する代わりに不要なコンテナを消します。
たまに枯れます。
DN42とBGP
最近は、DN42にも参加しています。
私のAS番号は AS4242423510 です。
DN42は、ざっくり言うとBGPやネットワーク技術を実験できる仮想的なネットワークです。
参加者同士がWireGuardなどでトンネルを張り、その上でBGPを喋らせて経路交換します。
つまり、気分だけならISPです。
もちろん本物のインターネットではないので、現実のAS運用とは責任も規模も違います。
でも、
- AS番号
- Prefix
- Peering
- Route object
- BGP session
- 経路制御
- ルートフィルタ
- 障害対応
このあたりを実際に体験できるのはかなり面白いです。
ネットワークを学ぶ上で、DN42はかなり良い遊び場だと思っています。
ただし、BGPは楽しいですが、雑に扱うと危ないです。
BGPは喋りますが、謝罪はしてくれません。
技術記事を書く理由
私はZennによく記事を書いています。
昔は、
「これ誰かの役に立つのかな」
と思いながら書いていました。
でも、意外と誰かの役に立ちます。
例えば、自分が詰まったところは、だいたい他の誰かも詰まります。
netstat がインストールできないとか、
Nginxを入れるとか、
GitHub Actionsから自宅サーバーにデプロイするとか、
Proxmoxで詰まるとか。
自分にとっては小さいメモでも、誰かにとってはかなり助かることがあります。
技術記事は、未来の誰かに置いておくログみたいなものだと思っています。
そしてだいたい、未来の自分も助かります。
一番記事に救われるのは、半年後の自分です。
私の好きな技術領域
好きな技術領域はかなり偏っています。
- Linux
- Proxmox VE
- Docker
- k3s
- WireGuard
- Tailscale
- Nginx
- PostgreSQL
- Redis
- Grafana
- Prometheus
- Loki
- Cloudflare
- CrowdSec
- ModSecurity
- BGP
- DNS
- Discord Bot
- Webサービス運用
こうして並べると、完全にインフラ寄りです。
もちろんWeb開発もします。
Next.jsやTypeScript、Node.js、Pythonなども使います。
ただ、私の場合はフロントエンドを極めたいというより、
作ったものをどう動かすか
どう守るか
どう監視するか
どう継続的に改善するか
に興味があります。
サービスは、作った瞬間よりも、動かし続ける時間の方が長いです。
だから運用は面白いです。
そして運用は、だいたい思い通りにいきません。
そこがまた面白いです。
たまに面白くないです。
私が大事にしていること
私がサービスを作るときに大事にしているのは、
ユーザーにとって邪魔にならないこと
です。
便利な機能を増やすことは簡単です。
でも、機能が増えるほど、UIは重くなり、設定は複雑になり、ユーザーは迷いやすくなります。
だから、Swiftlyでも私は
「本当に必要な機能か?」
「それはユーザーの体験を良くするのか?」
「ただ作りたいだけではないか?」
を考えるようにしています。
もちろん、作りたいだけで作ることもあります。
技術者なので。
でも、公開サービスとして出すなら、ユーザーが使いやすいことを一番大事にしたいです。
これからやりたいこと
これからやりたいことはたくさんあります。
- Swiftlyをもっと低遅延で安定した読み上げ基盤にする
- 自宅サーバーのネットワークをもっと綺麗にする
- DN42のネットワークを整備する
- 将来的にはThe Internet側のAS運用にも挑戦したい
- 監視やログ基盤をもっと強くする
- 自宅サーバーを活用したサービスを増やす
- 技術記事をもっと書く
特に、ネットワーク周りはもっと深くやりたいです。
今はDN42で実験していますが、いつかは本物のインターネット側にも進出してみたいと思っています。
本物のASを持ち、public prefixを持ち、upstreamと契約し、BGPで経路を流す。
言うだけなら簡単です。
現実は、お金も責任も手続きも障害対応もあります。
たぶん胃も痛くなります。
でも、そこに行きたいと思えるくらいには、ネットワークが面白いです。
まとめ
私は、自宅サーバーを運用しながら、サービスを作り、ネットワークを触り、記事を書いている高校生です。
最初はMinecraftサーバーから始まりました。
そこからLinux、Proxmox、Docker、監視、VPN、BGP、DN42へと進んできました。
振り返ると、かなり遠くまで来た気がします。
でも、まだまだやりたいことはあります。
自宅サーバーは盆栽です。
完成はありません。
少しずつ手を入れて、少しずつ良くして、たまに壊して、また直す。
これからも、そんな感じで技術を触っていきたいと思います。
そして、この記事を読んでいる人が少しでも
「自宅サーバー面白そう」
「BGP触ってみたい」
「自分も何か作ってみたい」
と思ってくれたら嬉しいです。
では。
自宅サーバーはいいぞ。
私についてのリンク
ポートフォリオ
私のやっているサービス
私のやっている組織
GitHub
Zenn