Imagic / 妙绘
安装部署

环境变量

启动期环境变量速查表

环境变量分两类:

  • 启动期变量: 进程启动时读取, 不可热更; 改完必须重启
  • 运行时配置: 落 settings 表, admin 后台改完即时生效, 不需要重启 (站点信息 / 注册策略 / 邮箱 SMTP / 存储 / 支付 / License 等)

本页只覆盖启动期变量。运行时配置见各功能章节。

完整清单

变量默认是否必填说明
LISTEN_ADDR:8080否HTTP 监听地址, 反代场景一般保持 :8080
DB_DRIVERsqlite否sqlite 或 postgres
DB_DSN./data/imagic.db视 driverSQLite 是文件路径; PG 是连接串
REDIS_URLredis://localhost:6379/0是Redis 连接串, ping 不通 fatal
DATA_DIR./data否本地图片存储根目录, S3 模式下仍用于挂载 SQLite 等
LICENSE_KEY(空)Docker 版必填Docker 版 JWT, 由销售提供
GIN_MODErelease否release / debug / test, debug 下打路由与请求级日志

DB_DSN 详解

SQLite

直接给文件路径, 文件不存在会自动创建:

DB_DSN=./data/imagic.db          # 容器内常见
DB_DSN=/var/lib/imagic/db.sqlite # 自定义路径

容器化部署时, 该路径所在目录必须挂载为持久卷, 否则容器重启数据丢失。 仓库默认把 ./data/imagic 挂到容器 /app/data (与同 compose 内 redis / postgres 各自的 ./data/redis / ./data/postgres 子目录隔离), 数据库自然落在卷里。

PostgreSQL

两种格式都支持:

# URL 风格 (推荐)
DB_DSN=postgresql://user:pass@host:5432/imagic?sslmode=disable

# KV 风格
DB_DSN=host=db port=5432 user=imagic password=imagic dbname=imagic sslmode=disable

常用 sslmode:

  • disable — 容器内网 / 同 VPC 内网通信
  • require — 公网链路, 仅校验 TLS 握手
  • verify-full — 校验 TLS + 证书 CN, 安全级别最高, 需要 CA 文件

REDIS_URL 详解

redis://[user[:password]@]host[:port][/db]
rediss://...   # TLS
  • 缺省 host=localhost, port=6379, db=0
  • 用户名仅 Redis 6 ACL 启用时需要; 绝大多数场景只填密码即可
  • TLS 接入云 Redis 时必须用 rediss://

LICENSE 相关

源码版

部署在客户域名下时, 设置:

LICENSE_DOMAIN=app.customer.com

启动期 / 心跳期会做 host 比对; 留空表示不做域名校验。

Docker 版

签发 JWT 后塞进环境变量:

LICENSE_KEY=eyJhbGciOiJSUzI1NiIs...

LICENSE_KEY 在启动期由后端写入 settings.license.key, 之后 admin 也能通过后台界面替换。 公钥内嵌在二进制内 (server/initapp/keys/public.pem), 私钥严格保留在 license 签发方手里。

运行时配置在哪改

启动后用 admin 账号登录, 进 /admin/settings, 分组覆盖以下大类:

  • site: 站点名 / Logo / footer 文案
  • register: 注册开关 / 模式 (open / invite / admin) / 默认点数 / 邮箱白黑名单
  • email: SMTP 主机 / 凭证 / 发件人 / 是否在注册时验邮箱
  • storage: 驱动 (local / s3) 与对应参数 — 见 图片存储
  • alipay: 支付宝凭证、是否开启 QR / Page 模式
  • invite: 邀请奖励开关与点数
  • license: License Key / Domain (Docker 版)

字段含义见 功能介绍 各章。

On this page