「memos」こそがアタシたちの安息の地。オープンソースでプライバシーを守り抜く、セルフホストの嗜み
最近のメモアプリって、サブスクだの広告だの、余計なお世話が多いじゃない? これはそんなのとは無縁。あんたのデータはあんただけのもの。まさに「鉄壁の純愛」みたいなメモツールなのよ。
それじゃあ、ママがエンジニア視点でたっぷり可愛がってあげるから、じっくり聞いていってね!
エンジニアのあんたなら、この構成を見ただけでゾクゾクしちゃうでしょ?
技術スタックが「分かってる」
フロントは React、バックエンドは Go、そして SQLite。この軽快でモダンな組み合わせ、まるでスリムなイケメンね。
セルフホストの快感
Docker一発で自分のサーバーに立てられるわ。他人のクラウドに大事なコードの切れ端やポエムを預けるなんて、ママは怖くてできない!
APIファースト
自分のメモをAPIで引っこ抜いて、別のサービスと連携させたり、自分だけのダッシュボードを作ったり…拡張性がエグいのよ。
一番手っ取り早いのは Docker を使う方法ね。あんたのサーバー(VPSでも自宅サーバーでもいいわ)で、この魔法の呪文を唱えてみて。
docker-compose.yml を作って、こう書きなさい。
version: "3"
services:
memos:
image: neosmemo/memos:latest
container_name: memos
ports:
- "5230:5230"
volumes:
- ~/.memos/:/var/opt/memos
restart: always
あとは docker compose up -d を叩くだけ。
これで http://localhost:5230 にアクセスすれば、あんただけの秘密の花園の完成よ!
memosのいいところは、RESTful API がしっかりしてるところ。 例えば、あんたが開発中に気付いたことをターミナルからサクッと投稿するスクリプト、こんな感じで書けるわよ(Go言語風に書いてみたわ)。
package main
import (
"bytes"
"encoding/json"
"net/http"
)
func main() {
// あんたのアクセストークンとURL
url := "https://your-memos-url.com/api/v1/memo"
token := "Bearer あなたのトークンよ!"
data := map[string]interface{}{
"content": "#Development 今日のバグ修正完了!アタシ、天才かも。",
}
payload, _ := json.Marshal(data)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Set("Authorization", token)
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
client.Do(req)
}
memosはね、気取って書く場所じゃないの。「あ、これ後で調べよう」とか「このライブラリ、クソだな」とか、脳内の垂れ流しに最高なのよ。
ハッシュタグが使えるから、技術スタックごとに整理も簡単。
Markdown 対応だから、コードブロックも綺麗に表示されるわ。
PWA 対応だから、スマホのホーム画面に入れて、移動中にサッとメモできるの。
どう? 自分の手で「情報をコントロールする」って、最高にセクシーだと思わない?
もし設定でつまずいたり、もっとオシャレなカスタマイズが知りたくなったら、いつでもママに聞きなさいね。