# pets **Repository Path**: jilinJL/pets ## Basic Information - **Project Name**: pets - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 宠物二维码记录站(Next.js 全栈) 这是一个可扫码访问的宠物档案网站,适合把宠物详情页二维码刻在狗牌上。 ## 已实现功能 - 宠物列表:展示头像、名称、创建时间 - 宠物详情:基础信息 + 时间轴(支持排序切换) - 二维码展示:直达当前宠物详情页 - 新建宠物:需要邀请码 + 编辑密码 - 编辑鉴权:输入编辑密码解锁后可修改基础信息与事件 - 时间轴事件:支持文本 / 图片 / 视频上传(也兼容 URL) - 首页意见留言:匿名/具名提交建议,写入数据库,便于后续迭代 - 移动端适配:以 `max-w-md` 移动优先布局,同时兼容 PC ## 技术栈 - Next.js App Router(全栈) - Tailwind CSS - SQLite(better-sqlite3) - bcryptjs(编辑密码哈希) ## 本地启动 1. 安装依赖 ```bash npm install ``` 2. 配置环境变量 ```bash cp .env.example .env ``` 至少配置: - `PET_INVITE_CODE`:新建宠物的邀请码 - `AUTH_SECRET`:编辑会话签名密钥(请使用长随机字符串) - `NEXT_PUBLIC_SITE_URL`:站点地址(用于二维码场景建议设置真实域名) 3. 启动开发环境 ```bash npm run dev ``` ## Docker 部署 ### 方式一:docker compose(推荐) ```bash docker compose up -d --build ``` 数据默认保存在宿主机 `./data`(已做 volume 映射)。 - 数据库:`data/pets.db` - 媒体文件:`data/media/**`(宠物头像、事件图片、事件视频) ### 方式二:纯 docker ```bash docker build -t pet-site . docker run -d --name pet-site -p 3000:3000 --env-file .env -v $(pwd)/data:/app/data pet-site ``` ## 关键路由 - `/pets`:宠物列表 - `/create`:新建宠物 - `/pet/[id]`:扫码进入详情页 - `/pet/[id]/edit`:编辑页(密码验证后可修改) - `/media/[...slug]`:媒体文件读取路由(由 `data/media` 提供) - `/api/feedback`:意见留言提交与读取