Files
gitea-pages/README_zh.md

1.8 KiB
Raw Permalink Blame History

gitea-pages

新一代 Gitea Pages替换之前的 caddy-gitea-proxy

此项目是 Dragon's Zone HomeLab 的一部分

本项目致力于提供高性能、安全且可扩展的 Gitea Pages 服务。

注意:此项目已经被完全重构,不兼容 0.0.1 版本升级

特性

  • 高性能: 采用 JS 预编译缓存和高效的异步 Promise 处理机制。
  • 安全: 内置模板和文件访问的路径穿越保护。
  • 内容缓存: 多级元数据和二进制内容缓存。
  • CNAME: 支持自定义域名。
  • 模板引擎: 安全的模板渲染,支持 load 动态加载。
  • 可编程: 使用 JavaScript (Goja) 编写自定义路由逻辑。
  • 反向代理: 支持将请求代理到后端服务。

Warning

安全提示: 本项目设计用于自托管或私有环境。它不对 CNAME 别名进行域名所有权验证。在多用户环境中,用户可能会通过在 .pages.yaml 中声明他人域名来实施“劫持”。

Get Started

安装 go1.25 或更高版本,同时安装 Make 工具 ,然后执行如下命令:

make gitea-pages

之后可使用如下命令启动

./gitea-pages -conf config.yaml

具体配置可查看 config.yaml

Page Config

在项目的 gh-pages 分支创建 .pages.yaml,填入如下内容

alias: # CNAME
  - "example.com"
  - "example2.com"
routes:
  - path: "**"
    js:
      exec: index.js

TODO

  • 支持跨域
  • 支持自定义缓存策略 (http cache-control)
  • OAuth2 授权访问私有页面
  • http01 自动签发证书: 交由 Caddy 完成
  • Web 钩子触发更新: 对实时性需求不大

LICENSE

此项目使用 Apache-2.0