社内ネットワークで使うための短縮URLサービス作った
社内専用環境とかで“性善説”に基いて運用できる、短縮URLを作ってみた。
詳細は README に書いているが、
ちなみに、イントラネットに置けるようにしたかったので、サーバーレスにはしてない。
モチベーション
Google社の勉強会とかにいくと、貼ってあるポスターに http://go/hoge
みたいなリンクがあって(あるよね?)そういう“社内専用短縮URL”を実現したかった。
また、Slackのトピックには文字数制限があるが、どうしても制限を超える長いURLへのリンクを貼りたかったという事情があった。かといって、ここに貼りたかったリンクは社内専用の URL なので bit.ly とかの短縮 URL サービス使って短くするのも微妙だなということで作ってみた(例えば、社内のプロジェクト名などがURLからわかるのであまり出したくない)
技術スタック
技術的に新しいことをやりたかったので、Nuxt.js 使ってみた。1ページしかないので完全にオーバースペックだけど。
Nuxt.js は Vue.js の基本スタックを前提としていて(Vue, Vuex, vue-routerなど)、SSRとかもできるし、静的サイトジェネレータとしても使えてよかったし自分のウェブサイトとかも置き換えていきたい。
最近 Webpack 疲れみたいなことを考えて、 parcel とかも試したりしつつ、「Webpackの設定ファイルのメンテいらず」みたいなのは筋が良いんじゃないかなーと思ったりしている。
favicon
favicon は絵文字の「🔗」なんだけど、 Emoji Favicons | Favicon.io のサイトで生成したものを使った。とりあえず favicon 作りたいときには便利そう
Gif動画
GIPHY という Mac のアプリが使いやすかった。(教えてくれた同僚Nさんに圧倒的感謝 🙇)
あとがき
このOSSは定時に食い込みつつ作ったので宣伝しておくと、JX通信社ではサクッとモノづくりするのが大好きなメンバーを募集しています。
追記
ブコメありがとうございます。
CSRFの罠
CORSは考えていたのですが、CSRFは盲点でした; 気になる方はぜひPull Requestをお願いします!
DynamoDB使いたくない
Dockerベースで動くようになっているので、 dynamodb-local などで永続化することは可能で、実際 docker-compose では dynamodb-local を使っています。
現在は DynamoDB と密結合になっているので、MySQLやPostgreSQL、SQLiteなどがアダプターとして付け替えられるように設計を拡張すればいけるかなと思います。ぜひPull Requedstをお願いします!
また、「社内ネットワーク」という言葉がちょっとミスリーディングだったかもしれないですのですが、へーしゃはAWSを使っているのもあって「社内からしかアクセスできないAWSのネットワーク」を含めています。