Files
esh-pfi-infrastructure/stacks/memos/compose.yaml
T
vh 6df5549161 memos: deploy to ana-docker
Stock neosmemo/memos:stable, port 5230, SQLite at
/opt/docker/conf/memos/data/. Joins traefik-net and ships homepage
labels (group=Notes) so it auto-appears on the dashboard via docker
discovery — no edit to configs/homepage/services.yaml needed.

First-run bootstrap is via the UI: visit http://10.250.50.70:5230
and create the Host account through the sign-up form.

Playbook idiom note: docker compose pull lines need the literal
block scalar (|) when the grep pattern contains colons — bare-string
shell value made YAML parse the colon as a mapping separator and
elway choked on first try.
2026-04-29 13:27:12 -07:00

46 lines
1.5 KiB
YAML

# memos — lightweight self-hosted note / memo server.
# Upstream: https://github.com/usememos/memos (MIT, Go binary).
#
# Single container, SQLite by default (file lives in the bind-mounted
# data dir below). Auth bootstraps via the UI on first run — first
# user created becomes Host. No env vars required for a basic install.
#
# All tunables live in .env — edit that, not this file.
services:
memos:
image: neosmemo/memos:${MEMOS_TAG:-stable}
container_name: memos
restart: unless-stopped
ports:
- "${MEMOS_BIND:-0.0.0.0}:${MEMOS_PORT}:5230"
volumes:
# SQLite DB + uploaded resource files. Bind mount on the host
# rather than a named volume so backups + manual inspection are
# straightforward.
- ${MEMOS_DATA_DIR}:/var/opt/memos
environment:
- TZ=${MEMOS_TZ:-America/Los_Angeles}
healthcheck:
# Image is alpine-based and ships busybox wget. --spider keeps it
# cheap (HEAD request) and 127.0.0.1 dodges the IPv6-first
# localhost trap that bit news-digest + chatterbox earlier.
test: ["CMD-SHELL", "wget --spider -q http://127.0.0.1:5230/ || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
networks:
- tnet
labels:
- homepage.group=Notes
- homepage.name=Memos
- homepage.icon=mdi-note-text-outline
- homepage.description=Self-hosted note + memo server (ana-docker)
- homepage.href=http://10.250.50.70:${MEMOS_PORT}
networks:
tnet:
name: traefik-net
external: true