OpenLucky Vibe 项目

Vibe Coding 自建 NAS DDNS / 反向代理 / 证书面板(Rust + React + HTTP/3)

项目简介

OpenLucky 是一款专为 NAS 和家庭服务器设计的 "DDNS + 反向代理 + 证书管理" 一站式面板,作者自述以 Vibe Coding 方式独立完成。原项目 Lucky 后续版本闭源(源码停在 1.4.10),作者参考其使用场景与交互设计,从零用 Rust 重写后端、React 重写前端,SQLite 配置存储,MIT 协议开源,可 Docker 一键部署到 QNAP / Linux NAS。

核心功能

  1. 多云 DDNS:支持 Cloudflare、阿里云 DNS、腾讯云 DNSPod 三大主流 DNS 提供商,IPv4 / IPv6 双栈、公网探测 / 网卡 / 指定 IP、冲突保护。
  2. 反向代理 + HTTP/3:HTTP/1.1、HTTP/2、QUIC HTTP/3 全协议支持,流式上传下载、WebSocket、Headscale Upgrade 头转发。
  3. 服务配置:HTTP / HTTPS 访问策略、TLS 最低版本、上游协议(含 h2c)、超时、HTTPS 跳转、Host 保留。
  4. 证书自动化:Let's Encrypt DNS-01 与通配符、自动续期、PEM 导入、动态 SNI、证书私钥匹配校验。
  5. 分组与统计:自定义服务分组、批量归组、筛选折叠、分组访问统计与日志、概览 / 服务详情联动。
  6. 可观测性:访问 / 错误日志、小时趋势、CPU / 内存采样、独立限容存储与丢弃计数。
  7. 运维与备份:一次性初始化、加密凭据、会话管理、配置版本校验、加密备份、SQL 迁移、发布快照与失败回滚。
  8. QNAP 一键部署:./.myself/build-and-deploy-qnap.sh 自动 SSH 上传镜像 + 健康检查 + 失败回滚。

技术实现

后端使用 Rust 语言 + Axum 框架 + Tokio 异步运行时。Rust 的内存安全与高并发能力非常适合家庭服务器 7×24 小时运行的代理 / DDNS 服务。配置存储使用 SQLite,无外部数据库依赖,单管理员单实例的自托管场景足够。HTTP/3 是真实可用的 QUIC 服务端,按服务启用,需要有效证书和可达的 UDP 端口;既有配置升级后继续走 HTTP/1.1 + HTTP/2。

前端使用 React + TypeScript + Tailwind CSS + shadcn/ui 现代前端组合,Tailwind 提供原子化样式,shadcn/ui 提供 Radix 风格的高质量组件库,配置表单可声明式搭建。

Docker 镜像基于 Linux amd64,提供 ARM 开发机 buildx 跨盘构建能力。OpenLucky 自动化运维脚本基于 SSH + Docker + QNAP Container Station,默认 SSH 别名 nas,首次发布前需在 NAS 上配置 runtime.env 文件。协议支持矩阵明确不含原始 TCP / UDP 端口转发、HTTP/2 / 3 Extended CONNECT、多人 RBAC 与 OAuth,功能边界透明。

快速上手

  1. 克隆与构建: git clone https://github.com/yunhungo/x-open-lucky.git && cd x-open-lucky && docker buildx build --platform linux/amd64 --load --build-arg BUILD_SHA="$(git rev-parse HEAD)" -t openlucky:local .
  2. 创建数据卷: docker volume create openlucky-data
  3. 启动容器: docker run -d --name openlucky --restart unless-stopped -p 127.0.0.1:56002:56002 -p 58081:58081 -p 58444:58444 -p 58444:58444/udp -v openlucky-data:/data openlucky:local
  4. 初始化管理员: 访问 http://127.0.0.1:56002,`docker exec openlucky cat /data/setup-token` 读取初始密钥,在页面创建管理员。
  5. 配置 DDNS: "DNS 凭据" 中保存 Cloudflare / 阿里云 / DNSPod 凭据,创建 DDNS 任务。
  6. 签 SSL: "SSL 证书" 中申请 Let's Encrypt 证书或导入 PEM。
  7. 建 Web 服务: 填域名 / 上游地址 / 证书 / 接入协议,域名解析到入口地址后开始服务。

适用人群

  • 自托管 / NAS 用户,需要 HTTPS + 反向代理的可视化面板
  • 习惯 Lucky 但希望继续用开源版本的技术玩家
  • 拥有 QNAP / Linux NAS + 公网 IP,需要证书自动续期的家庭服务器玩家
  • 对 Rust + React 现代技术栈感兴趣,想看独立作品代码组织的开发者
  • 想要 HTTP/3 真 QUIC 实控落地、又不想接 nginx 高级配置的家庭网络爱好者

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论