← 返回后台

婚礼邀请函网站 - 使用说明

项目简介

这是一套完整的婚礼电子邀请函系统,包含前台展示页面和后台管理系统。基于 Next.js 构建,支持全屏翻页浏览、背景音乐、视频播放、祝福留言、RSVP 回复等功能。

开发者: 李连宸

开源地址: https://github.com/lilianchen1991/wedding-invitation

更新日志: https://your-domain.com/changelog

前台地址: https://your-domain.com

后台管理: https://your-domain.com/admin


技术栈

技术用途
Next.js 16全栈框架(SSR + API Routes)
React 19前端 UI
Tailwind CSS 4样式系统
SQLite (better-sqlite3)数据库
JWT + Cookie后台认证
Sharp图片处理
PM2 + Nginx生产环境部署

前台页面模块

邀请函采用全屏翻页(Scroll Snap)设计,从上到下依次为:

模块说明
首页 Hero全屏背景视频 + 新人姓名 + 翻页时钟倒计时
婚礼邀约婚礼邀约视频(支持封面图)
我们的故事时间线展示恋爱经历(出生、相识、订婚等节点,含照片)
甜蜜瞬间横向瀑布流自动滚动照片墙,点击可放大左右切换
婚礼照片正式婚纱照展示
婚礼详情仪式时间(含农历)、地点、交通指引(嵌入 Leaflet 地图 + 三平台导航)
天气预报婚礼地点未来 7 天天气 + 穿衣建议
附近景点自定义推荐景点列表,点击跳转地图或旅游平台
敬请回复 (RSVP)宾客填写出席信息(姓名、亲友类型、人数、电话)+ 一键拨号联系新人
送上祝福祝福留言 + 中国地图点亮可视化 + 发红包功能
关于 LogoLogo 介绍
页脚更新日志入口

后台管理系统

登录

访问 /admin,输入管理密码登录。首次部署默认密码为 admin,登录后请立即修改。

功能模块

后台侧边栏分为四大类:

数据查看

页面功能
仪表盘网站访问统计(PV/UV、趋势图、城市排行、设备分布、近期访问记录)

页面配置

页面功能
婚礼信息新人姓名(含英文名)、联系电话、婚礼日期、仪式地点、交通指引等基础信息
父母邀请函配置新郎方/新娘方/回门宴邀请函(正文、称呼、署名、照片、BGM、日期地点)
Logo 配置上传/更换导航栏 Logo
背景音乐上传音乐文件,切换当前播放曲目
首页视频上传/更换首页全屏背景视频
故事时间轴管理「我们的故事」中各节点文案和照片
婚礼邀约上传婚礼邀约视频 + 封面图配置
甜蜜瞬间上传/排序/删除照片,支持拖拽排序
婚礼照片上传/管理正式婚纱照
收款码配置上传微信收款码 + 配置弹窗文案(需 ICP 备案后方可长按识别)
附近景点自定义婚礼地点附近景点推荐(名称、地址、链接)
分享封面配置微信分享缩略图和文案

收集信息

页面功能
RSVP查看/删除宾客回复(姓名、亲友类型、人数),支持 CSV 导出
祝福留言查看/管理访客祝福留言
地图点亮查看所有点亮城市记录,按类型筛选,支持删除

系统

页面功能
系统配置高德地图 Key、和风天气 Key / API Host、穿衣建议

日常操作指南

修改婚礼信息

1. 进入后台 → 页面配置 → 婚礼信息

2. 修改新人姓名、婚礼日期、仪式地点等

3. 点击「保存」

婚礼日期修改后,前台首页倒计时会自动更新。

上传照片

1. 进入后台 → 甜蜜瞬间(或婚礼照片)

2. 点击「上传照片」选择图片文件

3. 拖拽调整显示顺序

4. 不需要的照片点击删除

更换背景音乐

1. 进入后台 → 背景音乐

2. 上传新的 MP3 文件

3. 点击「设为当前」切换播放曲目

查看 RSVP 回复

1. 进入后台 → RSVP

2. 可查看所有宾客的回复信息(含亲友类型:新郎亲友/新娘亲友)

3. 点击「导出 CSV」可下载完整数据

配置天气预报 & 穿衣建议

1. 进入后台 → 系统配置

