Skip to content

界面与路由 ​

前端按角色分离为三套界面,并内置安装向导:

路径面向说明
/所有访客公开首页:品牌页 + 图片上传(拖拽/点击/访客可用)+ 图片广场预览 + 登录/用户中心入口
/user/*普通用户用户中心:我的图片、图片处理、相册、图片广场、分享、令牌、套餐、工单、账号设置
/admin/*管理员管理控制台:仪表盘、用户管理、图片广场、站点内容、角色策略、计费管理、存储配置、系统设置、邮件日志
/login所有普通用户登录 / 注册
/admin/login管理员管理员独立登录页
/install所有安装向导(仅在未安装时可访问)

登录后按角色跳转:普通用户进入 /user,管理员进入 /admin;普通用户访问 /admin/* 会被重定向到 /user,未登录访问 /admin/* 会被导向独立的 /admin/login。管理员可从控制台侧边栏底部或右上角账号菜单进入用户中心 /user;处于用户中心时,同一位置提供「管理控制台」入口返回 /admin。

Guest 访客 ​

系统内置 Guest 访客 角色组(更小的配额与上传体积,且默认关闭广场、分享、令牌等功能)。当 auth.allow_guest_upload 为 true 时,未登录访客可在首页上传,此时按 Guest 角色组的策略限流与限量。

为避免所有陌生访客共用一个配额池而被迅速耗尽,访客采用按浏览器隔离的身份:

  • 首次上传时,服务端为访客创建一个独立的 Guest 账户并下发签名 cookie(axmipic_guest,HttpOnly);同一浏览器后续上传复用该账户,各自独立享有 guest_quota_mb 配额。
  • 更换 cookie 会得到新账户,因此另设按 IP 的窗口配额 auth.guest_ip_quota_mb(默认窗口 24 小时,0 表示不限):同一客户端 IP 在窗口内的访客上传总量超过该值即被拒绝(HTTP 429)。它可防止通过反复更换 cookie 绕过每访客配额。
  • 访客账户不出现在「用户管理」中,也不计入用户数统计;后台任务会定期清理过期的 IP 用量记录与未使用的空访客账户。

说明:内置的历史 guest 账户仅用于兼容与匿名只读接口的策略解析,匿名上传不再使用它。调整 Guest 组配额请到「运营 → 角色策略」的 Guest 访客组,改后关联账户的配额会自动同步。

安装向导 ​

启动时若 install.lock_file(默认 ./data/install.lock)不存在,则视为未安装:除 /install 外的所有前端路由都会跳转到安装向导,管理员与角色组的播种也会被跳过。向导完成后会:

  1. 校验并连接数据库、运行迁移;
  2. 创建管理员账户;
  3. 播种默认角色组与 Guest 访客 角色组;
  4. 创建内置 guest 账户;
  5. 写入配置文件与 install.lock。

锁文件存在即视为已安装,访问 /install 会自动跳回首页。要重新安装,删除 install.lock(及数据库)后重启即可。相关接口:

方法路径说明
GET/api/v1/install/status安装状态(无需登录)
POST/api/v1/install执行初始化(无需登录)

设置 install.disabled: true 可完全跳过安装检查(适用于测试与容器编排)。

安全提示:未安装时 POST /api/v1/install 需要携带安装令牌(请求头 X-Install-Token)。未显式配置 install.token 时,服务启动会生成一个随机令牌并在日志中以 install_token 字段输出,需在安装页面填写后才能完成初始化,从而避免实例在初始化前被他人抢先接管。也可配置 auth.bootstrap_admin 跳过安装向导。

基于 MIT 许可证发布