安装
安装
支持:安装脚本、Docker 预构建镜像、Docker Compose、从源码构建。产物为 单二进制(前端 go:embed),默认 SQLite,无 CGO。
系统要求
| 方式 | 要求 |
|---|---|
| 二进制 / Docker | 无编译依赖;Linux amd64/arm64、macOS amd64/arm64;Windows 有 Release zip |
| 源码构建 | Go ≥ 1.26、Node ≥ 24、make |
默认监听 :8686,数据目录默认 ./data(Docker 镜像内为 /data)。
1. 安装脚本(推荐自托管)
脚本从 GitHub Release 下载对应平台产物,默认装到 ~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/yixian-huang/imgli/main/scripts/install.sh | sh
| 变量 / 参数 | 含义 |
|---|---|
sh -s -- v0.1.1 | 固定 tag |
PREFIX=/path 或 IMGLI_INSTALL_DIR | 安装目录 |
IMGLI_REPO | 默认 yixian-huang/imgli(一般不用改) |
验证:
imgli version
imgli serve -config /path/to/imgli.yaml # 可选配置文件
Windows:从 Releases 下载 Windows_*.zip,或在 Git Bash 下跑同一脚本。
2. Docker 预构建镜像
docker run -d --name imgli --restart unless-stopped \
-p 8686:8686 \
-v imgli-data:/data \
-e IMGLI_BASE_URL=https://img.example.com \
-e IMGLI_TRUST_PROXY=true \
ghcr.io/yixian-huang/imgli:latest
健康检查:容器内对 http://127.0.0.1:8686/healthz 探测(镜像已带 HEALTHCHECK)。
3. Docker Compose
仓库根目录:
git clone https://github.com/yixian-huang/imgli && cd imgli
# 生产建议改 compose 使用固定 image tag,而不是本地 build
docker compose up -d
docker-compose.yml 默认挂载 imgli-data volume、暴露 8686。可按注释打开 Postgres 与 IMGLI_TRUST_PROXY。
4. 源码构建
git clone https://github.com/yixian-huang/imgli && cd imgli
make build # 产出 ./imgli
./imgli version # ldflags 注入的 git tag
./imgli serve
开发测试:
make test # go vet + go test(可选 IMGLI_TEST_PG_DSN)
make test-web # vitest
cd web && npm run e2e
5. systemd 示例(Linux)
# /etc/systemd/system/imgli.service
[Unit]
Description=imgli image host
After=network.target
[Service]
Type=simple
User=imgli
Group=imgli
WorkingDirectory=/opt/imgli
ExecStart=/usr/local/bin/imgli serve -config /opt/imgli/imgli.yaml
Restart=on-failure
RestartSec=3
# 若不用 yaml,可直接 Environment=
# Environment=IMGLI_BASE_URL=https://img.example.com
# Environment=IMGLI_DATA_DIR=/opt/imgli/data
# Environment=IMGLI_TRUST_PROXY=true
[Install]
WantedBy=multi-user.target
sudo useradd -r -s /usr/sbin/nologin imgli
sudo mkdir -p /opt/imgli/data
sudo chown -R imgli:imgli /opt/imgli
sudo systemctl daemon-reload
sudo systemctl enable --now imgli
6. 反代要点(Caddy / Nginx)
- TLS 在反代终止。
- 反代把真实 IP 写入
X-Forwarded-For/X-Real-IP后,再设IMGLI_TRUST_PROXY=true。 IMGLI_BASE_URL必须是用户浏览器看到的 https 公网源。- 不要把 OCR / NSFW 旁路服务直接暴露到公网(见 安全加固)。