# Memos 部署栈 [Memos](https://github.com/usememos/memos) 是一个轻量级的自托管备忘录服务,支持 Markdown,可用于日常笔记和知识管理。 ## 目录结构 | 文件 | 说明 | |------|------| | `local.stack.yml` | 本地开发环境部署配置 | | `prod.stack.yml` | 生产环境部署配置(多环境) | | `env.cfg` | 公共环境变量(镜像版本、数据卷路径) | | `db-184.cnf` | 数据库配置 - 184 环境 | | `db-61.cnf` | 数据库配置 - 61 环境 | | `env-lkc.cnf` | 数据库配置 - lkc 环境 | | `pgloader.load` | SQLite → PostgreSQL 数据迁移脚本 | ## 部署命令 ### 本地环境 ```bash docker compose -p memos -f ./memos/local.stack.yml up -d ``` ### 生产环境 根据目标数据库选择对应的配置文件: ```bash # 184 环境 docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-184.cnf -f ./memos/prod.stack.yml up -d # 61 环境 docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/db-61.cnf -f ./memos/prod.stack.yml up -d # lkc 环境 docker compose -p memos --env-file ./memos/env.cfg --env-file ./memos/env-lkc.cnf -f ./memos/prod.stack.yml up -d ``` ## 数据迁移 使用 [pgloader](https://github.com/dimitri/pgloader) 将 SQLite 数据迁移到 PostgreSQL: ```bash pgloader ./memos/pgloader.load ``` 迁移脚本将 SQLite 数据库文件导入到 PostgreSQL,保留表结构和索引。 ## 环境变量说明 | 变量 | 说明 | 示例 | |------|------|------| | `IMAGE_TAG_VER` | Memos 镜像版本 | `0.27.1` | | `IMAGE_TAG` | 完整镜像标签 | `neosmemo/memos:0.27.1` | | `Volumes_Path` | 数据卷宿主机路径 | `/data/volumes/memos` | | `DB_DRIVER` | 数据库驱动 | `postgres` | | `DB_USER` | 数据库用户名 | - | | `DB_PASSWORD` | 数据库密码 | - | | `DB_DATANAME` | 数据库名称 | `memos-db` | | `DB_HOST` | 数据库主机地址 | - | | `DB_POST` | 数据库端口 | `5432` | ## 服务端口 - 本地环境:`8230` → 容器 `5230` - 生产环境:`5230` → 容器 `5230`