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 は消えてなくなり、上記のスクリプトで起動するようになる。

Unbound で 簡易DNSサーバー

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

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

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

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

XMPP (Jabber) サーバー Prosody

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

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