97 lines
5.2 KiB
Bash
97 lines
5.2 KiB
Bash
# 初春图床 oneImg 环境变量示例
|
||
#
|
||
# 用法(二选一):
|
||
# A. 本文件重命名为 .env 放在 docker-compose.yml 同目录,docker compose
|
||
# 会自动读取它并替换 compose 里的 ${VAR} 占位符。
|
||
# B. 直接用 docker run 时,把下面的 KEY=VALUE 写成 -e KEY=VALUE。
|
||
#
|
||
# 优先级:这里/编排里注入的值 > 容器内自动生成的 /app/.env
|
||
# 应用首次启动会在工作目录生成 .env 模板,但 godotenv 不覆盖已存在的
|
||
# 进程环境变量,所以容器里注入的值始终生效。
|
||
#
|
||
# 所有项都有内置默认值,全部留空也能启动;下面只列需要按部署环境改的几项。
|
||
|
||
# ── 部署入口 ─────────────────────────────────────────────────────
|
||
# 空值:开发/直连模式,只发布到 127.0.0.1:8080。
|
||
# 设为 1:加载 Traefik 覆盖配置,不发布宿主机端口。
|
||
TRAEFIK_ENABLED=
|
||
COMPOSE_FILE=docker-compose.yml${TRAEFIK_ENABLED:+:docker-compose.traefik.yml}
|
||
HOST_BIND_IP=127.0.0.1
|
||
HOST_PORT=8080
|
||
|
||
# Traefik 模式设置;TRAEFIK_ENABLED=1 时生效。
|
||
TRAEFIK_HOST=img.example.com
|
||
TRAEFIK_NETWORK=frontend
|
||
TRAEFIK_ENTRYPOINTS=https
|
||
TRAEFIK_TLS=true
|
||
TRAEFIK_CERTRESOLVER=cloudflare
|
||
TRAEFIK_PRIORITY=10
|
||
# 需在 Traefik file provider 中定义此中间件;没有中间件时请同步移除覆盖文件中的对应 label。
|
||
TRAEFIK_MIDDLEWARES=real-ip@file
|
||
|
||
# ── 必改 ─────────────────────────────────────────────────────────
|
||
# 站点对外地址:API 返回的图片 URL 固定取自该值(不再反射请求 Host)。
|
||
# 公网部署必须改成实际地址,否则返回的图片链接不可用。
|
||
APP_URL=https://img.example.com
|
||
|
||
# 账户页管理员版本信息来源(Gitea 仓库)
|
||
GITEA_URL=https://git.bytevibe.dev
|
||
GITEA_REPOSITORY=gary/oneimg
|
||
# 私有 Gitea 仓库可填只读令牌;公开仓库留空
|
||
GITEA_TOKEN=
|
||
|
||
# 监听端口,改这里时 compose 的端口映射会同步变化。
|
||
SERVER_PORT=8080
|
||
|
||
# ── 初始管理员 ───────────────────────────────────────────────────
|
||
DEFAULT_USER=admin
|
||
# 留空(推荐):仅在首次创建管理员时生成 43 字符随机密码,写入
|
||
# /app/data/.initial_admin_password(权限 0600),不打印到日志。
|
||
# 查看:docker compose exec oneimg cat /app/data/.initial_admin_password
|
||
# 非空:直接作为初始密码。仅在数据库里还没有任何用户时生效,
|
||
# 已有账号的密码不会因为改这里而被重置。
|
||
DEFAULT_PASS=
|
||
|
||
# ── 密钥 ─────────────────────────────────────────────────────────
|
||
# 两者留空都会自动生成并持久化到 ./data 卷,重启进程或重建容器都不会变:
|
||
# SESSION_SECRET → data/.session_secret(会话与 OIDC/CAS state 签名)
|
||
# CONFIG_SECRET → data/.config_secret (加密存储凭证与图片文件)
|
||
# CONFIG_SECRET 一旦启用加密存储就不能更换,否则历史内容无法解密。
|
||
# 显式配置时必须 >= 32 字符,否则启动直接失败。
|
||
SESSION_SECRET=
|
||
CONFIG_SECRET=
|
||
|
||
# ── 数据库 ───────────────────────────────────────────────────────
|
||
# sqlite | mysql | postgres
|
||
DB_TYPE=sqlite
|
||
SQLITE_PATH=./data/data.db
|
||
# 仅 mysql/postgres 需要:
|
||
# DB_HOST=localhost
|
||
# DB_PORT=3306
|
||
# DB_USER=root
|
||
# DB_PASSWORD=
|
||
# DB_NAME=oneimg
|
||
# TLS 模式:auto | disable | preferred | required | verify-ca | verify-full
|
||
# auto(默认):DB_HOST 解析为本机/私有地址(含 Docker 网络)时 preferred,
|
||
# 公网地址时 verify-full。启动日志会输出最终生效的模式。
|
||
# DB_TLS_MODE=auto
|
||
# 校验证书时使用的主机名,留空等于 DB_HOST(仅 verify-full)
|
||
# DB_TLS_SERVER_NAME=
|
||
# CA 证书路径(仅 verify-ca / verify-full 使用);留空使用系统 CA,路径错误会拒绝启动。
|
||
# DB_CA_CERT_PATH=./ca/isrgrootx1.pem
|
||
# 旧配置兼容:DB_TLS_MODE 未设置或为 auto 时,true 等价于 DB_TLS_MODE=required
|
||
# DB_SKIP_CERT_VERIFY=false
|
||
|
||
# ── 上传 ─────────────────────────────────────────────────────────
|
||
UPLOAD_ROOT=./uploads
|
||
# 单文件上限(字节),程序内另有 32MB 硬上限
|
||
MAX_FILE_SIZE=10485760
|
||
# SVG 不再作为普通图片接受;留空默认 jpeg/png/gif/webp
|
||
ALLOWED_TYPES=image/jpeg,image/png,image/gif,image/webp
|
||
|
||
# ── 反向代理 ─────────────────────────────────────────────────────
|
||
# 逗号分隔 IP/CIDR。仅这些来源的 X-Forwarded-For 会被采信为客户端 IP,
|
||
# Traefik 模式请填写 Traefik 在共享 Docker 网络中的 IP 或子网;
|
||
# 留空表示不信任任何代理(直连部署保持留空)。
|
||
TRUSTED_PROXIES=
|