当前位置: 首页 > news >正文

AI取名大师 | PM2 部署 Bun.js 应用及配置 Let‘s Encrypt 免费 HTTPS 证书

关于 AI 取名大师

借助豆包通义千问DeepSeek 等 AI 大模型,为您的宝宝、宠物、店铺、网名、笔名、项目、产品、服务、文章等取一个专业、有意义的名字😄。


开源地址:👉GitCode(国内友好)👈、👉GitHub👈
技术组合:Bun.js、Elysia.js、uni-app


环境准备

这里使用的是阿里云的ECS,操作系统为Ubuntu 24.04.1 LTS

安装Bun.js

Bun.js 的安装非常简单,直接执行以下命令即可。

curl -fsSL https://bun.sh/install | bash

如果已经安装过,可以通过bun upgrade进行升级,截至 2025年11月,最新版本为1.3.2

root@app:~# bun -v
1.3.2

安装PM2

如果还没安装 pm2,可以使用 npm i -g pm2 --registry=https://registry.npmmirror.com/ 安装最新版本

应用部署

打包

  1. 进入项目根目录
  2. 执行bun i(仅第一次需要)
  3. 执行bun serve:build,等待结果😄

初始化

创建config.json

config.json是应用的配置文件,可通过 bun ai-naming.js --init 自动创建,可根据实际情况修改配置项

配置大模型

应用使用的是openai SDK,接入大模型前需要配置如下项目:

{"app": {"llmModelId": "模型ID","llmBaseUrl": "模型服务地址","llmApiKey": "模型服务KEY","llmTemperature": 0.7,"llmMaxToken": 500,}
}

模块配置

程序会自动读取同目录下的module.yamlmodule-extend.yaml(如有)文件作为模块数据,示例如下:

# id    - 编号
# name  - 显示的模块名称
# desc  - 模块描述信息,最好不要超过15个字
# price - 模块调用一次消耗的积分/能量,默认 1
# sort  - 模块排序值,越大越靠前,默认 0
# col   - GRID 布局时占据的列数,默认 1
# limit - 模块调用一次生成的名字个数,默认 1
# params- 表单参数
# message 大模型 system 角色提示词
# prompt- 提示词模板
- id: baobaoname: 宝宝desc: 给新生儿攒个响亮代号col: 2price: 1sort: 0limit: 2params:- label: 姓氏required: true
...

按需填写相应的参数即可。

启动🛫

此时,目录的结构如下:

naming
|- ai-naming.js				#应用主程序
|- config.json 				#配置文件
|- module-extend.yaml		#模块扩展
|- module.yaml				#模块配置文件
|- naming.db				#SQLite 数据文件

万事俱备,我们就可以通过 pm2 启动应用啦。

# 使用 bun 启动名为 naming 的应用
pm2 start ai-naming.js --interpreter bun --name naming --cwd /app/naming
# 停止
pm2 stop naming
# 下次可以直接通过名称来启动
pm2 start naming


验证是否运行:

curl http://localhost:10002/common/time
# 如果返回当前时间则运行成功🎉

进阶

经过上述操作,我们的应用可以正常被访问。接下来,我们希望对应用进行安全加固(配套 HTTPS),并支持域名访问(不需要用户记一串 IP 地址😄)。

二级域名

  1. 注册自己的顶级域名
  2. 分配二级域名,例如 https://naming.xxx.com映射到 IP 地址(通常几秒钟就能生效👍)
  3. 配置nginx,将上述二级域名的流量转发到我们的应用
server {listen 443;server_name naming.0604hx.top;include /etc/nginx/conf.d/block.conf;location / {proxy_pass http://localhost:10003;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
}server {if ($host = naming.0604hx.top) {return 301 https://$host$request_uri;}listen 80;server_name naming.0604hx.top;return 404;
}

修改完 nginx 的配置文件后,需要检验下是否有误。

root@app:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

配置HTTPS证书

# 重启 nginx
systemctl restart nginx# 更新证书
certbot certonly --nginx


自此,我们的应用就能通过 HTTPS 协议正常访问啦✌。

http://www.dtcms.com/a/600592.html

相关文章:

  • 结项报告完整版 | Apache SeaTunnel支持metalake开发
  • 【cursor】进阶技巧Rules
  • WebServer05
  • 【数据分析-Excel】常用函数汇总
  • 深入理解MySQL事务隔离级别与锁机制(从ACID到MVCC的全面解析)
  • RabbitMQ应用(1)
  • .NET驾驭Excel之力:Excel应用程序的创建与管理
  • Unity2.5D视角肉鸽项目架构
  • JAVA和C#的语法对比
  • WPS Excel 图表
  • 电商网站开发需要掌握哪些知识技能品牌设计和vi设计有什么区别
  • Spring 框架整合 JUnit 单元测试——包含完整执行流程
  • .NET驾驭Excel之力:自动化数据处理 - 开篇概述与环境准备
  • 多站点网站群的建设与管理识图搜索在线 照片识别
  • C++ builder xe 用imageen组件ImageEnView1合并多个图片导出一个pdf
  • 深度拆解汽车制造系统设计:用 Java + 设计模式打造高扩展性品牌 - 车型动态生成架构
  • 客户端VS前端VS后端
  • 西安企业网站建设哪家好hs网站推广
  • 【宝塔面板】监控、日志、任务与安全设置
  • RPA财务机器人落地指南:治理架构、流程优化与风险防控
  • GitHub Agent HQ正式发布,构建开放智能体生态
  • XML节点SelectSingleNode(“msbuild:DebugType“ 为什么要加msbuild
  • 【GitHub热门项目】(2025-11-12)
  • 【RAG评测方案汇总】GitHub开源工具全览
  • 数据集月度精选 | 高质量具身智能数据集:打开机器人“感知-决策-动作”闭环的钥匙
  • 深圳网站制作易捷网络湘乡网站seo
  • Java Maven Log4j 项目日志打印
  • 面试:Spring中单例模式用的是哪种?
  • 长芯微LPS5820完全P2P替代NCP51820,LPS5820 是一款高速半桥驱动器,可用来驱动半 桥功率拓扑的 GaN 功率管。
  • Python 第三方库:PyTorch(动态计算图的深度学习框架)