Files
gitea-pages/README_zh.md

65 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# gitea-pages
> 新一代 Gitea Pages替换之前的 `caddy-gitea-proxy`
**此项目是 Dragon's Zone HomeLab 的一部分**
本项目致力于提供高性能、安全且可扩展的 Gitea Pages 服务。
**注意**:此项目已经被完全重构,不兼容 `0.0.1` 版本升级
## 特性
- [x] **高性能**: 采用 JS 预编译缓存和高效的异步 Promise 处理机制。
- [x] **安全**: 内置模板和文件访问的路径穿越保护。
- [x] **内容缓存**: 多级元数据和二进制内容缓存。
- [x] **CNAME**: 支持自定义域名。
- [x] **模板引擎**: 安全的模板渲染,支持 `load` 动态加载。
- [x] **可编程**: 使用 JavaScript (Goja) 编写自定义路由逻辑。
- [x] **反向代理**: 支持将请求代理到后端服务。
> [!WARNING]
> **安全提示**: 本项目设计用于自托管或私有环境。它不对 CNAME 别名进行域名所有权验证。在多用户环境中,用户可能会通过在 `.pages.yaml` 中声明他人域名来实施“劫持”。
## Get Started
安装 `go1.25` 或更高版本,同时安装 `Make` 工具 ,然后执行如下命令:
```bash
make gitea-pages
```
之后可使用如下命令启动
```bash
./gitea-pages -conf config.yaml
```
具体配置可查看 [`config.yaml`](./config.yaml)。
### Page Config
在项目的 `gh-pages` 分支创建 `.pages.yaml`,填入如下内容
```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](./LICENSE)