forked from DevOps/deploy.stack
Memos 部署栈
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 数据迁移脚本 |
部署命令
本地环境
docker compose -p memos -f ./memos/local.stack.yml up -d
生产环境
根据目标数据库选择对应的配置文件:
# 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 将 SQLite 数据迁移到 PostgreSQL:
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