Skip to content

环境变量

最重要的 MEMOS_* 环境变量的运行时配置参考。

Memos 将运行时标记映射为以 MEMOS_ 为前缀的环境变量。在生产环境中,环境变量通常是保持部署配置清晰明确且可重复的最简洁的方式。

参考

所有的标记,以及其对应的环境变量:

标记环境变量默认值意义
--portMEMOS_PORT8081HTTP 端口
--addrMEMOS_ADDR地址绑定 (为空则为全部接口)
--unix-sockMEMOS_UNIX_SOCKUnix 套接字路径
--dataMEMOS_DATAauto数据目录
--driverMEMOS_DRIVERsqlite数据库后端 (sqlite, mysql, postgres)
--dsnMEMOS_DSNauto数据库连接字符串
--instance-urlMEMOS_INSTANCE_URL实例公共 URL
--demoMEMOS_DEMOfalseDemo 模式

默认的数据目录

MEMOS_DATA 未设置时会自动解析到:

  • Windows: %ProgramData%\memos
  • Docker: /var/opt/memos(当可写时)
  • Linux / macOS: 当前路径(.

默认的 DSN

MEMOS_DRIVER=sqliteMEMOS_DSN 为空时,数据库文件默认是 {MEMOS_DATA}/memos_prod.db。对于 MySQL 和 PostgreSQL, MEMOS_DSN 是必填的。

优先级

  1. 命令行标记(最高)
  1. 环境变量
  1. 默认值(最低)

对于相同的设置,显式的标记始终优先于环境变量。

实用指南

  • 当 Memos 应用在代理之下时,设置 MEMOS_INSTANCE_URL
  • 不使用 SQLite 相关的默认值时,请显式指定 MEMOS_DRIVERMEMOS_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
./memos

Nginx 和 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;
}

最后更新于:

评论区
评论区空空如也
发送评论
名字
0 / 20
邮箱
0 / 100
评论内容
0 / 140
由于是非实名评论,所以不提供删除功能。如果你需要删除你发送的评论,或者是其他人的评论对你造成了困扰,请 发邮件给我 。同时评论区会使用 AI + 人工的方式进行审核,以达到合规要求。