imgLi 文档imgLi 文档
GitHub

配置(运维层)

配置(运维层)

本文只讲 进程怎么跑(监听、数据目录、数据库、反代)。
站点名、注册、存储策略、SMTP、外观等业务项在 管理后台,不在这里。

要不要写配置文件?

多数人 只用环境变量 即可(Docker Compose / systemd Environment=)。

方式何时用
环境变量 IMGLI_*Docker / 面板部署;优先
YAML(imgli serve -config …二进制裸机、想把多项写在一个文件里

优先级: 默认值 → YAML → 环境变量(环境变量覆盖 YAML)。

上线时通常只改 1~2 项

场景必改
本机试玩 localhost:8686不用改(默认即可)
域名 + HTTPS 反代IMGLI_BASE_URL = 浏览器里的 https://你的域名;并设 IMGLI_TRUST_PROXY=true
自定义数据盘IMGLI_DATA_DIR(Docker 镜像内默认已是 /data,配合卷挂载即可)

其它变量都有合理默认值,不是每个都要填。

环境变量说明

变量是否必需默认说明
IMGLI_BASE_URL公网部署必需http://localhost:8686用户浏览器打开的站点地址(含 https://)。用于生成外链、邮件链接、Cookie、登录注册的 CSRF 校验。填错时反代后常出现「跨站请求被拒绝」;本机试玩可保持默认。
IMGLI_TRUST_PROXY有反代时 必需为 truefalse是否信任反代传来的 X-Forwarded-For 等头。在前面有 Nginx/Caddy/1Panel 等可信反代时打开;直连公网不要开。
IMGLI_LISTEN可选:8686进程监听地址。Docker 内一般保持 :8686,由端口映射/反代暴露。
IMGLI_DATA_DIR可选./data(镜像内常为 /data本地文件与 默认 SQLite 库 所在目录。用 Docker 时挂卷到这里即可,不必再改。
IMGLI_DATABASE_DRIVER可选sqlitesqlite(默认,单机省事)或 postgres
IMGLI_DATABASE_DSN用 Postgres 时 必需(SQLite 自动用 <data_dir>/imgli.dbPostgres 连接串。SQLite 请留空,让程序写默认路径与安全参数。若自写 DSN,需自行加 pragma。
IMGLI_FETCH_ALLOW可选仅在启用「URL 抓取上传」且要访问内网地址时,用逗号追加 host/CIDR。默认拒绝内网,一般不用动。
IMGLI_RATE_LIMIT_MULT可选1限速倍率。生产保持 1;只给 e2e/压测用。
IMGLI_SERVE_CACHE_DISABLED可选未设 / falsev0.9.12:设为 true 关闭源站缓存。默认对公开(无口令、无次数上限)的 /t 与未 302 的 /i 缓存在 {data_dir}/.serve-cache
IMGLI_SERVE_CACHE_MAX_BYTES可选0(= 512MiB)源站缓存上限(字节)。0 表示默认 512MiB。

反代登录 403 优先查 IMGLI_BASE_URL。见 FAQ · 安全加固

YAML 示例(可选)

不写文件也可以。若要用文件,仓库示例:deploy/imgli.example.yaml。精简示意:

listen: ":8686"
base_url: "https://img.example.com"   # 与浏览器地址一致
data_dir: "/opt/imgli/data"
database:
  driver: sqlite                      # 或 postgres + dsn
trust_proxy: true                     # 仅反代后
# serve_cache_disabled: false         # v0.9.12 公开 /t 与未 302 的 /i
# serve_cache_max_bytes: 0            # 0 = 512MiB;目录 <data_dir>/.serve-cache

启动:

imgli serve
#
imgli serve -config /opt/imgli/imgli.yaml

SQLite 还是 PostgreSQL?

SQLite(默认)PostgreSQL
适合单机、个人/小团队、运维简单已有 PG、要更大规模或运维规范
怎么开默认即可IMGLI_DATABASE_DRIVER=postgres + IMGLI_DATABASE_DSN=…
备份备份 data_dir(库 + 本地图)pg_dump + 对象存储/本地盘

两种驱动都在同一二进制里,无需额外安装数据库客户端。

Docker:数据目录怎么挂

方式建议
命名卷 imgli-data:/data推荐。Compose 默认;权限与 SQLite 最省心。
绑定挂载 /var/lib/imgli:/data可用,但须是 本机本地磁盘;目录预先建好且可写。不要把 SQLite 放到 NFS/CIFS/网盘。

低内存 ARM 板子若把命名卷改成绑定挂载后出现 out of memory
1)先改回命名卷试一下;
2)上传/转码时设 VIPS_CONCURRENCY=1
3)仍不稳可改用 Postgres。说明见 FAQ

运维配置 vs 后台业务

本文(运维层)管理后台
监听、数据目录、数据库、base_url、trust_proxy站名、外观、注册、用户组、存储策略、SMTP、机审…

改完运维参数后重启进程。v0.7+ 可在后台 系统 / 运维 看 doctor 与 base_url 是否和浏览器一致。

相关文档

安装 · 升级 · 管理后台 · 安全加固 · FAQ · OIDC

完整变量表也可对照仓库 README。冲突以 Releases 为准。

最后更新: 2026-08-15