読者です 読者をやめる 読者になる 読者になる

KITA Eng.

北海道でサーバー技術者として歩み出したひとが綴るblog。

PostfixAdmin的なものを作ってみた。

1台のメールサーバーで複数ドメイン運用したり、システムアカウントと連動せずにメールアカウント運用したいとかのときに、便利なPostfixAdmin( Postfix Admin - Web based administration interface)さん。

わたくしもお世話になっておりましたが、MySQLPostgreSQLと一緒にメールサーバーを動かしてあげないといけないのが面倒になってきた今日この頃...。LXDコンテナで流浪人のように移動しやすいコンテナとしておきたいわけです。もちろんMySQLでもPostgreSQLでもコンテナごと動かす分にはいんですけど、システムリソース的に...ということで...。

そんなオレオレ要件を満足させるものを作ってみました。 github.com

バーチャルメールユーザー管理画面

f:id:kacchan822:20160911135015p:plain

バーチャルメールユーザーの変更画面

f:id:kacchan822:20160911135033p:plain

バーチャルメールエイリアス管理画面

f:id:kacchan822:20160911135020p:plain

バーチャルメールエイリアスの変更画面

f:id:kacchan822:20160911135448p:plain

バーチャルメールドメイン管理画面

f:id:kacchan822:20160911135023p:plain

バーチャルメールドメインの変更画面

f:id:kacchan822:20160911135511p:plain

今回使ったもの

Pythonの軽量フレームワークのBottleをメインにして、UI部分と入力制御系をJavascriptで実装してみました。
本当は、PostfixAdmin的にユーザーログインによる認証機構もつけようとしたのですが、オレオレツールとしては、取り急ぎ必要ではないという英断により、未実装。これからお勉強がてら実装したいです。
Cork - Authentication for the Bottle web frameworkというのを使えばよさげかなと思っています。

今回、ちょっと積極的にcodeclimateさんのチェックを通しながらやったら、確かにコードが短くなったり煩雑だったところがすっきりとしました。(最初のコーディングが美しくな過ぎたというのはさておき....pythonやら、javascriptやら、jQueryやら、PostfixやらDovecotやらsqlite3やらいろんな勉強になったので、個人的には満足です。(これってよくあるダメなやつじゃないか...)

いうまでもなく、現状としてはデバックもかねて、SSHトンネル経由でbottleの簡易サーバー機能をそのまま使って動かしているレベルなので、実運用レベルにはありません。


ちなみにGoogle先生に「postfixadmin sqlite」尋ねてみたら、こんなのがあった。

github.com

2010年3月ごろからある模様。MySQLやらPostgreSQLやらを使ってやるまでの規模じゃないんだけど...なことはそりゃ考えるよな。


(2016.09.15 追記)

2016/09/12にPostfixAdmin3.0がついにリリースされたようで、なんと、add sqlite backend optionと言っているので、動作検証していないけどsqliteでも使えるようになったようです。

sourceforge.net