世界を動かす技術を、日本語で。

自己ホスティングと技術的独立:自分自身を構築する喜び

概要

  • 自作やセルフホスティング によるテック独立の魅力と実践例を紹介
  • 独自ドメイン取得やブログ運営 の長期的な価値を強調
  • オープンソース活用と貢献 の意義と楽しさを解説
  • Homelabや自宅サーバー での便利ツールや構成例を共有
  • 学びと独立性 を得ることで得られる満足感に言及

テック独立とセルフホスティングのすすめ

  • PewDiePieのArchインストール動画 やオープンソース製品作りを見て、自作やセルフホスティング、テック独立への想いを再認識
  • 自分で構築・運用する楽しさ、学び、そしてサブスクリプション地獄からの脱却
  • 最初の一歩は独自ドメイン取得。その上で自分のブログやサービスをセルフホストすることの重要性
  • 長期的な資産形成。10年以上同じドメインでブログを続ける価値は計り知れない
  • プラットフォーム移行のリスク (WordPress→Medium→Substack→Ghost等)と、独自ドメインの一貫性

私のセルフホスティング体験談

  • 自分のブログや「第二の脳」、著書、購読者リスト(Listmonk)、独自ペイウォール(Memberstack)などをセルフホスト
  • WordPressからGoHugoへの移行経験。ホームサーバー構築(SSH, バックアップ, 写真, Gitea等)
  • リバースプロキシやSSL証明書設定、SSH鍵運用 の学習と実践
  • 最初は難しく感じても、徐々に当たり前に。一度乗り越えると大きな達成感
  • 「自分で作って使う喜び」と「無料で使えること」 が原動力

テック独立の思想と始め方

  • Derek Siversから学んだ「Tech Independence」。特定企業やソフトに依存しない考え方
  • Linuxの基礎を学ぶことで、ほとんどのサービスを自分でホスト可能
  • 「必要だから」ではなく、「使いたいから」自作する楽しさ
  • まずは独自ドメイン取得からスタート。名前は深く考えすぎず、後で変更も可能
  • 独自ドメインとサーバーがなければ、資産の移行や維持が困難

オープンソースの魅力

  • Linuxを使い始めると、オープンソースの世界に自然と触れる
  • オープンソースは単なる無料ソフトではなく、世界中の人々の善意の結晶
  • GitHubでのフィードバックや貢献(Pull Request)も自由
  • MITライセンス等の寛容なライセンスなら誰でも利用可能
  • 自分もオープンソースを使い、貢献することでコミュニティの一員に

オープンソースと自身の成長

  • 初めてのオープンソース体験は、会社で有料BIツールの代替をbrew installで導入した時
  • オープンソースデータエンジニアリングに魅了され、ブログもこのテーマで執筆
  • 理想は皆がオープンソースで協力し合い、全員が利益を得る世界
  • LinuxやLinus Torvaldsの偉大さ。Linuxだけでなくgitも彼の発明
  • 自身の課題解決のために生まれたgitが世界標準に。オープンな姿勢が多くの人を惹きつける理由

共有・発信の価値

  • 自分の成果や知識を公開することで、他者の学びや貢献を促進
  • 他人のフィードバックやフォークによる発展、新たな出会い
  • 期待せずとも、誰かの役に立てることが最大の報酬
  • 知識やコードをシェアすることで信頼を得られる
  • 必要としていたツールやスクリプトを無償で公開してくれる人への感謝とつながり

私のテックスタックと感謝

  • Quartz(Jacky Zhao作)でObsidianノートを公開
    • GoHugo v3版を自身で管理・運用
  • GoatCounter(Martin Tournoij作)で匿名アクセス解析
    • プライバシー重視のシンプルな統計
  • Listmonk(Kailash Nadh作)でニュースレター管理
    • シンプルかつ強力な自己ホスト型メール配信
  • listmonk-rss(Stephan Heuel作)でブログ更新時の自動配信
    • GitHub Actionsも簡単導入
  • これら全てオープンソース。自分も恩返しとして公開・共有

