pastebin-worker部署教程
pastebin-worker是一个非常好用的在线分享工具,利用大善人cloudflare的免费额度,可以非常方便的在朋友之间分享文件和文本内容。
一、准备工作
安装node及相关工具,如果以下命令报错,可能是权限不够,请在前面带上
sudo
- 更新node
更新node至最新版本
$ nvm install node
Downloading and installing node v23.6.1...
Downloading https://nodejs.org/dist/v23.6.1/node-v23.6.1-linux-x64.tar.xz...
################################################################################################################### 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v23.6.1 (npm v10.9.2)
查看是否更新
$ node -v
v23.6.1
- 更新npm
更新npm至最新版本
npm install -g npm@11.0.0
removed 11 packages, and changed 39 packages in 2s
24 packages are looking for funding
run `npm fund` for details
查看是否更新至11.0版本
$ npm -v
11.0.0
- 安装yarn
npm install -g yarn
- 安装wrangler
wrangler是cloudflare专有工具,用于部署代码
npm install wrangler -g
二、配置pastebin-worker
- 克隆仓库
克隆pastebin-worker至本地或者vps上;
git clone https://github.com/SharzyL/pastebin-worker.git
- 创建KV数据ID
登录cloudflare后,在左侧菜单:Storage & Databases --> KV 中,点击create,创建一个Create a namespace,复制ID。
- 修改配置文件
修改仓库的wrangler.toml文件,主要修改以下几项:
[[routes]]
# Refer to https://developers.cloudflare.com/workers/wrangler/configuration/#routes
pattern = "f.bytetoy.net" #将要绑定的域名(二级域名也可以)
custom_domain = true
[[kv_namespaces]]
binding = "PB" # do not touch this
id = "cc398e983a234aa19de5ea6af571a483" # KV仓库的ID,替换为自己的
[vars]
# must be consistent with your routes
BASE_URL = "https://f.bytetoy.net" #域名地址
[vars.BASIC_AUTH]
root = "root2024" #登录帐号和密码(上传文件需要先登录),额外增加的配置(原配置文件无此项)
三、编译和部署
- 编译
yarn install
- 登录cloudflare
登录的时候,需要先把链接复制到本地浏览器进行授权; 然后会跳转至一个localhost的地址,复制链接地址,在vps上使用curl登录授权,然后才会出现登录成功的提示。
yarn wrangler login
yarn run v1.22.22
$ /home/hotpod/github/pastebin-worker/node_modules/.bin/wrangler login
⛅️ wrangler 3.32.0 (update available 3.105.0)
--------------------------------------------------------
Attempting to login via OAuth...
Opening a link in your default browser: https://dash.cloudflare.com/oauth2/auth?response_type=code&client_id=54d11594-84e4-41aa-b438-e81b8fa78ee7&redirect_uri=http%3A%2F%2Flocalhost%3A8976%2Foauth%2Fcallback&scope=account%3Aread%20user%3Aread%20workers%3Awrite%20workers_kv%3Awrite%20workers_routes%3Awrite%20workers_scripts%3Awrite%20workers_tail%3Aread%20d1%3Awrite%20pages%3Awrite%20zone%3Aread%20ssl_certs%3Awrite%20constellation%3Awrite%20ai%3Aread%20offline_access&state=jGtEBn~mOL5jxMHM1iGWB_A_CfGsq70u&code_challenge=gZ98dlzmv_ChJ_Fl1rEZqUVb4x1j421FB1HJuahK_uc&code_challenge_method=S256
Successfully logged in.
Done in 42.44s.
复制以上链接至本地浏览器登录授权,会redirect至一个本地链接,在vps上用curl登录,链接比较场,建议使用''包裹起来。
curl 'http://localhost:8976/oauth/callback?code=v4Y25eH24g7PVOikbhZ5CZf5DNFPqVdTYWShQlQSZak.dX3noUPwYMsfH_zLun_NWXRdhXZ6_Y8AUD4j_kBHyYQ&scope=account%3Aread%20user%3Aread%20workers%3Awrite%20workers_kv%3Awrite%20workers_routes%3Awrite%20workers_scripts%3Awrite%20workers_tail%3Aread%20d1%3Awrite%20pages%3Awrite%20zone%3Aread%20ssl_certs%3Awrite%20constellation%3Awrite%20ai%3Aread%20offline_access&state=jGtEBn~mOL5jxMHM1iGWB_A_CfGsq70u'
- 部署
部署成功后,会有配置提示
yarn deploy
yarn run v1.22.22
$ wrangler deploy
⛅️ wrangler 3.32.0 (update available 3.105.0)
--------------------------------------------------------
Your worker has access to the following bindings:
- KV Namespaces:
- PB: 6cc398e983a234aa19de5ea6af571a483bfe
- Vars:
- BASE_URL: "https://f.bytetoy.net"
- BASIC_AUTH: {
"root": "root9527",
"REPO": "https://github.com/SharzyL/pastebin-worker",
"FAVICON": "https://sharzy.in/favicon-32x32.png",
"TOS_MAINTAINER": "Byte Library",
"TOS_MAIL": "me@bytetoy.net",
"CACHE_STATIC_PAGE_AGE": 7200,
"CACHE_PASTE_AGE": 600
}
Total Upload: 537.02 KiB / gzip: 116.52 KiB
Uploaded pb (2.53 sec)
Published pb (1.93 sec)
f.bytetoy.net (custom domain)
Current Deployment ID: 201f264d-0134-4648-ac7a-b4c03c506d5a
Done in 6.33s.