PostfixAdmin的なものを作ってみた。
1台のメールサーバーで複数ドメイン運用したり、システムアカウントと連動せずにメールアカウント運用したいとかのときに、便利なPostfixAdmin( Postfix Admin - Web based administration interface)さん。
わたくしもお世話になっておりましたが、MySQLやPostgreSQLと一緒にメールサーバーを動かしてあげないといけないのが面倒になってきた今日この頃...。LXDコンテナで流浪人のように移動しやすいコンテナとしておきたいわけです。もちろんMySQLでもPostgreSQLでもコンテナごと動かす分にはいんですけど、システムリソース的に...ということで...。
そんなオレオレ要件を満足させるものを作ってみました。 github.com
バーチャルメールユーザー管理画面
バーチャルメールユーザーの変更画面
バーチャルメールエイリアス管理画面
バーチャルメールエイリアスの変更画面
バーチャルメールドメイン管理画面
バーチャルメールドメインの変更画面
今回使ったもの
- Bottle: Python Web Framework — Bottle 0.13-dev
- Bottle-SQLite
- Bootstrap · The world's most popular mobile-first and responsive front-end framework.
Pythonの軽量フレームワークのBottleをメインにして、UI部分と入力制御系をJavascriptで実装してみました。
本当は、PostfixAdmin的にユーザーログインによる認証機構もつけようとしたのですが、オレオレツールとしては、取り急ぎ必要ではないという英断により、未実装。これからお勉強がてら実装したいです。
Cork - Authentication for the Bottle web frameworkというのを使えばよさげかなと思っています。
今回、ちょっと積極的にcodeclimateさんのチェックを通しながらやったら、確かにコードが短くなったり煩雑だったところがすっきりとしました。(最初のコーディングが美しくな過ぎたというのはさておき....)pythonやら、javascriptやら、jQueryやら、PostfixやらDovecotやらsqlite3やらいろんな勉強になったので、個人的には満足です。(これってよくあるダメなやつじゃないか...)
いうまでもなく、現状としてはデバックもかねて、SSHトンネル経由でbottleの簡易サーバー機能をそのまま使って動かしているレベルなので、実運用レベルにはありません。
ちなみにGoogle先生に「postfixadmin sqlite」尋ねてみたら、こんなのがあった。
2010年3月ごろからある模様。MySQLやらPostgreSQLやらを使ってやるまでの規模じゃないんだけど...なことはそりゃ考えるよな。
(2016.09.15 追記)
2016/09/12にPostfixAdmin3.0がついにリリースされたようで、なんと、add sqlite backend optionと言っているので、動作検証していないけどsqliteでも使えるようになったようです。