Appearance
环境变量
最重要的
MEMOS_*环境变量的运行时配置参考。
Memos 将运行时标记映射为以 MEMOS_ 为前缀的环境变量。在生产环境中,环境变量通常是保持部署配置清晰明确且可重复的最简洁的方式。
参考
所有的标记,以及其对应的环境变量:
| 标记 | 环境变量 | 默认值 | 意义 |
|---|---|---|---|
--port | MEMOS_PORT | 8081 | HTTP 端口 |
--addr | MEMOS_ADDR | | 地址绑定 (为空则为全部接口) |
--unix-sock | MEMOS_UNIX_SOCK | | Unix 套接字路径 |
--data | MEMOS_DATA | auto | 数据目录 |
--driver | MEMOS_DRIVER | sqlite | 数据库后端 (sqlite, mysql, postgres) |
--dsn | MEMOS_DSN | auto | 数据库连接字符串 |
--instance-url | MEMOS_INSTANCE_URL | | 实例公共 URL |
--demo | MEMOS_DEMO | false | Demo 模式 |
默认的数据目录
MEMOS_DATA 未设置时会自动解析到:
- Windows:
%ProgramData%\memos
- Docker:
/var/opt/memos(当可写时)
- Linux / macOS: 当前路径(
.)
默认的 DSN
当 MEMOS_DRIVER=sqlite 合 MEMOS_DSN 为空时,数据库文件默认是 {MEMOS_DATA}/memos_prod.db。对于 MySQL 和 PostgreSQL, MEMOS_DSN 是必填的。
优先级
- 命令行标记(最高)
- 环境变量
- 默认值(最低)
对于相同的设置,显式的标记始终优先于环境变量。
实用指南
- 当 Memos 应用在代理之下时,设置
MEMOS_INSTANCE_URL。
- 不使用 SQLite 相关的默认值时,请显式指定
MEMOS_DRIVER和MEMOS_DSN。
- 将数据库凭据等保密信息保存在已提交的 Compose 文件之外。
- 平等对待这些值和其它部署配置,同样进行备份。
常见模式
SQLite 和显示的数据目录:
bash
export MEMOS_DRIVER=sqlite
export MEMOS_DATA=/var/opt/memos
./memos外部的 PostgreSQL:
bash
export MEMOS_DRIVER=postgres
export MEMOS_DSN="postgres://user:password@db:5432/memos?sslmode=disable"
export MEMOS_INSTANCE_URL=https://memos.example.com
./memosNginx 和 Unix 套接字(对本地反向代理很有用):
bash
export MEMOS_UNIX_SOCK=/var/run/memos.sock
export MEMOS_DATA=/var/lib/memos
export MEMOS_INSTANCE_URL=https://memos.example.com
./memos处于套接字上游的 Nginx:
nginx
upstream memos {
server unix:/var/run/memos.sock;
}