Skip to content

配置项说明

无论是使用 Docker 还是 Docker Compose (.env) 方式部署,均通过环境变量进行配置。

环境变量列表

环境变量说明默认值必需
CFRAME_ADMIN_EMAIL初始管理员用户的邮箱admin@chronoframe.com
CFRAME_ADMIN_NAME初始管理员用户的用户名Chronoframe
CFRAME_ADMIN_PASSWORD初始管理员用户的密码CF1234@!
NUXT_PUBLIC_APP_TITLE应用标题ChronoFrame
NUXT_PUBLIC_APP_SLOGAN应用口号
NUXT_PUBLIC_APP_AUTHOR应用作者
NUXT_PUBLIC_APP_AVATAR_URL应用头像 URL
NUXT_PUBLIC_COLOR_MODE_PREFERENCE颜色模式偏好,可选 lightdarksystemsystem
NUXT_PUBLIC_MAP_PROVIDER地图提供者,可选 mapboxmaplibremaplibre
NUXT_PUBLIC_MAPBOX_ACCESS_TOKENMapbox 访问令牌(可限制 URL),用于地图服务NUXT_PUBLIC_MAP_PROVIDERmapbox 时必需
NUXT_NOMINATIM_BASE_URLNominatim 反向地理编码服务的基础 URLhttps://nominatim.openstreetmap.org
NUXT_MAPBOX_ACCESS_TOKENMapbox 访问令牌(无 URL 限制),用于位置信息服务
NUXT_STORAGE_PROVIDER存储提供者,支持 locals3openlistlocal
NUXT_PROVIDER_LOCAL_PATH本地存储路径/app/data/storage
NUXT_PROVIDER_LOCAL_BASE_URL本地存储的访问 URL/storage
NUXT_PROVIDER_S3_ENDPOINTS3 兼容存储服务的 EndpointNUXT_STORAGE_PROVIDERs3 时必需
NUXT_PROVIDER_S3_BUCKETS3 存储桶名称chronoframeNUXT_STORAGE_PROVIDERs3 时必需
NUXT_PROVIDER_S3_REGIONS3 存储桶区域autoNUXT_STORAGE_PROVIDERs3 时必需
NUXT_PROVIDER_S3_ACCESS_KEY_IDS3 访问密钥 IDNUXT_STORAGE_PROVIDERs3 时必需
NUXT_PROVIDER_S3_SECRET_ACCESS_KEYS3 访问密钥NUXT_STORAGE_PROVIDERs3 时必需
NUXT_PROVIDER_S3_PREFIXS3 存储前缀photos/
NUXT_PROVIDER_S3_CDN_URLS3 存储的 CDN 地址
NUXT_PROVIDER_OPENLIST_BASE_URLOpenList 服务器 URLNUXT_STORAGE_PROVIDERopenlist 时必需
NUXT_PROVIDER_OPENLIST_ROOT_PATHOpenList 根路径NUXT_STORAGE_PROVIDERopenlist 时必需
NUXT_PROVIDER_OPENLIST_TOKENOpenList API 令牌NUXT_STORAGE_PROVIDERopenlist 时必需(用于 OpenList 认证)
NUXT_PROVIDER_OPENLIST_ENDPOINT_UPLOADOpenList 上传端点/api/fs/put
NUXT_PROVIDER_OPENLIST_ENDPOINT_DOWNLOADOpenList 下载端点
NUXT_PROVIDER_OPENLIST_ENDPOINT_LISTOpenList 列表端点
NUXT_PROVIDER_OPENLIST_ENDPOINT_DELETEOpenList 删除端点/api/fs/remove
NUXT_PROVIDER_OPENLIST_ENDPOINT_METAOpenList 元数据端点/api/fs/get
NUXT_PROVIDER_OPENLIST_PATH_FIELDOpenList 路径字段名path
NUXT_PROVIDER_OPENLIST_CDN_URLOpenList CDN 地址
NUXT_PUBLIC_OAUTH_GITHUB_ENABLED是否启用 GitHub OAuth 登录false
NUXT_OAUTH_GITHUB_CLIENT_IDGitHub OAuth 应用的 Client ID否(可选,用于 GitHub 登录)
NUXT_OAUTH_GITHUB_CLIENT_SECRETGitHub OAuth 应用的 Client Secret否(可选,用于 GitHub 登录)
NUXT_SESSION_PASSWORD用于加密会话的密码,32 位随机字符串
NUXT_PUBLIC_GTAG_IDGoogle Analytics 追踪 ID
NUXT_PUBLIC_ANALYTICS_MATOMO_ENABLED是否启用 Matomo 分析追踪false
NUXT_PUBLIC_ANALYTICS_MATOMO_URLMatomo 实例 URL 地址(如: https://matomo.example.com)否(启用 Matomo 时必需)
NUXT_PUBLIC_ANALYTICS_MATOMO_SITE_IDMatomo 站点 ID否(启用 Matomo 时必需)
NUXT_UPLOAD_MIME_WHITELIST_ENABLED是否启用上传文件 MIME 类型白名单验证true
NUXT_UPLOAD_MIME_WHITELIST上传文件允许的 MIME 类型列表(逗号分隔)见下方说明
NUXT_UPLOAD_DUPLICATE_CHECK_ENABLED是否启用重复文件检测true
NUXT_UPLOAD_DUPLICATE_CHECK_MODE重复文件处理模式,可选 warnblockskipskip
ALLOW_INSECURE_COOKIE是否允许非安全 Cookie(仅在开发环境使用)false

上传文件类型白名单

NUXT_UPLOAD_MIME_WHITELIST 的默认值包含以下 MIME 类型:

  • image/jpeg - JPEG 图片
  • image/png - PNG 图片
  • image/webp - WebP 图片
  • image/gif - GIF 图片
  • image/bmp - BMP 图片
  • image/tiff - TIFF 图片
  • image/heic - HEIC 图片(Apple)
  • image/heif - HEIF 图片
  • video/quicktime - QuickTime 视频(MOV)
  • video/mp4 - MP4 视频

如需自定义白名单,请使用逗号分隔的 MIME 类型字符串,例如:

NUXT_UPLOAD_MIME_WHITELIST=image/jpeg,image/png,video/mp4

如需禁用白名单验证(允许任何文件类型),可设置:

NUXT_UPLOAD_MIME_WHITELIST_ENABLED=false

重复文件检测

NUXT_UPLOAD_DUPLICATE_CHECK_ENABLED 控制是否在上传时检测重复文件。

NUXT_UPLOAD_DUPLICATE_CHECK_MODE 有三种模式:

skip(跳过模式)- 默认

  • 检测到重复文件时跳过上传
  • 返回现有照片信息,不进行任何操作
  • 适合批量上传时自动去重
NUXT_UPLOAD_DUPLICATE_CHECK_MODE=skip

warn(警告模式)

  • 检测到重复文件时显示警告
  • 继续上传,会覆盖现有照片数据
  • 适合需要更新照片的场景
NUXT_UPLOAD_DUPLICATE_CHECK_MODE=warn

block(阻止模式)

  • 检测到重复文件时拒绝上传
  • 返回 409 错误,不允许覆盖
  • 适合严格防止重复的场景
NUXT_UPLOAD_DUPLICATE_CHECK_MODE=block

完全禁用检测

NUXT_UPLOAD_DUPLICATE_CHECK_ENABLED=false

注意事项

  • 重复检测基于文件名,不基于文件内容
  • 相同文件名会生成相同的 photoId
  • 即使禁用检测,上传同名文件仍会覆盖现有数据(数据库使用 onConflictDoUpdate
  • 建议使用唯一的文件名(如添加时间戳)来避免冲突

Released under the MIT License.