1.介绍
Demo : https://nav.cpcp.cc.cd/
2.部署
第一步:注册登录Cloudflare账号
Cloudflare官网:https://dash.cloudflare.com
第二步:Fork Navihive 开源项目
前往 Navihive 的 GitHub 官方仓库 https://github.com/zqq-nuli/Cloudflare-Navihive 。点击页面右上角的 “Fork” 按钮,将该项目完整复制到你自己的 GitHub 账号下。这是你进行后续操作的基础。
第三步:修改 README 文件
在 Github 仓库中把 README 文件中的 Deploy to Cloudflare 按钮跳转链接更换成自己的。
第四步:一键部署
点击 Deploy to Cloudflare 按钮一键部署到 Cloudflare Workers 上。
第五步:修改用户名和密码
密码处需填写bcrypt 哈希值(非明文)
- 访问 https://bcrypt-generator.com/
- 输入你的密码(比如 admin123)
- 生成类似 $2a$12$Q9X8hY5JkLmNpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYz 的字符串
- 把这个完整的哈希值填入 AUTH_PASSWORD 中
第六步:设置D1数据库
进入 D1 SQL Database(D1 SQL 数据库),找到你的数据库,点击 Console(控制台) 标签,执行以下 SQL 语句创建表:
CREATE TABLE IF NOT EXISTS groups (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
order_num INTEGER NOT NULL,
is_public INTEGER DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS sites (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_id INTEGER NOT NULL,
name TEXT NOT NULL,
url TEXT NOT NULL,
icon TEXT,
description TEXT,
notes TEXT,
order_num INTEGER NOT NULL,
is_public INTEGER DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (group_id) REFERENCES groups(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS configs (
key TEXT PRIMARY KEY,
value TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO configs (key, value) VALUES ('DB_INITIALIZED', 'true');
CREATE INDEX IF NOT EXISTS idx_groups_is_public ON groups(is_public);
CREATE INDEX IF NOT EXISTS idx_sites_is_public ON sites(is_public);
第七步:新建 wrangler.jsonc 文件
在 Cloudflare 部署成功后,Github 中会新增一个 navihive(你自己命名的)仓库。在里面新建 wrangler.jsonc 文件,输入以下代码:
注意:
把里面的 database_id 替换成你自己的 数据库ID,否则会出错
/**
* For more details on how to configure Wrangler, refer to:
* https://developers.cloudflare.com/workers/wrangler/configuration/
*/
{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "navihive",
"main": "worker/index.ts",
"compatibility_date": "2025-04-05",
"assets": {
"not_found_handling": "single-page-application"
},
"observability": {
"enabled": true
},
"keep_vars": true,
// D1数据库绑定
"d1_databases": [
{
"binding": "DB",
"database_name": "navigation-db",
"database_id": "f91476e6-b9c4-4b06-8d88-5caedf51c628" //替换成你自己的数据库ID
}
],
"vars": {
"AUTH_ENABLED": "true"
}
}

评论 (0)