3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Notionに全部預けるのが怖くなったので、OSSのメモアプリ「Memos」をクラウドに立てた

3
Posted at

きっかけ

半年くらいNotionにメモを溜めていたのだが、ある日ふと「これ全部Notionに閉じ込められてるな」と思った。

別にNotionが悪いわけではない。使いやすいし、機能も十分すぎるくらいある。ただ、仕事のアイデア、個人的な考え事、技術的なメモ、全部が1つのSaaSに入っている状態がだんだん気持ち悪くなってきた。エクスポート機能はあるが、日常的にバックアップを取っているわけではない。もしサービスが終了したら、料金が大幅に上がったら、あるいはAPI仕様が変わったら——そういう「もしも」が頭の隅に引っかかるようになった。

Craftも試したことがあるが、同じ話だ。データはCraftのサーバーにあり、自分の手元にはない。

「自分のデータは自分の場所に置いておきたい」というのは、エンジニアなら誰しも一度は考えることだと思う。で、じゃあセルフホストのメモアプリを探そうとなった。


Memosを選んだ理由

セルフホストできるメモアプリはいくつかある。TriliumJoplinLogseq……どれも良いツールだが、自分の用途には合わなかった。

自分が欲しかったのは、「開いて、書いて、閉じる」だけのメモ帳だった。フォルダ構造もない、ノートブックもない、タイムライン形式でただメモが流れていく。Twitterの下書きに近い感覚で使えるもの。

Memos がまさにそれだった。

Memos demo

GitHubで58,000スター以上。Go製のシングルバイナリで、Dockerイメージは約20MB。データベースはSQLiteなので、別途DBサーバーを立てる必要もない。Markdownに対応していて、REST APIとgRPC APIも備えている。MITライセンス。

「軽くて、シンプルで、データが自分のものになる」——これだけで十分だった。


ただ、セルフホストは面倒

問題はデプロイだった。

Memosの公式ドキュメントにはDockerでのデプロイ手順が書いてある。docker run 一発で動くと書いてあるし、実際その通りだ。ただ、それは「Dockerが動くサーバーが手元にある」前提の話であって、そこに至るまでの道のりが結構ある。

VPSを借りる → SSHで接続する → Dockerをインストールする → ポートを開ける → リバースプロキシを設定する → SSL証明書を取得する → ドメインを紐づける……

ZennでOracle CloudのAlways Free枠にMemosを立てた記事を見つけたが、「半日かかった」と書いてあった。まあそうだろうなと思う。

自分もVPSにDockerで立てるのは何度もやったことがあるし、実際に最初はVPSにMemosを立てて使っていた。動くことは動くし、データも完全に自分の手元にある。ただ、友人に「これいいよ」と勧めるたびに「でもサーバー借りるところからでしょ……」と言われて終わる。自分自身も、もう1台VPSを管理するのは正直しんどかった。

「まず触ってもらう」ためのハードルをもっと下げられないかと考えて、PaaSでのデプロイを試すことにした。


Railwayでのデプロイ手順

Railway は、DockerコンテナをそのままクラウドにデプロイできるPaaSだ。HerokuやRenderと同じジャンルのサービスで、従量課金制。

いくつかのPaaSを比較した結果、RailwayがDockerイメージをそのまま使えてセットアップが一番シンプルだったので、ここに落ち着いた。自分のMemos環境をRailwayに移してしばらく使ってみて、問題なく動くことを確認できたので、同じ構成をテンプレートとして公開した。以下のリンクからデプロイページに飛ぶだけでいい。

Memos をワンクリックでクラウドにデプロイ(GitHub)

VPSもSSHもnginxもLet's Encryptも要らない。


使ってみた感想

3ヶ月ほど実際に使ってみたので、率直な感想を書く。主な用途は、仕事中に浮かんだアイデアの断片、技術的な調査メモ、読んだ記事の感想など。Notionにも書いていたような内容だが、「あとで整理しよう」と思わず済む分、書く頻度は明らかに増えた。

