# 激光材料数据平台 用于手动录入和管理激光雕刻参数、材料物理特性及实验结果的响应式网站。电脑和手机共用一套页面,包含登录、三级权限、数据校验、审计日志、备份与恢复。 录入时可上传成品图,手机上支持直接调起相机拍照,图片在浏览器内压缩后入库;查看数据详情时可以放大预览。 管理员可在运行期间添加扩展数据字段,配置必填/可选、公开性、排序、单位和输入形式。字段配置修改或停用不会删除历史数据。 系统入口: - `/`:公开数据看板,无需登录。 - `/entry`:四位 Key 验证后的专用数据录入面板。 - `/admin`:登录后的管理后台。 ## 一键部署(推荐) 要求:Docker Desktop 或 Docker Engine + Compose。 macOS / Linux 可直接执行: ```bash ./start.sh ``` 脚本会自动生成安全配置、启动 Docker Desktop、构建服务、等待健康检查并打开浏览器。已有 `.env` 和数据库不会被覆盖。 也可以手动部署: ```bash cp .env.example .env # 编辑 .env,务必修改 APP_SECRET、ADMIN_PASSWORD,并增加 POSTGRES_PASSWORD docker compose up -d --build ``` 浏览器打开 `http://服务器地址:5980` 查看公开数据;管理登录地址为 `/login`。端口可通过 `.env` 的 `APP_PORT` 修改。首次登录使用 `.env` 中的 `ADMIN_USERNAME` / `ADMIN_PASSWORD`,系统会提示修改初始密码。 如果服务器无法访问官方 PyPI,可在 `.env` 设置可访问的内部镜像,例如 `PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple`,然后重新执行 `docker compose up -d --build`。 停止服务:`docker compose down`。查看日志:`docker compose logs -f web`。数据存放在 Docker 的 `postgres_data` 卷,备份文件在项目的 `backups/` 目录。 ## 本地开发 ```bash python3 -m venv .venv .venv/bin/pip install -r requirements-dev.txt cp .env.example .env .venv/bin/python run.py ``` 默认使用 `data/laser_data.db`(SQLite),适合单机开发;正式部署使用 Compose 中的 PostgreSQL 17。 ## 文档 - [完整操作手册](docs/操作手册.md) - [数据库与接口文档](docs/数据库接口文档.md) - 服务启动后可访问 `/docs` 查看可交互 OpenAPI 文档,访问 `/openapi.json` 获取机器可读定义。 ## 角色 | 角色 | 查看 | 新增/编辑 | 删除 | 用户/备份/审计 | |---|---:|---:|---:|---:| | `admin` 管理员 | ✓ | ✓ | ✓ | ✓ | | `uploader` 录入员 | ✓ | ✓ | — | — | | `viewer` 只读用户 | ✓ | — | — | — |