# fncgi **Repository Path**: bsxbl/fncgi ## Basic Information - **Project Name**: fncgi - **Description**: go语言开发的高性能飞牛os cgi程序 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-09 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fncgi - 飞牛OS应用开发高性能CGI程序 专为飞牛OS (fnOS) 应用开发设计的高性能 CGI 代理程序,通过 Unix Socket 与后端服务通信。 ## 特性 - 高性能 Unix Socket 通信 - 支持静态文件服务(自动识别 MIME 类型) - 支持 Linux/macOS 的 amd64/arm64 架构 - 支持文件上传/下载 - 支持 GET/POST 等 HTTP 方法 ## 项目结构 ``` fncgi/ ├── cgi/ # CGI 程序源码 │ ├── main.go # 入口 │ ├── static.go # 静态文件服务 │ └── proxy.go # 后端代理 ├── example/ # Go 后端示例 ├── scripts/ # 构建和运行脚本 └── build/ # 构建输出目录 ``` ## 快速开始 ```bash # 构建 sh scripts/build.sh # 开发模式运行 sh scripts/run_dev.sh # 访问 http://localhost:8080 ``` ## 构建产物 | 文件 | 说明 | |------|------| | app-linux-amd64.cgi | Linux x86_64 (fnOS) | | app-linux-arm64.cgi | Linux ARM64 | | app-darwin-amd64.cgi | macOS x86_64 | | app-darwin-arm64.cgi | macOS ARM64 | ## 使用方式 ### 1. 部署 CGI 程序 飞牛OS 通常是 AMD64 架构,可以复制 `app-linux-amd64.cgi` 到 `app/ui`目录 ### 2. 启动后端服务 后端服务需监听 Unix Socket,可通过环境变量 `FNCGI_SOCKET_PATH` 自定义。 例如:`FNCGI_SOCKET_PATH=/tmp/backend.sock` 可以在`.cgi`同级目录下使用`.env`文件配置环境变量 ## 环境变量 | 变量 | 默认值 | 说明 | |------|--------|------| | FNCGI_SOCKET_PATH | /tmp/backend.sock | Unix Socket 路径 |