一人もくもく会 α verでサービス開始しました。
請求書作成システム α verでサービス開始しました。

Phoenixで作った請求書作成システムをリリース

Elixir & Phonenixで作った請求書作成システムをリリースした。

元々Misocaを使っていたが、弥生の傘下に入ってからフリープランでは5通までしか作成できなくなってしまった。

別に良いかと思っていたが、ちっちゃい請求が続いたりするとどうも超えてしまうのではないかと怖くなることが多くなった。 そのため、ちょうどElixir & Phoenixで遊んでいたので自分で作ったら良いんじゃないかと思い作成してみたところうまくいった。

請求書作成サービス

Bill Builder

基本的には自分で使う用なので質素でシンプル。 別に使いたい人がいたら使ってもらっていいと思う。 まだステージングサーバーもなくDBバックアップもしてないけど、 自分で使っているのでそのうちする予定。

安定するかは不明だけど、自分で使わないといけないから使える程度にはメンテナンス&拡張する予定。

本番環境

  • Elixir 1.5
  • Phoenix 1.3
  • MySQL 5.7
  • Google Compute Engine f1-micro
  • Systemctlによるサービス実行
  • SendGrid
  • Let's Encrypt
  • bootstrap material design

開発環境

docker-composeに下記のようなサービスを入れている。

Elixir & Phoenixで開発してみた感想

非常に良い。とにかくphoenix.gen.htmlでモデル、コントローラ、テンプレートまでざっと作成してくれるのが良い。 それだけで参考になるしちょっといじれば動くのでとてもスムーズに色々進む。 テンプレートがデフォルトでbootstrapなのもいい。 phpだとCakePHP3も同様に最高だった。Laravelはコントローラのメソッドが空なのでやる気をなくす。

Elixir自体が今まで使っていた言語とちょっと違うので癖があり躓いたりしたが、 慣れたら本当に気持ちよく迅速に開発できそう。

デプロイ

色々Elixirのデプロイ方法もあるみたいだが、とりあえず今は手動。 頻繁なリリースもないし、今のところ誰も使ってないのでとめちゃいけないということもないし。

とはいえ、手動でもデプロイは非常に簡単。

  • gitでpull
  • compile
  • cssやjsいじってればそちらもビルド
  • マイグレーション追加してたらmigrate
  • 準備出来たらsystemctlでrestart

多分restartの瞬間くらいしかダウンタイムも無いと思うのでのんびりできる。 Elixir自体が自分でサービス稼働させているからこその利点。

運用費

とりあえずf1-microだし誰も使ってない限りは無料。 (1サーバーにElixirもMySQLも全部入っている) だれか使い始めたら適当に広告でも張るがあまり意味なさそう。

今後の拡張

毎月同じ金額の請求をメールで送るとかできたら良いな、と思ってたけど、 実は届いていなかった、とかがあると怖いので実装するかどうか検討中。 SendGrid使っているためログは見やすいので問題ないのかもしれない。

領収書は使わないけど、体裁ほとんど同じでいいなら作ろうかなとも思う。

まとめ

またなんかPhoenixで作りたい。

Bill Builder