Contents
准备工作
-
注册 Heroku 账号
Heroku是一个支持多种编程语言的云平台,可以注册一个免费账户使用云应用以及数据库。
-
安装依赖
-
安装 Heroku cli
参考即可安装 CLI 工具,安装 CLI 工具后运行
heroku login
即可登录你的 heroku 账户。
-
安装 git
部署代码需要使用 git,因此还需要向系统添加 git。https://git-scm.com/downloads
-
安装 postgresql 客户端
管理 postgresql 需要安装本地客户端,可以直接安装最新版本 https://www.postgresql.org/download/。安装时只需要 CLI 工具即可。安装完成后需要向环境变量添加 postgresql 客户端。https://devcenter.heroku.com/articles/heroku-postgresql#local-setup
-
新建 Heroku app
选择一个 app 名称,并选择运行的节点创建新的 app
添加 Heroku Postgresql 到 app
如图所示,搜索并添加 Heroku Postgresql
初始化 Postgresql
saucenao-search-tgbot 不包含对数据库的初始化功能,因此需要运行命令创建一个表。
首先在数据库的 Settings 中找到 URI
复制该 URI,Linux 中运行 export DATABASE_URL=URI
,在 Windows 中运行 set DATABASE_URL=URI
随后运行 heroku pg:psql -c "CREATE TABLE userdata (uid VARCHAR(20),min_similarity int,max_result_count int);" --app APPNAME
创建数据表。
部署 Heroku 代码
上述工作完成后即可部署代码到 Heroku。
首先克隆项目
git clone https://github.com/amefs/saucenao-search-tgbot
进入代码所在文件夹,运行如下命令设置上游
heroku git:remote -a APPNAME
准备好 .env
文件:
SAUCENAO_APIKEY= TG_TOKEN= WEBHOOK_URL= DEBUG=saucenao-tg:* DB_TYPE=pg DB_URL= MINIUM_SIMILARITY=50 MAX_RESULT_COUNT=3
-
SAUCENAO_APIKEY
可以在 https://saucenao.com/user.php?page=search-api 获取 api key。 -
TG_TOKEN
在 Telegram BotFather 新建 bot 时可以获取。 -
WEBHOOK_URL
是你的 app URL(https://your-app-name.herokuapp.com) -
DB_URL
是上一步在 Settings 中得到的 URI
接着注释掉 .gitignore
中所有的 .env
在部署到 Heroku 之前,你需要运行如下指令:
heroku config:set NPM_CONFIG_PRODUCTION=false YARN_PRODUCTION=false
这将会禁用 Herku deploy 的自动修建功能,这将会保留 devDependencies,这个机器人的代码需要 devDependencies 中 tsc 的支持。
最后推送并部署项目
git add . git commit -am "get start" git push heroku master
上述步骤顺利的话就可以通过 bot 搜索图片源了。