【第2回】誰でもできる!自宅で始める分散型SNSサーバー構築 ─── Ubuntu環境構築編【Misskey】

この記事は、 KENTEM TechBlog アドベントカレンダー2024 10日目、12月10日の記事です。

みなさんこんにちは! KENTEM第二開発部でフロントエンドを担当しているO・Aと申します😺

この記事では、一般家庭の要らなくなったPCを活用して、自宅で分散型SNS(Misskey)サーバーを構築する方法を、12/9~12/13の5日間に分けて、毎日丁寧に解説していきます。

シリーズ目次

  1. 第1回:分散型SNSとは何か? tech.kentem.jp
  2. 第2回:Ubuntuの環境構築手順 ←本記事 tech.kentem.jp
  3. 第3回:ドメイン取得とCloudflare Tunnelの設定 tech.kentem.jp
  4. 第4回:Misskeyのインストール tech.kentem.jp
  5. 最終回:Misskeyのセキュリティ対策、バックアップ方法、パフォーマンス向上、機能追加 tech.kentem.jp

今回は第2回:Ubuntuの環境構築手順です。


そもそもUbuntuとは?

Ubuntuは、「Linux」というOS(オペレーティング・システム)の最も人気のある配布版の一つです。

私達が普段馴染みがあるWindowsやmacOSと同じように、コンピュータを動かすためのOSとしての役割を果たします。

特筆すべき点として、Ubuntuは完全無料で、商用利用も含めて自由に使えることが挙げられます。

また、サーバー用途での安定性の高さには定評があり、必要なソフトウェアを簡単にインストールできる環境も整っています。


さて、今回は「ご家庭の使わなくなったWindows PCを完全にサーバー化する」という思想からスタートしたものであるため、古いPCの性能を最大限に引き出すことを重視し、ネイティブでUbuntuをインストールすることにしました。

Ubuntuは長時間運用での安定性に定評があり、サーバーOSとして理想的な選択肢となります。

WindowsをそのままにしてUbuntuを動かす「仮想化」という方法もありますが、限られた性能を最大限活用するためには、直接インストールする方法が最適だと判断しています。

また、SNSサーバーは24時間365日の安定稼働が求められます。 Windowsは様々な機能を備えていますが、サーバーとして使用する場合、そのほとんどが不要となってしまいます。

一方、Ubuntuでは必要な機能だけを選んでインストールできるため、限られたハードウェアリソースを無駄なく効率的に使うことができるのです。


さあ、早速始めていきましょう!



インストールメディアの作成

Ubuntuイメージファイルのダウンロード

最初に、Ubuntu 22.04 LTS日本語Remixのイメージファイルを入手します。

イメージファイルとは、OSの完全なコピーを1つのファイルにまとめたものです。

最新のUbuntu 24.04.1 LTSを使用しない理由は、Misskeyのサーバー構築の「環境と条件」について、「OSはUbuntu 22.04 LTSを利用する」と規定されているためです。

こちらのURLからアクセスします。

www.ubuntulinux.jp

ミラーサイトはどれを選択してもよいですが、ここでは富山大学を選択します。

ubuntu-ja-22.04-desktop-amd64.iso をクリックしてダウンロードします。

警告が出た場合は「保存」を選択しましょう。

ファイルサイズが大きく、ダウンロードには時間がかかるので、地道に待ちます。

インストールメディアをUSBに作成

イメージファイルがダウンロード完了したら、インストールメディアの作成を行っていきます。

今回、作成にはRufus(ルーファス)というツールを使用します。

rufus.ie

スクロールして下にある「ダウンロード」から、rufus-4.6.exeをクリックしてダウンロードします。

次に、PCにUSBメモリを刺します。4GB~8GBほどあれば十分でしょう。

ただし、この手順ではUSBメモリ内のデータが完全に消去されるため、USBメモリ内に重要なデータがないことを確認してください。

USBメモリを挿したら、先ほどダウンロードしたrufus-4.6.exeを開きます。

自動ダウンロードの可否はどちらでもよいですが、ここでは「はい」を選択します。

そうすると以下の画像のように、デバイス欄にメディアが表示されます。

表示されない場合はUSBメモリを手動で選択してください。

次に、「ブートの種類」の「選択」をクリックして、先程ダウンロードしてきたイメージファイルをエクスプローラーから選択します。

下記の状態になっていればOKです。「スタート」をクリックします。

次の、「ISOHybrid イメージの検出」では、「ISOイメージモードで書き込む(推奨)」を選択します。

下記の警告が出た場合、「OK」で構いません。

「状態」が緑色の準備完了になれば、インストールメディア作成完了です。


Ubuntuインストール

では実際にUbuntuをインストールしていきましょう。

OSをWindowsからUbuntuに切り替えるためには、BIOS画面に入り、起動優先順位をUSBにします。

BIOSとは、PCの電源を入れた時に最初に動く基本的なプログラムです。

⚠️ BIOS設定中はバッテリー切れに注意が必要です。

可能な限りAC電源を接続した状態で作業を行ってください。

