ミニPCにUbuntu24.04を入れ、Wikiサーバー化する

Linux

NiPoGiのAK1PLUSというミニPCを持っているのだが、このPCの特徴として合体パーツに2.5インチSSDを増設できるというものがある。
Amazonのセールで250GBのSSDを購入、Ubuntuとのデュアルブート環境を構築してUbuntuをサーバーとして使う。
すでにNASを持っていること、購入したSSDの容量が少ないことからファイルサーバーはやりません。
ひとまずGROWIをインストールし、自分用のローカルWiki用にします。マシンパワーに余裕があるようなら別の機能も持たせるかもしれませんが、現時点では未定です。

使用機材

ミニPCですが、私は去年の12月に買いました。
だからでしょうね、AmazonからN100搭載モデルが消えてます。
N95とかN150はあっても、N100がありません。

ミニpc n95 mini pc 動作より安定最大3.4GHz 4C/4T 小型pc 8GB LDDR5 256GB M.2 SSD

SSDはセール中の値段だけで決めました。

JNH SSD 250GB 3D NAND SATA3 6Gbps 内蔵 2.5インチ 7mm 550MB/s アルミ製筐体

SSD増設

NiPoGi AK1PLUSの底面にあるロックを外します。
(この時に気が付きました。ゴム足1つ失くしてますね・・・どこいったし)

ロックを外すと取り外し可能になります。

PC本体と増設用ケースに分離するので、増設用ケースの底面のねじを外します。
内部に2.5インチのSSDを搭載できるので、はめ込みました。
ねじ止めとかはありませんが、蓋裏に細長いクッションが貼ってあり、それで押し付けられているのでまぁはずれないでしょう。

あとは逆の手順でもとに戻すだけです。

Ubuntu 24.04 LTSのインストール

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

インストールメディアの作り方はざっくりいうと
・Ubuntuのisoを公式からダウンロード
・RufusでUSBに書き込む
以上です。

インストールメディアから起動

NiPoGi AK1PLUSを起動し、Delキー連打でBIOS画面に入ります。
BootタブのFIXED BOOT ORDER PrioritiesでUSB Deviceを最上位に移動させるか、Save & ExitのBoot Overrideでインストールメディアを選べばいける。

起動したら「Try or Install Ubuntu」を選択して、Ubuntuを起動する。

Ubuntuのインストール

  1. 言語選択で「日本語」を選択し、「次」をクリックする。
  2. 「Ubuntuのアクセシビリティ」設定画面は必要あれば変更し、「次」をクリックする。
  3. キーボードレイアウトは適切なレイアウトを選び、「次」をクリックする。
    ※自動的に検出されるので変更の必要はないはず。
  4. ネットワークに接続は「有線接続を使用」を選択し、「次」をクリックする。
    ※無線やオフラインでも可。
  5. インストーラのアップデートが適用できますでは「今すぐアップデート」をクリックする。
    ここでアップデートしないなら「スキップ」をクリックする。
  6. アップデートした場合は準備完了後に「インストーラを閉じる」をクリックする。
  7. デスクトップにインストーラーがあるので起動し、1.~4.まで繰り返す。選択済みなので「次」をクリックするだけでいいはず。
  8. インストール種類は「対話式インストール」を選択し、「次」をクリックする。
  9. アプリインストールは「既定の選択」を選択し、「次」をクリックする。
  10. プロプライエタリなソフトは「グラフィックスとWi-Fi機器用のサードパーティ製ソフトウェアをインストールする」にチェックを入れ、「次」をクリックする。
  11. インストール方法は「手動パーティショニング」を選択して、「次」をクリックする。
  12. ブートローダーをインストールするデバイスを選択で、インストール先のSSDを選択する。
    ※ミスるとディスクのデータが全ロスするので慎重に進める事。
  13. 空き領域を選択して「+」をクリックする。
  14. 使用方法を「Ext4」、マウントポイントを「/」にして、「OK」をクリックする。
  15. アカウントの設定は必須項目を入力して、「次」をクリックする。
  16. タイムゾーンは「Asia/Tokyo」を選択して、「次」をクリックする。
  17. これまでの選択を確認し、問題なければ「インストール」をクリックする。
  18. インストール完了後、「今すぐ再起動」をクリックする。
  19. しばらくすると「Please remove the installation medium, then press ENTER」と表示されるため、インストールメディアを外してエンターキーを押す。
  20. 再起動され、インストールされたUbuntuが起動する(かもしれない)。
    というのもBIOSの設定次第ではWindowsが起動する。
    まずはBIOSに入り、BootタブのUEFI Hard Disk Drive BBS Prioritiesを選択、Boot Option #1 をubuntu、#2をWindowsにする。

Ubuntuの初期設定

ソフトウェアの更新

左下の「アプリを表示」から「ソフトウェアの更新」を選択し、クリックする。

「今すぐインストールする」をクリックする。

ClamTkのインストール

Linuxでもセキュリティソフトはあったほうがいい。
定番のClamAVはCUIであり、コマンド操作です。これをGUIで操作するソフトがClamTkです。
ClamTkはメンテナンス終了がアナウンスされていますが、内部というか本体であるClamAVはサポートが続いているので大丈夫だと思います。
以下のコマンドを端末で実行することでインストールできる。

sudo apt install clamtk

アプリを表示から「ClamTk」を起動します。
まずは設定を選択します。

すべてにチェックを付けます。

チェックを付けたら、「戻る」をクリック。
次にスケジュールを選択します。

好みの時間を指定し、「+」を押して確定する。
シグネチャのアップデートする時間のほうは、「アップデートアシスタント」で「コンピューターが自動的にアップデートを受信」が選択されているため、ここでは操作できません。時間を指定したい場合はまず、「アップデートアシスタント」画面で「自分でシグネチャをアップデート」に切り替える必要があります。

