Files
oneimg/.env.example

97 lines
5.2 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 初春图床 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=