Homelab・自宅サーバー用おすすめツール

  • Paperless :紙文書のスキャン・OCR・タグ管理
  • PhotoPrism :AI顔認識・自動タグ付け・プライバシー重視の写真管理
  • Pi-hole :ネットワーク全体の広告・トラッキングブロック
  • Nginx Proxy Manager :SSL自動化・ドメイン振り分け可能なWebベースリバースプロキシ
  • Audiobookshelf :オーディオブック・ポッドキャスト管理
  • Calibre :電子書籍管理・変換・Web閲覧
  • Syncthing :クラウド不要の分散ファイル同期
  • Gitea :軽量な自己ホスト型Gitサービス
  • 中古サーバーを安価で購入し、再生利用。最新機器でなくても十分活用可能

学びと独立性の喜び

  • 自作やセルフホスティングは手間もかかるが、その分大きな満足感
  • 「学ぶこと」そのものが最大のモチベーション
  • 自分で作ったものを使うことで得られる独立性と安心感
  • GoogleやAppleなど大手サービスの仕様変更や終了にも左右されない自由
  • 価格改定にも影響されにくい自律的な運用

Markdownとコンテンツ共有

  • 自分のブログや「第二の脳」も含め、ほぼ全てMarkdownで管理
  • GitHubやWebサイト、ニュースレターもMarkdownベース
  • Markdownで統一することで、異なるエディタ間の書式変換の手間を削減
  • オープンソースやセルフホスティングの世界ではMarkdownが事実上の標準

関連リンクや実例:

  • dotfiles公開、データエンジニアリングブログ、第二の脳ノート集、執筆中の書籍も全てオープンで公開
  • MarkdownLinuxオープンソース が情報発信と学びの共通基盤

Hackerたちの意見

たくさんの開発者がいるし、AIが家庭で生み出せるものも多いから、トレンドになる可能性は十分あるよね。コードのクオリティはバラバラだけど…

前提として、基本的なこと、例えばLinuxを学ぶことで、自分でほとんどのことをホストできるようになるってことだよね。必要だからじゃなくて、やりたいから、そして自分のサービスを使うっていうのが楽しいんだ。そこから学びもあるしね。それだけじゃなくて、依存しているプラットフォームから追い出されるリスクを減らすのにも役立つ。もしGmailアカウントを失ったらどうなるか想像してみて。ほとんどの一般の人は大変なことになると思う。だって、それが彼らのオンラインでのアイデンティティみたいなもんだから、パスワードをリセットしたり、いろいろなサービスにログインするのに必要だしね。Gmailアカウントを失ったら困るHNのコメント者も少なくないだろうね。少なくとも自分のEメールのアイデンティティは持っておくべきだよ!他のオンラインサービスも同じように考えてみて。もしウェブホストが突然消えたらどうする?AWSやSpotify、Netflix、他のクラウドサービスも同様だよ。バックアップはどうするの?「新しいクラウドホスト」って答えなら、同じ問題を交換してるだけだよ。

自宅でのセルフホスティング - どっちがリスク高い?HDDが壊れることとGmailアカウントを失うこと?ああ、今はただセルフホスティングするだけじゃなくて、機材を置くスペースも必要だし、バックアップの計画や更新のインストールも考えなきゃいけない。更新をテストして、バグでシステムが壊れないようにするのも大事だよね。更新中やバックアップ中に停電が起きたら大変だし、UPSも必要だね。あ、そういえば、UPSが故障してNASのHDDが壊れちゃったんだ。もうこれ以上は面倒見れないよ、他にやることがあるからさ ;)

ただ、いくつかの重要なリスクもあるよね。ローカルのプライベートキーをうっかり削除したり忘れたり、主要なメールドメインを失ったりすると、どうしようもないからね。サードパーティのサービスで2FAやアカウント復旧を設定する方がずっと簡単だよ。セルフホスティングしない方がいいとは言ってないけど、99%の人にとっては、アカウントを復旧できるようにする方がリスクが少ないかもね。

自分のドメインを持って、好きなメールホスティングプロバイダーに向けて、何かがひどく間違ったらプロバイダーを切り替えればいいんだ。ドメインは安いし、特定のメールプロバイダーに依存したメールアドレスは使わない方がいいよ。自分でメールをホストするか、プロのサービスを使うかは関係ないからね。

