Skip to content

kci-lnk/fn-knock-turborepo

Repository files navigation

fn-knock

官网 文档 Docker Hub Node.js License

fn-knock

fn-knock 是一套用于私有服务暴露场景的访问网关和管理面板,适合部署在 NAS、家庭服务器或 Docker 主机前面。

它把反向代理、登录鉴权、证书、DDNS、白名单、WAF、隧道和运行状态放进同一个面板里,重点解决“服务能安全访问,也方便日常维护”的问题。

链接

主要功能

  • 网关代理:反向代理、认证前置、访问日志、网关配置管理
  • 登录鉴权:管理后台登录、OIDC、Passkey、验证码等认证能力
  • 域名证书:ACME 证书申请、SSL 配置、DDNS 管理
  • 网络安全:IP 白名单、WAF、登录退避、SSH 安全相关配置
  • 隧道集成:Cloudflared、frpc 的配置、启动、日志和状态查看
  • 运维面板:系统监控、在线终端、更新检查、通知和运行日志
  • 多形态发布:Docker 镜像、飞牛 FPK、本地开发打包脚本

快速开始

直接使用镜像:

docker pull kcilnk/fn-knock:latest

完整 Docker Compose 部署方式见 deploy/docker/README.md,推荐线上环境按文档配置数据卷、端口和 IPv6 网段。

本地开发:

npm install
npm run dev

构建与检查:

npm run build
npm run check-types
npm run lint

# 全部构建
FN_KNOCK_FORCE_ARTIFACT_REBUILD=1 bun run fn-knock:deploy-all

仓库结构

路径 说明
apps/server-admin-rs Rust 管理后端服务
apps/server-admin-view Vue 管理后台
apps/server-auth-view 认证页前端
apps/fn-knock 飞牛 FPK 打包目录
apps/fn-knock-docker Docker 版 FPK 打包目录
deploy/docker Docker 镜像、Compose 和发布脚本
packages/admin-shared 管理端共享组件
packages/frontend-core 前端共享 API、认证和工具代码
packages/ui-vue Vue UI 基础组件

常用命令

命令 用途
npm run dev 启动开发服务
npm run build 构建全部应用和包
npm run check-types 类型检查
npm run lint 运行 lint
npm run fn-knock:assemble-runtime 组装共享运行时目录
npm run fn-knock:build-package 构建 FPK 打包目录
npm run fn-knock:deploy 构建、远端打包并部署 FPK
npm run fn-knock:docker:build 本地构建 Docker 镜像
npm run fn-knock:docker:up 启动本地 Docker 环境
npm run fn-knock:docker:hub-publish 发布 Docker Hub 镜像

开发提示

  • 需要 Node.js >= 18,仓库使用 npm workspace 和 Turborepo。
  • FPK / Docker 打包会读取 Go-Reauth-Proxy 的网关二进制;默认查找相邻目录 ../Go-Reauth-Proxy,也可以通过 FN_KNOCK_GO_REAUTH_PROXY_DIR 指定路径。
  • 远端部署脚本带有本地开发默认值,正式使用前请按自己的机器修改 FN_KNOCK_REMOTE_HOSTFN_KNOCK_DOCKER_REMOTE_HOST 等环境变量。

支持项目

如果 fn-knock 对你有帮助,可以请作者喝杯咖啡,支持项目继续维护。

赞助二维码

License

MIT

About

敲门Knock - 一站式公网鉴权集成方案

Topics

Resources

License

Stars

102 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors