# 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=Daily
      - 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