ファイアウォール

ファイアウォールはプリインストールされていますが、デフォルトでは無効化されています。
gufwというソフトをインストールすることで有効化し、GUIで操作できるようにします。
端末で以下のコマンドを実行してインストールします。

sudo apt-get install gufw -y

アプリを表示から「ファイアウォール設定ツール」を起動します。

プロファイルは用意されていますが、Status:がデフォルトだとオフになっているのでオンに切り替えます。

xrdp

リモートデスクトップで接続するためのソフトです。
サーバーマシンなのでモニターやキーボードなどを接続せず、メインPCなどから遠隔操作します。
端末で以下のコマンドを実行してインストールと設定を行っていきます。

sudo apt install xrdp

インストール後にxrdpの自動起動の設定と起動を行う。

sudo systemctl enable xrdp
sudo systemctl start xrdp

ファイアウォールにリモートデスクトップ用の設定を追加する。

sudo ufw allow 3389

ユーザー設定を追加します。エディタは好みですがここではnanoを使っています。

sudo nano /etc/group

以下の行に末尾(XXXXの位置)にユーザー名を追記します。

xrdp:x:125:XXXX

次にインターフェース周りの設定を変更します。
というのもUbuntuマシンで起動した時と外部からリモート接続した時のUIが違うんです。なのでUbuntuを起動した時と同じになるように設定します。

sudo nano /etc/xrdp/startwm.sh

先頭に以下の2行を追加します。

export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME

他にも問題があるようなので、別ファイルも修正します。

sudo nano /etc/gdm3/custom.conf

「WaylandEnable=false」の前の#を消してコメントを外します。

[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
WaylandEnable=false

編集後にUbuntuを再起動します。

Windows11マシンの「リモートデスクトップ接続」を起動し、UbuntuマシンのIPアドレスを入力して接続する。
※私はルーター側でUbuntuマシンに固定IPを振る設定にしています
ログイン画面が表示されるので、ユーザー名とパスワードを入力する。

Ubuntuを起動した時と同じUIでリモート接続できます。

ここからはモニターとキーボード、マウスを外し、リモート接続で使用します。

GROWIをインストール

別の記事にまとめているのでそちらを参照

リバースプロキシの設定

GROWIに対してリバースプロキシを行うための設定をしていく。

Nginx のインストール

下記のコマンドでインストールする。

sudo apt update && sudo apt -y install nginx

設定ファイルを作成するため、以下のコマンドを実行

sudo nano /etc/nginx/sites-available/growi.conf

以下の内容を書き込む。<server><cert_file><key_file>は各自で環境に合わせる。
※<server>についてはchatGPTがLAN内限定なら「growi.local」でいいんじゃない?って言ってた。
※<cert_file><key_file>はSSL、つまりはHTTPSを使うために必要な証明書にあたる。今回は自己証明書で対応し、方法は後述する。

upstream growi {
    server localhost:3000;
}

map $http_upgrade $connection_upgrade {
    default Upgrade;
    ''      close;
}

server {
    listen 443 ssl;
    server_name <server>;
    ssl_certificate <cert_file>;
    ssl_certificate_key <key_file>;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://growi;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 900s;
    }
}

server {
    listen 80;
    server_name <server>;
    return 301 https://$server_name$request_uri;
}

シンボリックリンクを作る。
上記の設定ファイルを適用させるような感じ。

sudo ln -s /etc/nginx/sites-available/growi.conf /etc/nginx/sites-enabled/

設定ファイルに問題がないか確認する。

sudo nginx -t

問題がなければ次のように表示される。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

恒例の起動と自動起動の設定

systemctl start nginx
systemctl enable nginx

自己証明書の設定

証明書と鍵を生成する。
なお、chatGPTに教わった簡単な方法であり、私は詳しく理解してません。

sudo mkdir -p /etc/ssl/private
sudo openssl req -x509 -nodes -days 3650 \
  -newkey rsa:2048 \
  -keyout /etc/ssl/private/growi.key \
  -out /etc/ssl/certs/growi.crt \
  -subj "/CN=growi.local"

Nginxの設定ファイルにパスを記載する。

<cert_file> /etc/ssl/certs/growi.crt;
<key_file> /etc/ssl/private/growi.key;

パーミッション確認。

sudo chmod 600 /etc/ssl/private/growi.key
sudo chown root:root /etc/ssl/private/growi.key

この方法では「信頼されない」とブラウザには怒られる。LAN内かつ自分のみしか使わないのでとりあえずスルーする。

ファイアウォールの設定

ufwに設定追加しないと別PCからのアクセスを拒否してしまう。
ひとまずLAN内からは許可という内容で設定を追加する。
以下のコマンドでいけるが、IPアドレスは各自の環境に合わせる必要がある。

sudo ufw allow from 192.168.0.0/24 to any port 80
sudo ufw allow from 192.168.0.0/24 to any port 443

GROWIにアクセス

これまでの設定がうまくいっていれば別PCからもアクセスできるはずだ。
UbuntuマシンのIPアドレスを指定してアクセスすればログイン画面が表示される。

https://192.168.0.XX

あとはGROWIの設定を適当に済ませる。

余談

SSD増設用ケースを分離するとWindowsが起動します。
SSD増設用ケースを合体させると、・・・Windowsが起動します。
はい、合体後はもう一度BIOSの優先順位を変更する設定をしないとUbuntu優先にはなりません。
合体分離で起動OS変わったらおもしろかったんだけどなぁ。

タイトルとURLをコピーしました