chore(docs): add systemd service example, docker-compose, and troubleshooting (#49) - #65
Conversation
…shooting (#49) Ship deployment documentation for running memayu serve persistently: - contrib/systemd/memayu.service: systemd unit example (restart on failure, unprivileged memayu user, config.toml based; no .env required). Documents config resolution order and setup steps. - contrib/docker-compose.yml: compose example with a named data volume, restart: unless-stopped, and a /api/health readiness healthcheck. - TROUBLESHOOTING.md: guides for config loading, /api/health states, provider 401/5xx/connection issues (real test calls), dimension mismatch, port in use, forgotten-password reset, API-key 401, and log locations. - README.md: "Running as a service (systemd)" section with enable/start/status/logs commands, a Docker Compose pointer, and a link to TROUBLESHOOTING.md.
|
Review of PR #65 at 🔴 BlockingNone. This is a documentation-only change ( 🟡 Warning #1 —
|
Summary
Docs-only PR that ships the self-hosted deployment + troubleshooting story for issue #49.
contrib/systemd/memayu.service): runsmemayu serveas a persistent service — unprivilegedmemayusystem user,Restart=on-failure, DB persisted at/var/lib/memayu/memayu.dbviaMEMAYU_LIBSQL_PATH,network-online.targetordering. Full setup snippet in the header comment.contrib/docker-compose.yml):ghcr.io/savioruz/memayu:latest,restart: unless-stopped,memayu-datanamed volume, and ahealthcheckthat waits for/api/healthto return"status":"ready"(container is healthy only after first-run setup). Includes the local-embedder recipe.memayu doctor, then common config/storage/provider/env paths.No Rust/schema changes. CI build/clippy/test/audit are unaffected by docs;
cargo fmtis green.Checklist
memayu serve(persistent, unprivileged, restart-on-failure).memayu doctorguidance.Security
memayuuser (not root); config.toml ischmod 600./api/healthreadiness probe (no credentials in the probe).