【Self-Hosting】YunoHostで初心者でも安全・簡単なWebアプリのセルフホスティング

2023-03-06

日本ではメジャーとは言えませんが、YunoHostはDebianをベースにしたセルフホスティングのためのオペレーティングシステムです。

YunoHost

YunoHost は、サーバーの最も単純な管理を目的としたオペレーティング システムであり、信頼性、安全性、倫理性、軽量性を維持しながら、自己ホスティングを民主化します。
これは、ボランティアによって独占的に維持されているコピーレフトのリブレ ソフトウェア プロジェクトです。
技術的には、 Debian GNU/Linuxベースのディストリビューションと見なすことができ、多くの種類のハードウェアにインストールできます。

What is YunoHost?

サーバーOSですが、Webブラウザで操作できる使いやすいインターフェースが用意されているため、専門知識がなくても簡単にサーバーの構築・Webアプリケーションのホスティングができます。

詳しい説明は公式サイトを見て頂くとして、Yunohostは何よりも「simplest administration of a server:サーバー管理の省力化」を目的に作られています。

インストールからサーバー管理もブラウザ上のGUIで完結できる「とても助かる」LinuxサーバーOSです。

例)インストール後の管理者ユーザー作成画面

機能と特徴

構築・運用の手間が最低限

目的の通りGUIでセットアップできるだけでなく、DNSサーバーの記載する項目・内容の表示やLet’s Encryptの証明書取得など、サーバーの構築・運用に必要なことはWeb管理画面で終わらせることができます。

メールサーバーもセットアップ済(Gmailの「メール送信者のガイドライン」にも対応

Eメールはインターネットの基本的な機能の一つですが、実際にメールサーバーをセットアップして安全に使うまでは結構手間がかかります。

また、現在はメールセキュリティからGmailに送信するメールは最低限「SPF」「DKIM」の設定が必要になりましたが、YunoHostでは「SPF」「DKIM」「Dmark」ともDNSサーバーに必要な登録情報が表示されるので「メール送信者のガイドライン」にも簡単に対応できます(Dmarkポリシーは必要に応じて変更してください)。

YunoHost app store

YunoHostでは独自のアプリケーションストア(YunoHost app store)からWebアプリケーションをインストール・アンインストールします。CLIでも、Web管理画面でも管理でき、人気のあるアプリケーションだけでなくビジネス用途や個人用途に特化したさまざまなアプリケーションが用意されています。

ベースがDebianなのでaptも使ってアプリケーションのインストールもできますが、その場合はYunoHost上では管理されません。

LDAP認証とSSO

YunoHostでインストールしたアプリケーションの多くは、システムのユーザー情報を使ったLDAP認証に対応しています。

そのため、個々のアプリケーションでユーザーを管理する必要は少なく(LDAP未対応の場合は必要)、複数のアプリケーションを導入しても管理の手間は大きく増えません。

また、YunoHostのログイン後はシングルサインオンで他のアプリケーションにもログインできるため、ユーザーの利便性も高いです。

YunoHostにログイン後のアプリケーションパネル

セキュリティ対策

Linuxを使ったサーバー構築の方法はインターネットで多くの情報が手に入りますが、初心者が実際に公開する上で一番の不安はセキュリティ対策だと思います。

YunoHostは操作が簡単なだけでなく、追加の設定無くOSのインストール時から必要最低限なセキュリティ対策(ユーザー認証、Fail2ban、Firewall等)は設定されているので安心して使い始める事ができます。

もちろん、万全な対策には追加の設定や作業が必要になりますが、初期状態からセキュリティ対策が行われている安心感は大きいです。

注意点

簡単な対応で解決できることも多いですが、ユーザー数も少ないためかメジャーなLinuxと違いトラブルは起こりやすいです。

インストールの不具合

UEFIモードではインストールできない(場合がある)

YunoHostのISOイメージとUEFIの相性か、別のハードウェアとの相性かはわかりませんがBIOSモードの無いPCではインストールできない場合があります。

その場合も、Debian 11をインストール後にYunoHostをセットアップできるようです。

パーティショニングに失敗しやすい

理由は不明ですが、なぜかグラフィカルインストールのパーティショニングでエラーが起きやすいと感じています。

再起動後、テキストインストールから改めてインストールを進めると解消しますが、グラフィカルインストールもテキストインストールも同じパーティショナーを使っているはずなのに…と思っています。

その他

インストール時のWiFi接続でエラーや、grubのインストールに失敗することもありました。

ただ、grubはストレージのデバイス名(sdaやsdb)を間違えていたかも?です。

ただ、VirtualBoxではトラブルが起きる事は無かったので、ハードウェアやファームウェアとの相性があるかもしれません。

アプリケーションの不具合

YunoHostのアプリケーションはDocker等のコンテナを使わずに直接インストールされるため、アプリケーション同士の相性が悪いとそのまま影響を受けてしまいます。

アプリストアで配布されているアプリケーション自体に不具合が起きている場合もありますが、困ることに「単独のアプリケーションでは正常に動作しても、他のアプリケーションをインストールするとエラーになる」場合もあります。

ですが、個別のアプリケーションはさらに情報も少なく、実際に使ってみないと検証できない部分も多いため、アプリケーションの追加前は仮想マシン等を使ってテストする方が安全だと思います。

設定変更・修正が特殊

システムの設定ファイルは、YunoHostの設定変更時やアプリケーションのインストール時に作成・修正されます。

YunoHostを使わずにテキストエディタ等で直接設定を変更するとシステム診断で「~は手動で更新されています」となり、以降はアップデート等でも自動では修正されなくなります。

細かい調整まで手をかけたい場合は注意が必要です。

インストール・初期設定

インストール

実機サーバー

VPS(ConoHa VPS)

初期設定

まとめ

YunoHostは「自分自身や少数のグループ」で「必要なWebアプリだけ」を簡単・安全に構築・公開できるシステムです。セルフホスティングを検討している初心者だけでなく、サーバー運用の負担を軽くしたいと思っている方も一度試してみる価値はあると思います。

もちろん、学習の一環として最初からサーバーOSをセットアップする事は大切だと思っていますが、何度も同じことを繰り返す羽目になると…。

“Shit, I’m too lazy to reconfigure my mail server… Beudbeud, how were you able to get your little server running with LDAP?"Kload, February 2012

https://yunohost.org/en/whatsyunohost

また、Yunohostは「自由でオープンな分散型インターネット」を目指して開発されています。

現在は(各種の情報を提供した上で)生活に便利なアプリや機能が無料で使えていますが、自分自身の管理と責任の下で必要なサーバーを公開して改めて「自分のインターネット」を意識してみるのも面白いと思います。