自分でメールをホストする時の唯一の問題は、設定じゃないんだよね。メールサーバーの設定に関するドキュメントはたくさんあるけど、実際に運用するのは別の問題。特に、トラブルシューティングや問題解決についてのリソースを見たことがないし、全然分からない。特に他のプロバイダーとの相互運用性に関して。例えば、もしGoogleがあなたのサーバーをブラックリストに載せたら、誰に相談すればいいの?どうやってそのことを知るの?彼らにはメールアドレスや、エラーメッセージに解決手続きが書いてあるの?それとも、他のグローバルなIP禁止サイトについても。メールのトラブルシューティングガイドが見たいな。DKIMのようなプロトコルやDNSの設定についてじゃなくて、技術的には正しく設定されていても、サービスに影響を与える他のアクターとの対処法が知りたいんだ。

リスクは確かにあるけど、実際に多くの人に起こる可能性はどれくらい?これを持ち出す理由は、Gmailの初期ユーザーがそれに切り替えたり、依存するようになったのは、他の選択肢がもっとひどかったからなんだよね。ISP経由のアカウントは、別のISPに切り替えた瞬間に消えちゃうし、その切り替えは、ISPがサービスを提供していない場所に引っ越した場合は必要なことだったかもしれない。大学のメールアドレスも、卒業後すぐに消えちゃうし、雇用主のメールアドレスも、転職したらすぐに使えなくなる(そもそも個人利用にはリスクがあるし)。他の専用プロバイダーを通じて、今はほとんどの専用プロバイダーが消えちゃったんじゃないかな。そう、自己ホスティングはその問題をある程度解決できるかもしれないけど、あくまで「ある程度」なんだよね。自分のアイデンティティをコントロールするって言っても、セキュアなメールサーバーを設定して維持する知識がなければあまり意味がない。もしそれができて、特に狙われていなければ、大丈夫だと思うけど。そうじゃなければ、全てが不確実になるし、完全にコントロールできるわけでもない。結局、ドメイン名の管理もあるからね。しっかり勉強して更新を怠らなければ大丈夫だと思うし、Googleよりは確実に良い状況になると思うけど、やっぱりそれは自分次第だよね。Gmailや他のプロバイダーを選ぶ理由もあるし、結局、そういう人たちは短期的にも中期的にも良い結果になると思うよ。

大体必要なものはセルフホスティングしてるけど、最近インターネットが不安定になったときに究極の試練に直面したよ。それでいくつか面白い疑問が浮かんできた: - インターネットなしでどれくらい生産的でいられるか? - 何を逃しているのか?私にとっての答えは、もっとドキュメントをアーカイブすべきだってことと、NixOSはキャッシュをホストしないとオフラインでは使えない(これが結構厳しい)ってことだった。結局、必要なものをほとんどセルフホスティングしてオフラインでいると、本当に生産性が向上することがわかったよ。

自分でホスティングする「devdocs」[1] と、Linux上のzeal [2] がオフラインドキュメントの問題をたくさん解決してくれると思うよ。 [1] https://github.com/freeCodeCamp/devdocs [2] https://zealdocs.org/

これ以上は無理だな。ネットから切り離されてる時間が長いのが好きで、その時が一番生産的なんだ。bashエイリアスを使ってwgetでウェブサイトを再帰的に保存したり、yt-dlpで見たい動画をダウンロードしたり、KiwixでWikipediaのオフラインコピーを手に入れたりしてる。メールはローカルに保存してるし、オフラインでドラフトをキューに入れられる。SingleFile拡張機能を使えば、単一ページを効果的に保存できるし、Zealは素晴らしいオープンソースのドキュメントブラウザだよ。

ダウンタイムは自分のシステムの弱点を学ぶチャンスだよね。自分ではどうしようもないシナリオ(上流の問題)もあるけど、他には対策がある。そういう対策を考えるのが楽しいし、そのコストが可能性に見合うかどうかを判断するのも好き。たとえ見合わなくても、対策を考えないわけじゃないからね。

https://kiwix.org/en/ といくつかのJellyfinのセットアップは、オフラインでの素晴らしいリソースだよ。でも、NixOSやGentooは、インターネットがないとすごく不満になるんだよね。全てのパッケージをミラーリングするのは、通常は選択肢じゃないし。

