Skip to content
forked from VaalaCat/vorker

VVorker is a self host cloudflare worker alternative which built with cloudflare's workerd. Support plug-and-play database, object storage and KV storage.

Notifications You must be signed in to change notification settings

dicarne/vvorker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VVorker

VVorker 是一个简单强大的自部署 Cloudflare worker 替代系统。本项目基于 Cloudflare Workerd ,并在 Vorker 的基础上进行改进。由于比 Vorker 多一点功能,因此本项目的名称为 VVorker。由于根据个人需求进行一定程度的魔改,因此难以向上游提交。

特色

  • 用户鉴权及多租户支持
  • 使用 API 控制
  • 基于域名或路径的多 Workers 路由
  • 简单的在线UI,用于配置资源及代码
  • 分布式多节点支持
  • litefs(HA) 支持(实验性)
  • 基于 PostgreSQL 的结构化数据库支持
  • 基于 Redis 的 KV 缓存支持
  • 基于 Minio 的对象存储支持
  • 快速绑定内部数据库资源而无需管理AccessKey与SecretKey,即插即用
  • 全局日志收集
  • 性能与状态监控
  • 命令行工具vvcli快速部署 Worker
  • 打包某个服务及其所有依赖,用于迁移到其它系统
  • 对 SQL 的变更支持(当前可以自行创建表,但没有比较自动化的流程)
  • Worker 版本控制,包括灰度发布与测试分支
  • Worker Debugging
  • Cloudflare Durable Objects (实验性)

使用方法

控制面板:http://localhost:8888/admin

发出请求:

curl localhost:8080 -H "Host: workername.yourdomain.com" # replace workername with your worker name

curl  https://workername.yourdomain.com # replace workername with your worker name

curl localhost:8080 -H "Server-Host: workername.yourdomain.com" # replace workername with your worker name

通过环境变量进行配置,可以查看env.go文件了解更多信息。

安全性

本项目拥有一定的安全性,但由于主要目标是内部网络组网,而非 Cloudflare Workers 那样面向全球开发者服务,因此内部安全措施旨在防止开发者误用而非阻止开发者进行攻击。SQL 与 OSS 等数据库、用户、桶将会自动创建并赋予对应权限,KV 则仅通过Key前缀进行区分。考虑到内部网络的特殊性,Cloudflare Workers 默认只允许互联网访问的策略不太合适(内网服务全是本地地址),因此本项目默认开放一切网络访问权限(未来根据需要可能会提供配置方式)。

在设计上,目标内部网络不同服务器间仅有若干端口开放,其他节点无法直接连接数据库,因此数据库只会暴露在主节点中,子节点将通过代理访问数据库。

Worker 开发

由于本项目基于 Workerd 生态,因此使用wrangler几乎是唯一选择(除非是非常简单的代码)。

使用 Cloudflare wrangler

以下是一些常用命令。

输出打包后的代码:

wrangler deploy --dry-run --outdir dist

dist/index.js应该包含所有你的代码,将其拷贝到 VVorker 中的代码编辑区即可,点击保存后自动生效。

Screenshots

  • Admin Page

  • Worker Editor

  • Worker Config

  • Agent Status

  • Worker Execution

其他

感谢 Vorker 项目提供的良好基础!是一个我看得懂的好项目。

感谢 AI 提供的代码补全,在 GO 语言上工作良好,80%+ 代码由 AI 生成,请原谅其中的废话注释。

About

VVorker is a self host cloudflare worker alternative which built with cloudflare's workerd. Support plug-and-play database, object storage and KV storage.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 62.5%
  • TypeScript 20.0%
  • Cap'n Proto 11.9%
  • JavaScript 3.7%
  • Dockerfile 1.8%
  • Batchfile 0.1%