1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreeBSDサーバーにデスクトップ環境を構築する

Last updated at Posted at 2025-10-12

粗筋

最近、mini PCにサーバーを建てたのだが、用途よりもリソースが大きいのでこれを活用したい。自宅LANにはMacとWindowsはあるので、久しぶりにFreeBSDのデスクトップ環境を構築してみる。サーバーそのものの環境は弄りたくないので、Jailの上に作成する。

ハードウエア

Minisforum UM690Sに2G SSDを登載し、メモリは64Gにしてある。用途はファイル管理とgitのローカルホスティング、たまにAIを動かす程度でリソースは十分以上にある。

ソフトウエア

FreeBSD 14.3-RELEASEをインストールしてある。デスクトップ環境はJailの上に構築するので、管理アプリとしてAppJailを使用する。

AppJail-makejails/xrdpの導入

AppJailではxrdpのmakejailsが存在するので、これを利用する。最新版のイメージは13.5-RELEASEと14.3-RELEASEである。

xrdpイメージの動作確認

AppJail-makejails/xrdpにサンプルがあるので、これに基づいてxrdpイメージの動作確認する。ホストとゲストのOSは統一したいので、Makejailファイルにタグ(xrdp_tag=14.3)を設定する。options/network.makejailとfiles/xrdp.confはそのまま使用する。

Makejail
INCLUDE options/network.makejail
INCLUDE gh+AppJail-makejails/xrdp
ARG xrdp_tag=14.3

OPTION expose=3389
OPTION template=files/xrdp.conf

CMD pw useradd -n op -m
CMD passwd op

makejailコマンドでJailを作成する。以下のコマンドでxrdpのイメージがダウンロードされ、xrdpと名付けられたJailが起動する。最後に作成ユーザー(op)のパスワード設定プロンプトが出るので、パスワードを二度入力する。

sh
appjail makejail -j xrdp

LAN側のMac/WindowsからサーバーのIPと3389ポートを指定し、リモートデスクトップへ繋ぐ。xtermが表示されたら成功だ。

Makejailのカスタマイズ

構築しただけではxtermしか使用できないので、普段の利用に困らない程度の環境を構築する。Jail内部でpkgインストールすれば良いが、再現性を重視したいのでMakefileをカスタマイズする。MakefileのInstructionsを元に追記していく。試行錯誤の末、最終的に以下を設定した。

Makejail
INCLUDE options/network.makejail
INCLUDE gh+AppJail-makejails/xrdp
ARG xrdp_tag=14.3
ARG startwm_file=files/startwm.sh

OPTION expose=3389
OPTION template=files/xrdp.conf

SYSRC dbus_enable="YES"
PKG enlightenment
PKG ja-font-ipa
PKG ja-font-ipaex
PKG fcitx5
PKG fcitx5-qt5
PKG fcitx5-configtool-qt5
PKG ja-fcitx5-anthy
PKG firefox
PKG ja-libreoffice
PKG rxvt-unicode
PKG vim
SERVICE dbus start
COPY ${startwm_file} /usr/local/etc/xrdp/startwm.sh
CMD pw useradd -n foo -c "bar" -s tcsh -m
CMD passwd foo
options/network.makejail
OPTION virtualnet=:<random> default
OPTION nat
files/startwm.sh
#!/bin/sh
#exec xterm
export XMODIFIERS='@im=fcitx'
export GTK_IM_MODULE=fcitx/xim
export QT_IM_MODULE=fcitx
exec enlightenment_start

設定が完了したら、動作確認する。手順は、既存Jailの停止、既存Jailの破毀、新規Jailの作成となる。手間ならMakejailにOPTION overwrite=forceを指定すると、作成前に停止と破毀が自動で動作する(未確認)。

sh
appjail stop xrdp
appjail jail destroy -f xrdp
appjail makejail -j xrdp

Jailの設定

Jail内をローカル時刻に設定する。MakefileのCMDでやる方がスマートかも知れない。

sh
appjail login xrdp
tzsetup
logout

動作確認と同じくLAN側のMac/Windowsからアクセスすると。Enlightenmentのセットアップが起動するので好みに設定する。fcitx5を手動起動すればFirefoxで日本語入力も可能だ。ただし、LibreOfficeでの日本語入力は動作しない。設定を詰めれば解決できるが、ビュワーとして利用はできるので放置する。

デスクトップ環境のバックアップ

環境設定まで終了したら、一度Jailを停止してイメージをエクスポートする。これで環境のバックアップとする。

sh
appjail stop xrdp
appjail image export -t desktop_base -c zstd xrdp
appjail start xrdp

課題

一旦、普段利用の環境は構築できたが、課題がいくつか解決してない。

  • Chromium等のインストール
  • キーバインドの調整
  • fcitx5の自動起動設定
  • fcitx5-cskkの導入
  • LibreOfficeの日本語入力

ブラウザとしてwww/chromiumが利用できれば、GoogleのAI絡みサービスを含めて全てがFreeBSDデスクトップで完結するのだが、現在のところPR 289709の影響でpkgインストールができない。

キーバインドはMacのSpotlight起動と日本語入力が被る問題で、FreeBSDではなくMac側の設定を詰めて修正したい。

あとは日本語入力の改善となるが、ブラウザとrxvtでの利用は困らないのでそのままで良いかもしれない。

まとめ

FreeBSD上にJailを使用したデスクトップ環境を構築してみた。xrdpでクライアント選びに困らず、動作も速くて快適な環境が完成した。Jailで構築したので破毀や再構築も容易だ。ただし、環境には課題があるし、Makejailの設定についてはまだまだ詰められるところはあるので、いつかは改善したい。ともあれ目的は達成したので、作業としてはここで終了とする。

御精讀、ありがたうございました。

追記

今週になつてchromiumのpkgが復活した。Jailを作り直しても良いが、構築はそれなりに時間がかかるので、ホスト側から追加した。

sh
appjail pkg jail xrdp update
appjail pkg jail xrdp upgrade
appjail pkg jail xrdp install chromium

他にもvscodeやGEMINI-cliを同樣にインストールしてあるので、AI補助を活用した開發環境が完成した。もしJailの作成からやり直したい場合は、Makejailのパッケージインストールの部分に以下を追記すると良い。

Makejail
PKG chromium
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?