NixOSはキャッシュをホストしないとオフラインでは使えない(それはかなり悪いね)。キャッシュや他のリポジトリバックアップシステムは、パッケージマネージャーを使うソフトウェアには重要だと思う。何百人、いや何千人もの個人に依存して、依存関係のツリーを維持してもらうって、現代のソフトウェア開発の中で最もクレイジーな部分の一つだと思う。エンドユーザー向けのソフトウェアは、すべての依存関係がバンドルされた個別のパッケージの方が好きだな。どちらにしても、実際にはハードドライブにそれがあるから。

セルフホスティングしたい理由はわかるけど、したくない理由もわかる。セルフホスティングは面倒だし、Dockerの更新が必要だし、時々壊れるし、他の誰もいない時は一人で解決策を探さなきゃいけないし、うまくいっても少し使いづらいことが多いよね。ちゃんと動いて時間を節約してくれるセルフホスティングツールのリストはすごく限られてる(その中で一番最初に挙げるのはfireflyかな)けど、壊れて放置したものを設定するのにかなりの時間を無駄にしたのは確かだよ。今は、プライバシーを尊重して適正価格の会社にお金を払うことにとても満足してるよ。

どのプロジェクトで問題にぶつかったの?Docker Composeを使える段階まで行ったプロジェクトは、だいたい上手くいく気がするけど。あと、ほとんどの会社はいつか必ず信頼を裏切るから、なんでそのチャンスを与える必要があるの?俺はHome Assistantを自分でホストしてるけど、あそこは法律的な障壁を自分で設けてる数少ない会社だから、もしPaulusが明日バスにひかれたら、プロジェクトがユーザーに対抗することはできなくなるよね。

docker それが問題だね。Dockerはストレージやネットワークに間接性を加えるし、セキュリティやその他のアップデートを得るためにコンテナを再構築するか、他の人に頼らなきゃいけないから、アップグレードも難しくなる。もし上流のOSベンダーパッケージとしてデプロイできるものや、単一のバイナリ(goベースのプロジェクトはよくこれをやる)にこだわれば、長期的にはもっと良い経験ができると思うよ。

その会社がプライバシーを尊重して、適正な価格設定をしているなら。 それも非常に限られたリストだね。

なんでDockerをアップデートする必要があるの?俺はDockerをアップグレードせずに1年以上もボックスを動かしてたけど、イメージのアップグレードは月に15分もかからないよ。 >>> 「もし会社がプライバシーを尊重しているなら、そんな会社はめったに見かけないし、年が経つにつれて一貫した姿勢を維持することすら信じるのが難しい。」

Archにインストーラーができてから、もう難しいとは思わなくなったな。確かにコマンドラインに放り出されるけど、昔の難解なパーティションブロックの計算を理解しようとしてた頃とは全然違うよ。

RIP "私はarchを使ってるけどね"

ちょっと違った境界線を提案したいな。「自己ホスティングすること」じゃなくて「自己ホスティングできる能力」って感じ。つまり、やりたいならできるけど、他の人にホスティングさせてもいいよってこと。これって、技術に詳しくない人やお金を払うことを厭わない人にとって、すごく包括的なんだよね。「別に気にしないから、払っちゃうよ」って人が特に影響を受けるし、実際に気にすべき人たちでもある。なんでかっていうと、今のビジネスはもっと捕食的になっていて、被害者の将来の技術依存を狙っているから。FOSSに興味がなくても、プロバイダーを移行できることはめちゃくちゃ重要だよ。ロックインされると、彼らはそれを利用してくる。中には、他のビジネスには興味がないくらい、システマティックにやってるところもある。

これはBlueskyが話している「信頼できる退出」のアイデアに似てるね。それに、オープンソースで自己ホスティング可能、クラウドホスティングサービスとこれらのセットアップ間の移行ができるZulipにも拍手を送りたい。

いつも最初にドメインを買うべきだと言ってるよ。ドメインはレンタルするだけだからね。支払いを逃すと、家主は容赦ないよ、すぐに追い出される。リスクはどこにでもあって、私たちのオンラインアイデンティティがどれだけ脆いかを考えると憂鬱になる。

