Install via Docker

docker run -d \
    --name memos \
    --restart unless-stopped \
    -p 127.0.0.1:5230:5230 \
    -v memos-data:/var/opt/memos \
    neosmemo/memos:stable

Or via docker compose:

services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    restart: unless-stopped
    ports:
      - "127.0.0.1:5230:5230"
    volumes:
      - ./data:/var/opt/memos
    environment:
      MEMOS_MODE: prod
      MEMOS_PORT: 5230
      # For Postgres backend (optional; default is SQLite)
      # MEMOS_DRIVER: postgres
      # MEMOS_DSN: postgres://memos:<pw>@db:5432/memos?sslmode=disable
docker compose up -d
docker compose logs -f memos

Browse to http://localhost:5230 — the setup wizard creates your first user (becomes Host / admin).

Reverse proxy

# Caddy
memos.example.com {
    reverse_proxy 127.0.0.1:5230
}

The flow

The home page is a composer at the top + a reverse-chronological list of your memos below. Type some markdown, hit Save; it appears immediately. Each memo can have:

  • Tags (hashtag syntax, #books, #work)
  • Backlinks via [[Other Memo Title]]-style references
  • Image / file attachments (drag-drop)
  • Visibility: private (default), workspace, or public via a share link

Search is full-text + tag-filtered + date-ranged.

Per-tag organization

Click a tag from any memo → filter to that tag. The sidebar shows tag counts. Useful for "all my book notes" / "all my recipes" / "all my home-lab to-dos" patterns without nested folders.

For hierarchical organization, tag conventions help: #books/sci-fi, #books/non-fiction — Memos treats the slashes as nested groupings in the sidebar.

Daily journal pattern

Many users treat Memos as a quick-capture journal:

  • Each memo timestamped automatically
  • Filter by date for "what did I do last Tuesday"
  • Tag #journal for the dedicated journal view

For per-day rolled-up views (one entry per day, appended to), the "Daily Review" feature in newer Memos auto-creates the day's memo and lets you append.

Multi-user / workspace

Memos supports multi-user with role-based access. Admin can invite users via Settings → Members. Each user has private memos; workspaces let a group share memos.

For SSO, OIDC support is available in newer versions — configure under Settings → Identity Providers; works with Authentik (see that tutorial).

API + mobile apps

Memos exposes a REST + gRPC API. Mobile apps (iOS, Android) and third-party Telegram bot integrations write memos directly via the API; useful for "snap a thought from anywhere" patterns.

Programmatic capture from scripts:

# Generate an Access Token in Settings → My Account → Access Tokens

curl -X POST https://memos.example.com/api/v1/memos \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{"content": "Caught a 30-min window with no meetings — built #project foo.", "visibility": "PRIVATE"}'

Cron jobs that capture daily metrics, bash aliases that drop a quick note — all writable via the API.

Markdown features

Full GitHub-flavored markdown: code blocks (syntax-highlighted), tables, task lists (- [ ] renders as a clickable checkbox in the rendered view), embedded images, footnotes, emoji shortcodes.

For diagrams, Mermaid is supported — paste a Mermaid spec in a fenced code block, get a rendered flow/sequence/gantt diagram inline.

Backups

Everything lives under ./data/:

  • memos_prod.db — the SQLite database
  • resources/ — uploaded attachments

Restic (see that tutorial) on the data dir covers it. For larger setups, switch to Postgres and back up via pg_dump.

Memos vs alternatives

  • Obsidian — markdown notes in local files + plugin ecosystem. Better for deep linking / knowledge graphs; not natively self-hosted (use Syncthing for sync).
  • SilverBullet — self-hosted markdown wiki with frontmatter-driven queries; more powerful than Memos but heavier setup.
  • Trilium / TriliumNext — self-hosted hierarchical notes with relations and code-block scripting. More complex; richer.
  • Joplin (with Joplin Server) — mature note-taking with E2E encryption + sync to a self-hosted server.
  • Bear / Apple Notes — first-party walled-garden options; great UX, not self-hosted.

When Memos is the wrong tool

  • For hierarchical / wiki-style organization with backlinks-as-graph, Trilium or Obsidian fit better.
  • For long-form writing (essays, reports), use a real editor or a wiki.
  • For E2E-encrypted notes, Joplin or Standard Notes.

For "I want to capture thoughts quickly, tag them, search later — on a server I control, with a clean UI," Memos is the right pick in 2026.