# Gitea Pages [English (Google TR)](./README_en.md) | 中文 > 参照 Github Pages 实现的 Gitea Pages ## 安装说明 此处需要用到 `xcaddy` 工具,使用如下命令生成 Caddy 执行文件, 如果 `xcaddy` 不存在,需先前往 [caddyserver/xcaddy](https://github.com/caddyserver/xcaddy/releases) 安装 `xcaddy`, 同时安装好 Golang 1.22 ```bash xcaddy build v2.8.4 --with github.com/d7z-project/caddy-gitea-pages # 列出当前模块 ./caddy list-modules | grep gitea ``` 当前项目也提供 `linux/amd64` 和 `linux/arm64` 的镜像: ```bash docker pull ghcr.io/d7z-project/caddy-gitea-pages:nightly ``` 具体配置说明参考 `docker.io/library/caddy` 镜像。 ## 配置说明 安装后 Caddy 后, 在 `Caddyfile` 写入如下配置: ```conf { order gitea before file_server } :80 gitea { # Gitea 服务器地址 server https://gitea.com # Gitea Token token please-replace-it # 默认域名,类似于 Github 的 github.io domain example.com } ``` 其中,token 需要如下权限: - `organization:read` - `repository:read` - `user:read` 更详细的配置可查看 [Caddyfile](./Caddyfile) ## 使用说明 仓库 `https://gitea.com/owner/repo.git` 对应示例配置中的 `owner.example.com/repo` 如需访问 `CNAME` 配置的域名,则需要先访问仓库对应的 `.example.com/` 域名, 此操作只需完成一次。 **注意**: 需要仓库存在 `gh-pages` 分支和分支内存在 `index.html` 文件才可访问,如果配置后仍无法访问可重启 Caddy 来清理缓存。 ### 文件回退策略 - URL 末尾为 `/` 时将自动追加 `index.html` - 未找到文件时,如果存在 `404.html` 将使用此文件,响应 404 状态码 - 如果仓库带有 `routes-history` 和 `routes-hash` 标签时,默认回退使用 `index.html`, 同时返回 200 状态码 ## TODO - [x] 支持 CNAME 自定义路径 (仅适用于 HTTP 模式,不处理 acme 相关的内容) - [x] 支持内容缓存 - [ ] 优化并发模型和处理竞争问题 - [ ] 支持 Http Range 断点续传 - [ ] 支持 oauth2 登录访问私有页面 ## 致谢 此项目参考了 [42wim/caddy-gitea](https://github.com/42wim/caddy-gitea) ## LICENSE 此项目使用 [Apache-2.0](./LICENSE)