ただ、これは技術的な制限でもあるんだよね。私のドメイン名を使う全てのデバイスが、何かのキーで署名されたものが実際にXorNot.comとかであることを受け入れられない理由はないんだけど…その設定を維持するのは大変だよね。もしその概念が十分な技術的支持を得られれば、「信頼できるキーのリストと名前」のみでシステム全体を置き換えることもできるかもしれない。

「ドメインはレンタルするだけだよ。」もしICANN承認のroot.zoneとICANN承認のレジストリだけが選択肢ならね。実験として、自分専用のレジストリを作ったんだ、誰とも共有してない。何年も自分のルートサーバーを運営していて、つまり、自分のカスタムroot.zoneを所有する全てのコンピュータに提供している。よく知られた分類システムを埋め込んだカスタムTLDを使った検索実験もあるよ。ドメイン名のTLD部分は、地球上のどんな製品やサービスも分類できる。ICANNのTLDは曖昧で、時には欺瞞的ですらあるから。

警告:宣伝が入りますよ。セルフホスティングはハードウェアを買う必要があるわけじゃない。数年経つと、低スペックのマシンはWindowsではほぼ使い物にならなくなるけど、Linuxサーバーには十分な性能がある。古いノートパソコンが友達の家に転がってるかもしれないし、それを再利用できるよ。俺は2011年のi3を使って2人で運用してるけど、2025年までアップグレードの必要は全く感じてない。ノートパソコンはアイドル時の電力効率も良いから、長い目で見ればデスクトップよりも理にかなってる。始めたばかりなら、ノートパソコンは素晴らしい初めてのサーバーだよ。(あ、ノートパソコンには内蔵UPSはないから、24時間ずっと使う前にバッテリーは外した方がいいよ) 1: https://www.kassner.com.br/en/2023/05/16/reusing-old-hardwar...

俺だけじゃないって思うと嬉しい。古いノートパソコンはRaspberry Piよりずっと良くて、しかも無料で電力効率もいいよね。

Lenovo ThinkCentre MiniPCや同じようなブランドもおすすめだよ。企業がハードウェアをアップグレードする時に安く手に入ることが多い。これらのマシンはアイドル時の電力効率も良くて、ノートパソコンよりもスペースを取らないし、ケースファンも静かだから(ノートパソコンは負荷がかかるとうるさいことがある)。今はM910のi5(6世代か7世代)でSyncthing、Forgejo、Pihole、Grafana、DB、Jellyfinなどを問題なく動かしてるよ。

そうだけど、RAID6/RAIDZ2に相当するもの以下だと、データ損失のリスクがかなり高くなるよ。ほとんどのノートパソコンはSATA/M.2ポートが不足してるから、何らかのパリティを取ることができない。RAIDが提供する耐障害性を求めるなら、新しいハードウェアが必要になるよ。理想的には、「異なる物理的な場所にバックアップを取る」というルールに従うなら、異なるマシンでそれを2回持っておくのがいいね。

Pangolinには愛がないの? https://www.reddit.com/r/selfhosted/comments/1kqrwev/im_addi...

今のセルフホスティング用のツールはかなり強力だよ。ホスティングされたコンポーネントから始めて、いろいろなものをセルフホスティングに切り替えることができる。例えば、俺のブログは自宅サーバーでセルフホスティングしてる。Cloudflare Tunnelを前に置いてるけど、以前はnginx+letsencrypt+パブリックIPを使ってた。データはCloudflare R2に保存してるけど、S3に保存したり、ローカルNASに保存することもできる(R2にFUSE経由でアクセスしてるから、あまり関係ないけど)。レンタルしなきゃいけないのは:* ドメイン名 - これは永久的な購入じゃないのが正しい * インターネット接続 でも、今はほとんどの他のものにはオプションで使えるツールがあるよ。オフにすると体験は悪くなるけど、全てはまだ動く。今は昔よりずっと楽な時代だよ。90年代や2000年代初頭にはこんなのはなかったからね。素晴らしい時代だ。大きな違いは、メールのアンチスパムがかなり厳しくなったことだけど、8年前までは自分でメールを処理してたから問題なかったよ(今はG Suiteを使ってるけど)。