テック技報最新号へ →
インフラ

adms: Postgres / MySQL に向けるだけで REST API と管理 UI が立つ単一バイナリ

PostgREST 風の HTTP API を DB のスキーマから自動生成し、設定 1 行で管理画面まで同じバイナリから配信する Go 製ツール。MySQL にも使える。

@matsuu · 2026-10-13
#infra#database#postgresql#mysql#admin#rest-api

どんなときに使う?

  • 社内向けの管理画面を毎回「一覧・フィルタ・CRUD」から書いている
  • PostgREST を使いたいが MySQL だった、または UI も一緒に欲しい
  • Node やフロントの別デプロイなしで、閉じたネットワークに置きたい(UI は CDN 不要で埋め込み済み)

やり方

bash
brew install mickamy/tap/adms   # または go install github.com/mickamy/adms@latest
yaml
# adms.yaml(カレントの adms.yaml / adms.yml / adms.toml を自動検出)
driver: postgres          # MySQL なら mysql
dsn: "${ADMS_DSN}"        # ${VAR} で環境変数展開。DSN をファイルに書かない
ui:
  enabled: true           # 管理 UI を :7778 で配信(ui.listen で変更)
read_only: true           # 書き込み UI を隠す(置く階層は README で確認)
bash
ADMS_DSN="postgres://postgres@localhost:5432/myapp?sslmode=disable" adms
curl 'http://localhost:7777/users?status=eq.active&age=gte.18&deleted_at=is.null'
curl 'http://localhost:7777/users?id=eq.1&select=id,name,posts(id,title)'   # FK をたどって埋め込み
  • API は :7777。各テーブルが /<table> になる。演算子は eq / neq / gt / gte / lt / lte / like / ilike / in / is、否定は not.
  • PATCH / DELETE はフィルタ必須(全件更新・全削除を弾く)
  • UI はテーブル一覧、フィルタ、インライン編集、CSV / JSON エクスポート、ER 図(/schema)

注意点

出典

X の元の投稿を開く