memosが良かった話

読み終わるまでの目安 約5分

反響があったので記事で詳しく書いてみる。

memosとは

memosはGoで構築されているスタンドアロンのメモアプリで、Dockerを使ってサクッと構築することができる。 保存にはDBを使っているのだけど、デフォルトではsqliteを使っているらしく、~/.memosにDBファイルが保存される。

どんな人が向いているのか

  • TwitterやDiscordをメモ帳代わりに使ってる人
  • フロー型のUIに馴染みがある人
  • メモしよう!と思ってもすぐ忘れてしまう人

つまり自分みたいな人が向いている。

簡単な使い方

Dockerで起動したあとhttp://localhost:5230/にアクセスするとまずユーザーを作成する画面が出てくるので、適当に作成する。

するとTwitterみたいなUIが出てくるので、上部の入力欄から入力してボタンを押すと投稿できる。TwitterみたいなCtrl+Enterのショートカットも使える。ありがたい。

当たり前かもしれないけどMarkdownに対応しているで良い感じにメモが取れる。あとTwitterでお馴染みハッシュタグにも対応しているので、技術記事に#技術記事とか#ライブラリネタとか気軽に分類できる。

右上には親の顔より見たGitHubの草的なウィジェットがある。配色も見方もほぼ同じ。Twitterと同じ感覚でポストしてるとあっという間に濃い緑色になるので見ていて気分が良い。 右側にはハッシュタグの一覧が表示されていて、クリックするとそのタグが付いた投稿が一覧で見れる。

Dockerで起動するとPCを再起動したときに毎回実行する羽目になるのか…と思った人はDockerの--restartオプションを指定するとDockerデーモンが起動すると勝手に立ち上がるのでオススメ。WSLでもちゃんと動いてくれている。

API

memosにはRESTful APIが備わっているため、別にブラウザ経由じゃなくても投稿できる。 自分はVimを使っているので、denops.vimでVimから投稿できるようなプラグインを作ろうとゴチャゴチャラッパーを書いたりしている。 OpenIdというトークンらしきものは設定をクリックすると使うことが出来る。

余談

memosには公開/部分的な公開/非公開の3つのオプションがあって、インターネット上で動かす事で複数人でナレッジシステムとして使うことが可能。 RSSもあるので簡易的なコミュニケーションツールとしても使えそう。

memosはデフォルトでsqliteを使うので、上手く設定すればD1にデータを保存できそうだなぁ…と思ったりしている。もし出来ればクラウド上で高速なDBを低コストで使いつつナレッジシステムを構築できるので夢が膨らむ。

以前DenoとFreshで似たようなものを作ってたので、memosを参考にしつつ、Deno Deployですべてが済ませられるナレッジシステムとか出来たら良いなぁとか思ったりしている。

まだ使い始めて数日だけれどかなり良い感触なのでこれからも毎日使っていきたい。