3.9 KiB
3.9 KiB
呼籁旅行 - 甄选酒店(独立部署版 · 带后台管理)
本目录是 Kimi 版「呼籁旅行 - 甄选酒店」页面的完整复刻 + 内容管理系统。 已移除 Kimi 的 sdk-seed.js(Kimi 外链脚本,即"风险提示"弹窗/水印的来源), 页面本身的功能、文字、图片与样式与原文一致。
功能
- 访客:打开首页直接浏览,无需登录,无任何干扰
- 管理:隐藏入口 + 密码登录,可在后台对以下内容增删改查,保存后所有访客立即看到更新
- 产品线:线路(南线/北线/南北线·满)+ 天数标签(5天4晚/6天5晚/7天6晚…),可增删改排序
- 行程:每天入住的酒店(名称、房型、星级、年份、位置、床型、设施、餐饮)
- 图片:每家酒店 3 张图(房间/外观/设施)、顶部主图,可直接上传替换/删除
- 备选酒店:统一资料库,改一处自动同步到所有线路
- 文字:站点标题、页脚、温馨提示等
- 安全:自动历史备份(50 份)、一键恢复、导入/导出 JSON
目录结构
hulai-travel-site/
├── server.js # 站点服务(零依赖 Node.js,启动它即可)
├── data.json # 全部内容数据(后台维护的就是这个文件)
├── data.seed.json # 初始数据底稿(后台「恢复为初始数据」用)
├── index.html # 访客页面(服务端会注入最新数据)
├── admin.html/admin.js/admin.css # 管理后台
├── assets/ # 前端构建产物(勿改)
├── hotels/ # 154 张酒店图片 + 上传的图片
├── config.json # 首次启动自动生成,保存管理密码(哈希)
├── data-backups/ # 自动生成的历史备份
├── nginx.conf.example # Nginx 反向代理示例(可选)
└── README.md
(运行时还会自动创建 hotels/_trash 图片回收目录)
部署
要求:服务器已安装 Node.js(16 及以上,无任何 npm 依赖)。
-
把整个目录上传到服务器,例如 /www/hulai-travel-site
-
进入目录执行:
node server.js # 直接前台运行 # 或后台常驻(推荐,配合 PM2 / pm2 管理器): pm2 start server.js --name hulai-travel # 或 nohup node server.js > server.log 2>&1 & -
访问 http://服务器IP:3000/ 即可(端口可用环境变量修改:PORT=8080 node server.js)
-
有域名的话,用 Nginx 反向代理到 3000 端口并配置 HTTPS,参考 nginx.conf.example
宝塔面板:选择「Node 项目」或直接 SSH 用 pm2 运行 server.js 即可。
管理入口(隐式,不影响客人)
三种方式任选:
- 访客页面上,连续快速点击页脚文字 5 次 → 自动跳转管理后台
- 直接访问 http://你的域名/admin.html
- 初始密码: qscy2014@@ (登录后可在「站点设置 → 修改管理密码」中修改;密码存在服务器 config.json, 忘记时删除 config.json 并重启服务,密码恢复为初始密码)
日常维护
- 登录后台 → 左侧选择要维护的模块 → 修改 → 点右上角「保存并发布」→ 前台立即生效
- 图片:每个图片位都有「上传 / 移除 / 占位图」按钮,上传前最好压到 2MB 以内
- 误操作:备份与恢复里可一键恢复任意历史版本或初始数据
- 所有修改都会先自动备份,放心改
关于 5 张图片的说明
原 Kimi 服务器上以下图片缺失(404 或 0 字节):百年俄式酒店 3 张、 友谊宾馆 1 张、旺泉宾馆 1 张(原页面这些位置本来就是裂图)。 这里已放置同风格占位图(标有"图片待补充")。有真实照片后, 直接在后台对应酒店处上传替换即可。
本地预览
node server.js
# 打开 http://localhost:3000/ ;管理后台 http://localhost:3000/admin.html