配置参考

PicFast 支持两种配置方式:config.yamlPICFAST_ 前缀的环境变量。环境变量始终优先于 YAML 配置。

完整示例(config.yaml)

server:
  port: 8080
  base_url: "http://localhost:8080"
  web_dir: ""
  pprof_enabled: false

database:
  url: "postgres://picfast:picfast@localhost:5432/picfast?sslmode=disable"

jwt:
  secret: "change-me-in-production"
  access_ttl: 15m
  refresh_ttl: 168h
  signing_method: "HS256"

storage:
  local_root: "./data/uploads"
  thumbnail_dir: "./data/thumbnails"

mail:
  host: "127.0.0.1"
  port: 1025
  username: ""
  password: ""
  from_email: "noreply@picfast.local"
  from_name: "PicFast"
  encryption: "none"

app:
  name: "PicFast"
  site_description: "PicFast is a modern self-hosted image hosting service."
  favicon_url: ""
  allow_guest_upload: false
  allow_registration: true
  allow_oauth_registration: true
  allow_user_image_processing: true
  skip_image_processing: false
  require_email_verification: true
  audit_upload_logs: false
  user_initial_capacity: 524288000
  guest_capacity_bytes: 10737418240
  default_image_ttl: "0"
  guest_image_ttl: "0"
  admin_email: ""
  admin_password: ""
  moderation_mode: "disabled"
  footer_text_1: ""
  footer_link_1: ""
  footer_text_2: ""
  footer_link_2: ""
  icp_number: ""
  icp_link: "https://beian.miit.gov.cn/"
  psb_number: ""
  psb_link: ""
  analytics_provider: ""
  analytics_config: "{}"

配置项参考

database

Key环境变量类型默认值说明
urlPICFAST_DATABASE_URLstringPostgreSQL 连接串(必填)

server

