2017-10-26に投稿

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に下記のようなサービスを入れている。

  • Phoenix
  • MySQL
  • phpMyAdmin
  • PDF作成

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


だら@Crieit開発者

Crieitの開発者です。 主にLAMPで開発しているWebエンジニアです(在宅)。大体10年程。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel5, CakePHP3, JavaScript, RoR 趣味:Elixir, Phoenix, Node, Nuxt, Express, Vue等色々

Crieitはαバージョンで開発中です。進捗は公式Twitterアカウントをフォローして確認してください。 興味がある方は是非記事の投稿もお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
関連記事

コメント