2. 填入和风天气 Key(在 [和风天气开发平台](https://dev.qweather.com/) 申请)

3. 填入和风天气 API Host(登录控制台 → 项目管理 → 查看项目 → API Host 栏)

4. 可选:填写穿衣建议文字,会展示在天气卡片中

5. 确保后台「婚礼信息」中已配置婚礼地点经纬度

配置附近景点

1. 进入后台 → 附近景点

2. 点击「+ 添加景点」

3. 填写景点名称(必填)、地址或描述(选填)、链接(选填,可粘贴地图导航/飞猪/去哪儿等链接)

4. 点击「保存」,前台婚礼详情页会自动展示

配置微信分享封面

用于设置微信「发送给朋友」和「分享到朋友圈」时显示的缩略图和文案。

操作步骤:

1. 进入后台 → 分享封面

2. 上传一张封面图片(系统自动压缩为 600×600 正方形 JPEG)

3. 填写分享标题和描述(可选,留空使用默认模板)

4. 保存

生效原理:

系统通过 HTML 的 Open Graph 标签(og:image、og:title、og:description)实现,微信分享链接时会自动抓取页面的 OG 标签作为分享卡片内容。

前置条件:

常见问题:

现象原因 & 解决
更换封面后微信仍显示旧图微信有缓存,等几分钟或用 `?v=2` 参数刷新
发送给朋友有封面,朋友圈没有朋友圈缓存更久,换一个链接参数(如 `?t=1`)或等待
想用 JS-SDK 精确控制分享需要「认证服务号」(订阅号/未认证服务号没有权限),OG 标签方案已足够
封面图太大导致不显示系统上传时已自动压缩,无需手动处理

配置父母邀请函

父母邀请函是独立于主邀请函的简版页面,供父母分享给各自亲友。支持新郎方、新娘方、回门宴三种独立配置。

操作步骤:

1. 进入后台 → 页面配置 → 父母邀请函

2. 切换 Tab 选择「新郎方」「新娘方」或「回门宴」

3. 开启启用开关

4. 配置内容:新人照片、背景音乐(BGM)、正文措辞、称呼、邀请语、父母姓名、署名后缀

5. 回门宴额外配置:独立的日期时间、宴会厅、地址

6. 保存后点击「预览」查看效果

分享链接:

特色功能:

配置收款码(发红包功能)

1. 进入后台 → 收款码配置

2. 上传微信收款码图片

3. 可选:配置弹窗提示文案(如"感谢您的心意 🧧")

4. 上传后,前台祝福区会自动显示「发个红包」按钮

注意:长按识别二维码功能需要网站完成 ICP 备案后才能在微信中使用。

修改管理密码

1. 点击侧边栏底部「修改密码」

2. 输入当前密码和新密码

3. 确认修改


部署说明

服务器环境

部署步骤

项目提供了 deploy.sh 部署脚本,使用前需修改脚本顶部的服务器地址和 SSH 密钥路径:

SERVER="root@your-server-ip"
KEY="~/.ssh/your-key.pem"

然后执行:

bash deploy.sh

脚本自动完成:

1. 本地构建 (npm run build)

2. 上传构建产物到服务器(rsync)

3. 确保服务器端原生模块正常(better-sqlite3, sharp)

4. 重启 PM2 服务

注意事项


本地开发

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建
npm run build

# 启动生产模式
npm start

开发服务器默认运行在 http://localhost:3000


数据存储

所有数据存储在 SQLite 数据库中(data.db),包括:

上传的文件存储在 public/uploads/ 下:


特色功能说明

地图点亮

访客访问网站时,系统通过 IP 自动定位城市并在中国地图上点亮对应位置。地图采用四色光点系统:

背景音乐

采用悬浮黑胶唱片样式播放器,首次进入显示播放提示,支持静音/取消静音切换。

iOS 微信兼容

系统已针对 iOS 微信浏览器做了专项优化:

微信分享

分享封面采用 Open Graph 标签方案(无需 JS-SDK 权限):

技术说明:


常见问题

Q: 忘记管理密码怎么办?

登录服务器,删除数据库中 `settings` 表里 `key = 'admin_password'` 的记录,系统会恢复默认密码 `admin`。

Q: 微信里长按二维码没有"识别"选项?

需要完成网站 ICP 备案。微信会对未备案域名禁用长按识别二维码功能。

Q: 如何备份数据?

登录服务器,复制部署目录下的 `data.db` 文件和 `public/uploads/` 目录即可完整备份。

Q: 页面打开很慢?

检查首页视频文件大小,建议使用 ffmpeg 压缩到 1.5Mbps 以下。图片上传后系统会自动压缩。

Q: 如何修改页面的视觉风格?

修改 `src/app/globals.css` 中的 CSS 变量(颜色、字体等),需要重新部署。

Q: 如何适配自己的婚礼信息?

部署后进入后台「婚礼信息」页面,修改新人姓名、日期、地点等即可,无需改代码。