Key环境变量类型默认值说明
portPICFAST_SERVER_PORTint8080监听端口
base_urlPICFAST_SERVER_BASE_URLstringhttp://localhost:8080服务公开访问地址。验证邮件链接和 ShareX 配置依赖此值,必须设为实际访问域名。
web_dirPICFAST_SERVER_WEB_DIRstring""前端静态文件目录(可选;自动检测 web-dist/web/dist/
pprof_enabledPICFAST_SERVER_PPROF_ENABLEDboolfalse开启 Go pprof 端点(/api/v1/admin/debug/pprof/*,仅管理员可用)

storage

Key环境变量类型默认值说明
local_rootPICFAST_STORAGE_LOCAL_ROOTstring"./data/uploads"本地存储后端的文件根目录
thumbnail_dirPICFAST_STORAGE_THUMBNAIL_DIRstring"./data/thumbnails"缩略图生成目录

jwt

Key环境变量类型默认值说明
secretPICFAST_JWT_SECRETstringchange-me-in-production必填。必须修改。 使用默认值会导致启动时报错。
access_ttlPICFAST_JWT_ACCESS_TTLduration15mAccess token 有效期
refresh_ttlPICFAST_JWT_REFRESH_TTLduration168hRefresh token 有效期(7 天)
signing_methodPICFAST_JWT_SIGNING_METHODstringHS256HS256、HS384 或 HS512

app

Key环境变量类型默认值说明
namePICFAST_APP_NAMEstringPicFast站点名称,显示在页面标题、邮件和 Web UI 中
web_base_urlPICFAST_APP_WEB_BASE_URLstring""登录后用户跳转的前端地址。空时回退到 server.base_url启用 OAuth 时必填。
site_descriptionPICFAST_APP_SITE_DESCRIPTIONstring""Web UI 的 Meta 描述
favicon_urlPICFAST_APP_FAVICON_URLstring""自定义站点图标 URL;空则使用内置默认图标
allow_guest_uploadPICFAST_APP_ALLOW_GUEST_UPLOADboolfalse允许不登录上传
guest_capacity_bytesPICFAST_APP_GUEST_CAPACITY_BYTESint6410737418240所有游客共享的总存储配额(10 GB)
allow_registrationPICFAST_APP_ALLOW_REGISTRATIONboolfalse允许新用户注册。建议创建账号后关闭。
allow_oauth_registrationPICFAST_APP_ALLOW_OAUTH_REGISTRATIONboolfalse允许通过 OAuth/OIDC 登录创建新账户。当邮箱注册关闭但此项开启时,登录页仅显示 OAuth/OIDC 登录入口。
allow_user_image_processingPICFAST_APP_ALLOW_USER_IMAGE_PROCESSINGbooltrue允许用户对单张图片启用压缩 / 水印等处理
skip_image_processingPICFAST_APP_SKIP_IMAGE_PROCESSINGboolfalse跳过所有图片处理,直接保存原始文件。开启后用户图片处理设置会被隐藏且忽略。
max_upload_bytesPICFAST_APP_MAX_UPLOAD_BYTESint6452428800默认单文件上传限制(50 MB),分组级别的限制可覆盖此值
require_email_verificationPICFAST_APP_REQUIRE_EMAIL_VERIFICATIONboolfalse登录前必须验证邮箱。仅在 SMTP 配置正确且可达时生效。
audit_upload_logsPICFAST_APP_AUDIT_UPLOAD_LOGSboolfalse记录所有上传操作到审计日志
user_initial_capacityPICFAST_APP_USER_INITIAL_CAPACITYint64524288000新用户默认存储配额(500 MB)
default_image_ttlPICFAST_APP_DEFAULT_IMAGE_TTLduration0(永不过期)图片默认过期时间(如 24h168h;0 = 永不过期)
guest_image_ttlPICFAST_APP_GUEST_IMAGE_TTLduration0(永不过期)游客上传图片的独立过期时间(0 = 使用 default_image_ttl
admin_emailPICFAST_APP_ADMIN_EMAILstring""admin_password 同时设置后,自动创建管理员并跳过初始化向导
admin_passwordPICFAST_APP_ADMIN_PASSWORDstring""自动创建的管理员账号密码
moderation_modePICFAST_APP_MODERATION_MODEstringdisabled"disabled"(默认关闭)、"manual"(人工审核)
footer_text_1PICFAST_APP_FOOTER_TEXT_1string""可选页脚文字行 1;空则不显示
footer_link_1PICFAST_APP_FOOTER_LINK_1string""可选页脚文字行 1 的链接
footer_text_2PICFAST_APP_FOOTER_TEXT_2string""可选页脚文字行 2;空则不显示
footer_link_2PICFAST_APP_FOOTER_LINK_2string""可选页脚文字行 2 的链接
icp_numberPICFAST_APP_ICP_NUMBERstring""ICP 备案号(适用于在中国大陆托管服务的站点)
icp_linkPICFAST_APP_ICP_LINKstringhttps://beian.miit.gov.cn/ICP 备案链接地址
psb_numberPICFAST_APP_PSB_NUMBERstring""公安备案号
psb_linkPICFAST_APP_PSB_LINKstring""公安备案链接地址
theme_configPICFAST_APP_THEME_CONFIGjson""主题覆盖配置(Logo、配色等),JSON 格式
default_copy_formatPICFAST_APP_DEFAULT_COPY_FORMATstring"markdown"上传页默认选中的复制格式:urlmarkdownhtmlbbcode
copy_templatePICFAST_APP_COPY_TEMPLATEstring""可选的自定义复制模板(如 ![image]({url})
analytics_providerPICFAST_APP_ANALYTICS_PROVIDERstring""""(关闭)、"plausible""umami""ga4""baidu""custom"
analytics_configPICFAST_APP_ANALYTICS_CONFIGjson""各服务商的独立配置(详见「统计分析服务」章节)

oauth

Key环境变量类型说明
providersPICFAST_OAUTH_PROVIDERSarrayOAuth / OIDC 提供商列表。详见 OAuth 文档
providers[].idstring唯一标识(如 "github""keycloak"
providers[].display_namestring登录按钮上显示的名称
providers[].typestring"oidc""github"
providers[].client_idstring提供商的 OAuth Client ID
providers[].client_secretstring提供商的 OAuth Client Secret
providers[].issuerstringtype: oidc 时必填。OIDC issuer URL,用于校验 ID token 的 iss 声明,并默认用于发现端点。
providers[].auth_urlstringOAuth 授权端点。不支持 discovery 时需与 token_urljwks_url 一起配置。
providers[].token_urlstringOAuth token 端点。不支持 discovery 时与 auth_url 一起必填。
providers[].userinfo_urlstringOIDC userinfo 端点。可选,覆盖任意模式下的默认端点。
providers[].scopes[]stringOAuth scopes,默认 [openid, profile, email]
providers[].jwks_urlstringJWKS 端点地址,未填则从 issuer 自动发现
providers[].enabledbool是否启用此提供商

统计分析服务

PicFast 支持接入统计服务来追踪 Web UI 的访问情况。通过 app.analytics_providerapp.analytics_config 进行配置。

plausibledomain(必填),server_url(可选)
umamiwebsite_id(必填),script_url(必填)
ga4measurement_id(必填)
baidusite_id(必填)
customscript_html(原始 HTML/脚本字符串,会注入到每个页面中)

mail

Key环境变量类型默认值说明
hostPICFAST_MAIL_HOSTstring""SMTP 服务器地址
portPICFAST_MAIL_PORTint1025SMTP 端口(587 = STARTTLS,465 = TLS,1025 = 本地 Mailpit)
usernamePICFAST_MAIL_USERNAMEstring""SMTP 用户名
passwordPICFAST_MAIL_PASSWORDstring""SMTP 密码
encryptionPICFAST_MAIL_ENCRYPTIONstringnone"starttls""tls""none"
from_emailPICFAST_MAIL_FROM_EMAILstringnoreply@picfast.local发件人地址;配置 SMTP 时必须填写
from_namePICFAST_MAIL_FROM_NAMEstringPicFast发件人显示名称

关于邮箱验证

默认注册成功后立即登录。如需启用邮箱验证:

  1. 配置 mail.* 为有效的 SMTP 服务器
  2. 设置 app.require_email_verification = true

如果设置了邮箱验证但 SMTP 不可达,系统会退回普通注册流程,并在启动日志中输出警告。

本地开发推荐使用内置的 Mailpit(端口 1025 SMTP / 8025 Web UI),所有邮件都会拦截到本地收件箱,不会真的发到外部邮箱。