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/安装最新版本
应用部署
打包
- 进入项目根目录
- 执行
bun i(仅第一次需要) - 执行
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.yaml、module-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 地址😄)。
二级域名
- 注册自己的顶级域名
- 分配二级域名,例如
https://naming.xxx.com映射到 IP 地址(通常几秒钟就能生效👍)

- 配置
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 协议正常访问啦✌。
