ejabberd を MariaDB に対応させた

ejabberd を MariaDB/MySQL に対応させたので、メモ。

pkg で入れられる ejabberd は、MySQL 対応でコンパイルされていないので、ports から入れ直す。

まず、ejabberd を停止して、パッケージを削除

次に、ports を最新版にして、ports をビルド/インストール。MySQL 対応にチェックを入れるのを忘れない。

/usr/local/etc/ejabberd/ejabberd.yml を修正。

なぜか、DDL ファイルが添付されていないので、github からダウンロードする。

MariaDB にログインして、データベース/テーブルを作成。

ejabberd を起動して、ユーザーを登録し直す。

Growi をインストールしてみた

備忘録置き場に Wiki を使いたくてググってみたところ、Growi というよさげな Wiki エンジンがあった。Linux へのインストールは色々記事が見つかったけど、FreeBSD にインストールしてる人はいなさげなので、作業記録をメモっておく。

Growi は、全文検索に ElasticSearch を使うので、まずそれをインストール。

必要なプラグインもあわせてインストール。

次に、Node.js が必要なので、これもパッケージからインストール。ただし、バージョンは LTS10.x でないといけないので、そこだけ注意。

Yarn が必要なので、npm でインストール。

続けて、MongoDB をインストール。

gcc でビルドが前提のモジュール (DTraceProviderBindings) があるため、gcc をインストール。12.0-RELEASE は (それ以前もだが)、llvm がシステムデフォルトなので、別途導入が必要なのだ。

最後に、Git をインストール。

Growiリポジトリをクローンする。

最新リリースを確認して、チェックアウトしておく。

Yarn で必要なパッケージをインストール。

DTraceProviderBindings が、DTrace 機能を必要とするので、カーネルモジュールをロードする。ロードしておかないとエラーになって起動しない。

/boot/loader.conf に追記しておくと便利。

起動スクリプトを /usr/local/bin/startgrowi.sh として作成。以下のような感じ。

ここで、試しに起動してみると、

とかいうようなエラーが出るかも知れない。が、慌てず騒がず、

する。すると、依存パッケージが更新されて、uws は消えてなくなり、上記のスクリプトで起動するようになる。

ejabberd へ移行

FreeBSD 12.0 へアップグレードしたら、Prosody がパッケージから消えたw

ので、ejabberd へ移行。ググっても古いバージョンの情報しかないので、公式サイトを参照しつつ設定。後々参考にするために、設定変更点を残しておく。

続: NTT PR-S300NE ファームウェアバージョン 22.02 の問題

NTT PR-S300NE ver. 22.02 には、IPv6 を PPPoE する機能があるのだが、ログイン認証情報を IPv4 PPPoE と共有する前提になっているため、インターリンクのように、IPv4 と IPv6 で認証情報が異なるプロバイダでは使えない。o(`ω´*)oプンスカプンスカ!!

ということで、IPv6 の IPoE に対応している ASAHIネットの最安プランを再契約。対応ルーターを買えばすむ話だが、新しい Mac を買うので節制しなくてはならんという事情と、ASAHIネットなら、IPv6 の設定を変更せずにすむという事情もある。

うちのインターネット環境は、IPv4 = インターリンクの固定 IP、IPv6 = ASAHIネットと決まった。

Unbound で 簡易DNSサーバー

XMPP を諦めきれないので、簡易 DNS サーバーを Unbound で立ててみた。例によって、Packages から導入。

とした上で、unbound.conf を修正。修正点は以下の通り。

さらに、root ネームサーバーのヒントファイルを上記で指定した位置に配置。

SRV レコードの設定が肝。これで、ウチの中からでも外からでも XMPP で接続できるようになった。満足。:D

XMPP (Jabber) サーバー Prosody

Prosody をインストールして、いつでもチャット。とか思ってたら、なぜかログインできない。
クライアントが、「不明なホストです」とかエラーを返す。サーバー側の設定を見直してみても特におかしいところはない。
ていうか、レン鯖で動かしている Prosody の設定と変わりない。

もうお手上げで、XMPP サーバーは諦めることにした。

NTT PR-S300NE ファームウェアバージョン 22.02 の問題

うちは、ドコモ光なのだが、元々はフレッツ光ネクスト ファミリー・スーパーハイスピードタイプ 隼だった。
なので、ルーターに、NTT PR-S300NE が入ってる。これに嵌まった。

というのも、長らく ASAHI-NET の固定 IP アドレスサービスを利用していたのだが、このたび、Mac mini を使って自宅サーバーを立てた。ところが、メジャーなメールサービスへメールを送ろうとすると、拒否される。原因を調べたところ、割り当てられていたアドレスが、動的 IP レンジにあるアドレスで、これが迷惑メールブロックに登録されていたのである。ちなみに、解除の方法はない。

そこで、やはり固定 IP アドレスサービスを提供しているインターリンクに乗り換えたのだが、ASAHI-NET の接続設定はそのままにして、2セッション目に、インターリンクを登録、接続するようにした。そうしたら、静的 IP マスカレードが効かなくなった。あれこれ設定を変えてみたり、サーバーのファイアウォールを無効にしてみたりと試行錯誤の末、セッションを重複させているのがトラブルの原因らしいということを突きとめた。

つまり、いったん、設定を全部削除して、改めてインターリンクだけを一番目のセッションに登録し、静的 IP マスカレードを設定し直したら、疎通するようになったということだ。

こんなんで折角の日曜日を潰してしまったことに軽くショックを受けている。orz

Pydio – ファイル共有

ちょっとでも自宅サーバーの価値を高めなくてはならん、ということで、ファイル共有アプリなどを入れてみる。そしたら、PHP 7.2 に未対応で、PHP をバージョンダウンせざるを得なかった。おまけに、runTest.php では検出されない必須モジュールがあったりして、ちょっと手こずった。最終的に以下のスクリプトでインストールしてけりをつける。

固定IPなのに

自宅サーバーから、iCloud に向けてメールを送信できない。SPAM データベースの制約で、動的IPの範囲にあるアドレスからはメールを受け付けないようになっているのが原因。固定IPなのに…。さらにこれを解除する方法がない。

ということで、メールサーバーは断念。プロバイダをインターリンクにでも変えたらまた試すことにする。

ますます自宅サーバーを置く意味が薄れていく。Netatalk によるファイル鯖くらいにしかならないのか…って、それなら別に FreeBSD じゃなくて、macOS でよくね?しょぼん…