宝塔面板安装
用宝塔面板的 Nginx / Docker / Postgres / Redis 一站式部署 Imagic
适合已有宝塔面板的服务器: 数据库、缓存、反向代理、SSL 都在宝塔里点选完成,
Imagic 容器通过 host 网络模式直连宿主机的 Postgres 与 Redis, 不需要把它们暴露到公网,
也不用单独开防火墙端口。
前置条件
- 一台已装宝塔面板 (国内版 / aaPanel 均可) 的 Linux 服务器
- 一个解析到该服务器的域名 (后续配反代 + SSL)
- License Key (Docker 版授权 JWT, 找供应商要)
- 至少一条 OpenAI 兼容图像渠道 (BaseURL + API Key, 部署完后在 admin 后台填)
1. 准备宝塔环境 (已装的可跳过)
Nginx
宝塔软件商店搜 Nginx 安装, 版本随意, 默认即可。


Docker
软件商店搜 Docker 安装, 默认即可。

PostgreSQL (推荐)
软件商店搜 Postgres 插件并安装。

安装好插件后, 进插件页装数据库, 建议选 17.6, 比较稳定。



然后创建一个数据库 imagic:

记下数据库名、账号、密码, 后面 compose 里要用 (示例: imagic / imagic / PpJ2wJEEPaz8)。
Redis
Imagic 强依赖 Redis (异步任务事件总线 / 跨进程取消信号 / session 密钥持久化), 必装。

版本选 redis7 或 redis8 都行, 这里演示用最新版 redis8, 生产稳妥推荐 redis7.4。


本地目录
按习惯设置一个数据持久化目录, 这里用 /www/docker/imagic:

2. 创建 Imagic 容器编排
由于宝塔的 Postgres 与 Redis 都跑在宿主机, 容器使用
host网络模式直连127.0.0.1, 不必给数据库 / Redis 放开公网权限, 也不用占额外端口。
宝塔 Docker → 容器编排 → 添加。

名称: imagic (或你喜欢的)
内容:
services:
imagic:
# 建议直接锁版本号, 不用 latest, 升级才显式
image: woodchen/imagic:0.6.2
container_name: imagic
restart: unless-stopped
network_mode: host
environment:
LICENSE_KEY: "你的授权码"
# 如果 Redis 设了密码, 改成 redis://default:密码@127.0.0.1:6379/0
REDIS_URL: "redis://127.0.0.1:6379/0"
DB_DRIVER: "postgres"
DB_DSN: "postgresql://imagic:PpJ2wJEEPaz8@127.0.0.1:5432/imagic?sslmode=disable"
# 任意未占用端口都行, 反代后不用对外开放
LISTEN_ADDR: ":1445"
volumes:
- /www/docker/imagic:/app/data启动成功后, 容器日志里会输出默认管理员账号与随机密码, 请立即保存, 只在第一次启动时出现。如果忘了, 参考 忘记密码了怎么办。

上图截的是默认 8080 端口示例。如果按上面 compose 配的
:1445, 这里会显示1445。
3. Nginx 反代 + SSL
添加站点反代
宝塔 → 网站 → 添加站点 → 反向代理, 目标地址填 http://127.0.0.1:1445。

域名 DNS 解析
到你的 DNS 平台 (Cloudflare / 阿里云 / DNSPod) 添加一条 A 记录指向服务器 IP:

申请 SSL 证书
宝塔站点设置 → SSL → Let's Encrypt 一键申请。

访问验证
浏览器打开域名, 看到首页即成功:

4. 升级
锁定 tag 镜像 (推荐)
把容器编排里的 image: woodchen/imagic:0.6.2 改成新版本号 (如 0.6.3),
点右下角"保存", 宝塔会自动重建容器。

latest 镜像
直接点容器编排的"更新镜像"按钮, 拉完即生效, 不用改 yaml。

latest 单容器升级
适用场景:
- 单容器
docker run起的, 没用容器编排 - 老款宝塔, 或 docker compose 在宝塔之外管理 (编排页改不动 yaml, 但容器列表里能看到 imagic 这条)
走"容器 → 选中行 → 管理 → 升级容器":
- 当前镜像:
woodchen/imagic:latest - 目标镜像: 仓库名
woodchen/imagic+ taglatest保持不变 - 必须勾选"强制拉取镜像", 否则宝塔检测到 tag 没变, 会直接复用本地旧镜像, 等于没升

不过我们建议用具体版本号而非 latest: 升级时间点你自己掌握, 出问题方便回滚到旧版本号。
后续
- 登录 admin 后台, 在
/admin/channels添加上游图像渠道 - 在
/admin/settings配置站点信息、邮箱 SMTP、支付宝等 - 数据持久化目录
/www/docker/imagic建议接入宝塔的定时备份任务, 详见 升级与备份