よかった点

起動が速い。 ブラウザでURLを開くと、すぐに入力画面が出る。Notionのように読み込みを待つ時間がほとんどない。Go製で軽量というのは本当だった。

入力のハードルが低い。 フォルダを選ぶ必要がない、カテゴリを決める必要がない。開いてそのまま書くだけ。後からタグで整理できるが、整理しなくても困らない。この「雑に書ける」感覚が思った以上に良い。

Markdownがそのまま使える。 コードブロック、リスト、リンク、全部普通に書ける。エンジニアのメモ用途には十分。

APIがある。 REST APIが公開されているので、CLIからメモを投げたり、他のツールと連携したりもできる。自分はまだ使っていないが、将来的にはn8nと繋げてみたい。

微妙な点

公式のネイティブアプリはない。 Memos自体はWebアプリなので、スマホからはブラウザでアクセスする形になる。PWAとしても動くが、ネイティブアプリほどスムーズではない——と思っていたのだが、サードパーティ製の Moe Memos というクライアントを見つけて印象が変わった。MemosのAPIを利用したモバイルアプリで、iOS/Android両対応。通知やオフライン対応もあり、思った以上に快適に使えている。公式ではないので今後のAPI互換性は気になるところだが、現時点では十分実用的だと感じた。

共同編集ではないが、複数人で使える。 リアルタイムに同じメモを編集する用途には向いていない。ただ、マルチユーザー対応はしっかりしていて、メモごとに 個人・ワークスペース・公開 の3段階で公開範囲を設定できる。友人やパートナー、チームメンバーを招待して、それぞれが自分のメモを書きつつ、共有したいものだけワークスペースに流す——という使い方がなかなか良い。日常的なメモや買い物リストの共有くらいなら、これで十分だった。

Notionの代替ではない。 データベース機能、カレンダービュー、プロジェクト管理……そういったものは一切ない。Notionの全機能が必要な人がMemosに乗り換えるのは無理がある。あくまで「メモを書く」という一点に絞ったツール。


実際にかかっている費用

Railwayの料金体系を正直に書いておく。Hobbyプランは月5ドルだが、5ドル分の無料クレジットが含まれている。つまり月の使用量が5ドル以内であれば、追加の支払いは発生しない。さらに、月1ドル未満の使用量はそもそも課金対象にならない。

自分の場合、最初は「月5ドルくらいかかるだろうな」と思って使い始めた。ところが1ヶ月後に請求を確認したら、使用量が1ドル未満で無料枠に収まっていた。MemosはGo製シングルバイナリ+SQLiteという構成で、動作時のメモリ消費が約10MB程度しかない。個人のメモ用途だと、本当にリソースを食わない。

結果として、3ヶ月使って1円も払っていない。「無料」を売りにしたいわけではないが、「試しに立ててみたら、お金がかからなかったのでそのまま使い続けている」というのが正直なところだ。使い方次第で変わるので、あくまで自分の場合の参考値として受け取ってほしい。


まとめ

ここまで書いておいてなんだが、「データを自分の手元に置きたい」と言いつつRailwayに載せているのは矛盾しているかもしれない。Railway上のデータだって、結局は他人のインフラの上にある。

ただ、NotionやCraftとの決定的な違いは、データの形式がオープンで、いつでも持ち出せるという点にある。MemosのデータはSQLiteファイル1つだ。Railway CLIでエクスポートできるし、気が向いたらVPSに引っ越せばいい。最初から完璧な環境を構築する必要はなくて、まず使ってみて、気に入ったら自分のサーバーに移す——くらいの温度感でいいと思っている。

自分にとっては「雑にメモを書ける場所」として定着しつつある。Notionも併用しているが、役割が違う。プロジェクト管理や構造化されたドキュメントはNotion、頭の中の断片を吐き出す場所はMemos、という棲み分けになった。

万人向けのツールではないし、合わない人もいると思う。ただ、興味があれば、まずライブデモで触ってみるのが早い。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?