BIOS設定画面に入り、「Boot」または「Boot Order」メニューを探す

さて、今PC入っているデータとWindowsに何の未練もなくなりましたか?

それではUSBメモリを刺したままPCを再起動して、BIOS設定画面に入ります。

パソコンの起動時に特定のキーを押すことでBIOS設定画面にアクセスできます。

電源投入直後から、画面に「Press [キー] to enter BIOS setup」といったメッセージが表示されます。

メーカーごとに使用するキーが異なります。

  • 東芝/dynabook: F2 または F12
  • DELL: F2 または F12
  • Lenovo: F1 または F12
  • HP: F10 または ESC
  • ASUS: F2 または DELETE
  • NEC: F2
  • 富士通: F2 または F12

メッセージが表示される時間は短いため、電源投入後すぐに対象のキーを数回連打することをお勧めします。

ここから先、BIOSの設定に移るため、スクショではなく画面直撮りになりますがお赦しください!🙏

USB Boot Priority を最優先に設定

BIOS設定画面に入れたらブート関連の設定を探します。

以下は富士通のPCを参考にしていますが、BIOS設定画面はメーカーごとに異なるため、もし分からなければ「メーカー名+USB Boot Priority」などで検索してください。

まず、「起動」「Boot」「Boot Order」「Boot Priority」などのメニューを探します。

操作は、矢印キーで移動し、Enterキーで選択します。

ブートデバイスの一覧から「USB Storage」「USB HDD」などの項目を探します。

通常、+/-キーや特定のファンクションキーで順序を変更できます。

起動の優先順位で、USBメモリを最優先(1番目)に設定します。

Escなどの所定のキーを押して、変更を保存してBIOS設定画面を終了します。

次に、黒い画面で選択肢が提示されるので、「Try Ubuntu with Japanese input support」を選択します。

暫く待つとUbuntuが起動します。

おめでとうございます!

ただし、この段階ではまだインストールは完全にはできていません。

デスクトップ内の「Ubuntu 22.04のインストール」をダブルクリックして開きます。

言語を選択して「続ける」をクリックします。

デフォルトは日本語です。

キーボードレイアウトを選択して「続ける」をクリックします。

こちらも初期設定で大丈夫です。

どのようにインストールするかを選択します。

  • 「通常のインストール」
  • 「Ubuntuのインストール中にアップデートをダウンロードする」
  • 「グラフィックスとWi-Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする」

にチェックを付けて、「続ける」をクリックします。

インストールの種類を選択します。

ここでは、既存のWindowsOSやデータを残すか、それとも完全にUbuntuに置き換えるかを選択します。

覚悟ができたら、「ディスクを削除してUbuntuをインストール」を選択して「続ける」を選択します。

(おまけ)

先程の選択肢で、「併用可能な形でインストール」を選択した場合、次の画面になります。

ここでは既存のOSとUbuntuでどのようにディスク領域(パーティーション)を分割するか?を選択します。

Windowsを残したい場合はお好きなパーティーションに設定しましょう。

「ディスクを削除してUbuntuをインストール」を選択すると、以下のようなダイアログが表示されますが、こちらも「続ける」をクリックします。

タイムゾーンを設定します。日本の場合は「Tokyo」を選択して「続ける」をクリックします。

自分の名前とパスワードを設定します。

名前は日本語だとバグの原因になるので、ここではアルファベットのみが望ましいです。

「続ける」をクリックします。

インストール中……

インストールが完了したら、「今すぐ再起動する」をクリックします。

再起動中、「Please remove the installation medium, then press ENTER:」という表示が出たら、インストールに使用したUSBメモリをPCから取り外して、キーボードのEnterキーを押します。

これで、USBメモリからではなく、ハードドライブにインストールされたUbuntuから起動することができます。

再起動後、Livepatchを設定するか聞かれますが、Ubuntu oneのアカウントを作成する必要があるため、ここでは一旦「次へ」を選択します。

Livepatchとは、Ubuntuのセキュリティパッチをシステムの再起動なしで適用できるサービスです。 つまり、従来なら「セキュリティパッチを適用するために再起動が必要」だった状況を、「システムを稼働させたまま更新できる」ようにした機能で、サーバー運営向けの機能です。

Ubuntuの改善レポートを送るか聞かれるので、どちらかを選択して「次へ」をクリックします。

位置情報サービスを使用するかを聞かれます。 サーバー運用の場合、位置情報サービスは通常無効にすることをお勧めします。 サーバーの位置情報が外部に漏洩するセキュリティリスクを抑えるためです。

オフのまま「次へ」をクリックします。

「完了」をクリックします。

これでUbuntuのインストールは本当に完了です。お疲れ様でした!

なお、その後ネットワークに接続すると、「Ubuntu 24.04.1 LTSにアップグレードしますか?」と聞かれます。

「アップグレードしない」「後で通知する」をクリックしましょう。


パッケージリストを最新の状態にする

ではここから、パッケージリストを更新することで、最新のソフトウェアの情報をシステムに取り込んでいきます。

これにより、利用可能な最新のセキュリティパッチやバグ修正を確認することができます。

