界面与路由
前端按角色分离为三套界面,并内置安装向导:
| 路径 | 面向 | 说明 |
|---|---|---|
/ | 所有访客 | 公开首页:品牌页 + 图片上传(拖拽/点击/访客可用)+ 图片广场预览 + 登录/用户中心入口 |
/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 外的所有前端路由都会跳转到安装向导,管理员与角色组的播种也会被跳过。向导完成后会:
- 校验并连接数据库、运行迁移;
- 创建管理员账户;
- 播种默认角色组与
Guest 访客角色组; - 创建内置
guest账户; - 写入配置文件与
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跳过安装向导。