淳渔是一款快速搭建影视类网站的系统,它用户端和服务端都基于nuxt3开发 ,管理端基于 vue3 和 element-ui ,数据库采用 mysql ,缓存采用 redis。
V2相比V1版本使用DrizzleOrm替换了typeOrm,我想你会更容易上手操作。但请注意不支持mysql5.x,建议使用mysql8.x。
- 用户端界面:采用Nuxt3构建,提供流畅的用户体验。
- 管理端界面:基于Vue3和Element-UI,方便管理员进行网站内容的管理和更新。
- 影视评分系统:用户可以对影视作品进行评分和评论。
- 影视榜单:根据影片热度排名,实时展示周榜、月榜、年榜。
- 视频付费观看:支持视频内容的付费观看,为网站提供盈利渠道。
- 短视频:支持短视频的播放,用户可以上传短视频。
考虑到大部分使用者为个人独立开发,Nuxt3也可以开发服务端的功能,所有把之前的NestJS服务端移除了,改用到Nuxt实现。这样就可以不用启动两个Node服务了。
也考虑了是否后续会将后台管理系统也合并,但目前没有计划,、
- 第一,管理端不需要SEO。
- 第二,如何需要集成到一个服务中,完全可以把后台管理系统打包文件移入Nuxt目录中,这样只需要一个服务即可。如下面的部署方式一
- 第三,管理端移入nuxt中,会要消耗大量时间,先把时间用于其他地方,😂。
当然,NestJs有它的优势,也有很多基于它的模块,在有些功能上实现会更方便,如何你喜欢NestJs,可以继续使用之前的版本。
如未安装node
,mysql
数据库和redis
请先自行安装。mysql8.x,redis7。或点击此处服务器环境安装流程
mysql和redis配置你可以到chunyu-cms-web/nuxt.config.ts
进行配置。你也可以创建一个chunyu-cms-web/.env
文件
DATABASE_USERNAME=root
DATABASE_PASSWORD=123456
DATABASE_HOST=127.0.0.1
DATABASE_PORT=3306
DATABASE_DB=chunyu-cms-v2
JWT_SECRET=chunyu-cms-v2
# redis配置
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=
REDIS_DB=0
# 是否演示环境
IS_DEMO_ENVIRONMENT=false
# 服务端域名
SERVER_HOST=http://localhost:3000
# 图片域名
IMG_HOST=http://localhost:3000
# 用户发送邮件的邮箱
FORM_USER_EMAIL=1378151264@qq.com
# 用户发送邮件的邮箱密码 注意此处为qq邮箱的授权码,不是qq邮箱的密码
FORM_USER_EMAIL_PASSWORD=efmogxbvncejffih
# 使用 Gmail 服务,你可以使用其他服务,如 'QQ'
USER_EMAIL_SERVICE=QQ
# 微信支付:直连商户申请的公众号或移动应用appid
WECHAT_PAY_APP_ID=wx8d0f5c0f5c0f5c0f5
# 微信支付:商户号
WECHAT_PAY_MCH_ID=1234567890
# 公钥文件绝对路径
WECHAT_PAY_PUBLIC_KEY=/path/to/apiclient_cert.pem
# 秘钥文件绝对路径
WECHAT_PAY_PRIVATE_KEY=/path/to/apiclient_key.pem
注意: mysql
和redis
的端口号,用户名,密码,数据库名称,jwt加密密钥等配置信息,请自行修改。
- 先到数据库目录下,创建数据库
chunyu-cms-v2
- 导入数据库文件
chunyu-cms-web/chunyu-cms-v2.sql
cd chunyu-cms-web
pnpm install
pnpm dev
启动成功后,请访问:http://localhost:3000
cd chunyu-cms-admin
pnpm install
pnpm dev
启动成功后,请访问:http://localhost:4000, 用户名:admin,密码:admin123
执行以下命令:
node bin/deploy.js
部署完成后可以访问:
管理端:http://localhost:3000/admin/ 用户名:admin,密码:admin123
此方式会把管理端代码拷贝到chunyu-cms-web/admin
目录中,但此方式路由使用的是hash模式。
server {
listen 80;
server_name your.domain.com;
location / {
proxy_pass http://127.0.0.1:3000/;
}
location /uploads {
alias /path/to/chunyu-cms-v2/chunyu-cms-web/uploads;
}
location /admin {
alias /path/to/chunyu-cms-v2/chunyu-cms-web/admin;
}
}
执行以下命令会生成dist
目录,可通过nginx
指定到目录。
cd chunyu-cms-admin
pnpm isntall
pnpm build:prod
cd chunyu-cms-web
pnpm isntall
pnpm build
构建完成后,可通过pm2进行部署,未安装的可执行npm install -g pm2
安装
执行以下命令启动服务:
pm2 start pm2.config.cjs
nginx配置如下:
server {
listen 80;
server_name your.domain.com;
location / {
proxy_pass http://127.0.0.1:3000/;
}
location /uploads {
alias /path/to/chunyu-cms-v2/chunyu-cms-web/uploads;
}
}
server {
listen 80;
server_name your.domain.com;
location / {
root /path/to/chunyu-cms-v2/chunyu-cms-admin/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
}
nginx更详细配置可查看
Nuxt项目部署文档:https://nuxt.com/docs/getting-started/deployment
微信支付库:https://github.com/klover2/wechatpay-node-v3-ts
微信支付开发文档:https://pay.weixin.qq.com/doc/v3/merchant/4012791874