パッケージリストとは?

Ubuntuで利用可能なソフトウェアパッケージの一覧を含むデータベースです。

/etc/apt/sources.listとその関連ファイルに保存され、apt updateコマンドで最新の情報に更新できます。

パッケージのインストール時に、システムはこのリストを参照して必要なソフトウェアを見つけ出します。

右下の「⋮⋮⋮」のメニューをクリックして、アプリ一覧を開き、「設定」を開いて、ご家庭のインターネットに接続します。(有線LANの場合はLANを指すだけでOKです。)

インターネットに接続できたら、右下の「⋮⋮⋮」のメニューをクリックして「端末」を選択します。

するとターミナルが開くので、以下のコードをコピーし、右クリックして「貼り付け」を選択して、Enterを押します。

⚠️

Ubuntuのターミナルでは、Ctrl+Vで貼り付けすることができないので注意してください!

今後ターミナルにコードを貼り付ける場面が多いですが、右クリック→「貼り付け」を徹底するようにしましょう。

# パッケージリストを更新
sudo apt update
# アップグレード可能なパッケージをすべてアップグレード
sudo apt upgrade -y
# アップグレード後、不要になったパッケージを削除
sudo apt autoremove -y
# curlのインストール
sudo apt install curl -y
# 再起動
sudo reboot

自動的に再起動するので、それが終われば完了です。


Chromeダウンロード&インストール

UbuntuのFirefoxだとなぜかMisskeyが開けないため(私の環境の問題かも?)、プリインストールされているFirefoxを使ってChromeを入れます。

こちらのURLからアクセスして、「Chromeをダウンロード」をクリックします。

www.google.com

上の「Debian/Ubuntu用」を選択して、「同意してインストール」をクリックします。

ダウンロードが終了してから「ファイル」アプリの「ホーム」→「ダウンロード」を開くと「google-chrome-stable_current_amd64.deb」が存在します。

こちらをダブルクリックするだけとアーカイブマネージャーが起動してしまい、インストールできないので、右クリックして「別のアプリケーションで開く」を選択します。

「ソフトウェアのインストール」を選択します。

インストーラーが立ち上がるので、「インストール」をクリックします。

パスワードが要求されるので、先に設定したパスワードを入力して「認証」をクリックします。

新しいキーリングのパスワードを指定する画面に行くので、Chrome用の新しいパスワードを2回入力して「続行」をクリックします。

これでChromeのインストールは終了です。お疲れ様でした!


(ノートPCの場合)カバーを閉じてもUbuntuをスリープ状態にしないようにする

ノートPCのカバーを閉じてもスリープに移行しないように設定しておくと、省エネにつながることはもちろん、誤って停止させてしまう事も無くなるのでオススメです。

右下の「⋮⋮⋮」のメニューをクリックして、アプリ一覧を開き、「端末」を選択します。

するとターミナルが開くので、以下のコードをコピーし、右クリックして「貼り付け」を選択して、Enterを押します。

# tweaksをインストールする
sudo apt install gnome-tweaks

インストールが終了したら、右下の「⋮⋮⋮」のメニューをクリックしてアプリ一覧を開きます。

検索窓で「tw」と入力して、検索結果に出てきた「Tweaks」アプリをクリックします。

「全般」の中に「ラップトップの蓋を閉じるとサスペンドする」という項目があるので、これをオフにしましょう。


おすすめ設定

  • フォルダ
  • ターミナル
  • 設定
  • Chrome

この4つは頻繁に使うので、タスクバーに常に追加しておきましょう。

アプリ一覧を開いて、それぞれのアイコンを右クリックして、「お気に入りに追加」をクリックします。

最終的に下の図のようになっていればOKです。

これでUbuntu環境構築編は終了です。本当にお疲れさまでした!


まとめ

ここまでお付き合いいただきありがとうございました。

この記事では、自宅のPCをサーバー化するための第一歩として、Ubuntu環境の構築手順を詳しく解説しました。

慣れないLinux環境での作業は大変だったかもしれませんが、これで分散型SNSサーバー構築への第一歩を踏み出すことができましたね。

次回はドメインの取得、Cloudflareの設定、トンネリングの概要について解説していきます。

ネットワークは難しいですが、図解や例えを使ってできるだけ分かりやすく、基本的な考え方をご紹介していきますので、一緒に学んでいきましょう。


ではまた明日お会いしましょう!



おわりに

最後まで読んでいただいた方に向けて、KENTEMの採用情報のご紹介です👇
KENTEMでは、様々な拠点でエンジニアを大募集しています!

・ICTの力で、建設業の「3K」を解決し、働く人に安心安全を届けたい。

・ KENTEMユーザーの現場の方々が、残業規制内に仕事が終わるようにして、18時には家族で食卓を囲めるようにしたい。

・建設業を支えることで、社会全体を「さまざまなリスクに強い安心・安全な場所」に変えていきたい。

このような理念を掲げて我々は働いております。

建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください!😺
recruit.kentem.jp career.kentem.jp


参考文献

dev.classmethod.jp

qiita.com

engrmemo.jp