rtfd --init
初始化服务
生成程序配置文件
rtfd project create --url xxx {ProjectName}
新增文档项目
在本地数据库保存文档项目数据、初始化文档的nginx配置文件
rtfd build {ProjectName}
或api或webhook触发文档构建
通过 .rtfd-builder.sh 脚本构建生成实际的HTML页面,它接收构建名称、分支和程序配置文件, 通过sphinx生成文档。
访问文档
文档域名是:
文档项目名.托管域名后缀
,如果不是单一版本,首页会重定向到 /default_language/latest,另外,页面会请求rtfd.js生成导航按钮。如果有自定义域名,也可以访问,不过默认域名目前不会自动跳转到自定义域名。
如果是新建项目可以直接使用 –domain 选项;如果是已有项目追加自定义域名,请 更新 domain 字段,例如:
rtfd p update -t domain:my-domain {ProjectName}
如果想支持HTTPS,请准备好域名的证书文件。如果是新建项目,使用选项 –sslcrt 证书公钥 –sslkey 私钥;如果是已有项目,请更新项目信息,例如:
rtfd p update -t domain:my-domain,sslcrt:证书公钥,sslkey:私钥文件 {ProjectName}
小技巧
每个文档都有默认域名,默认域名及是否支持https也取决于程序配置文件。 另,如果有HTTPS配置,那么HTTP会跳转到HTTPS,不过默认域名不会跳转到自定义域名。
已有自定义域名,但想要删除的话,也是可以的,需要更新项目,将 domain 设为 false 即可。
如果自定义域名要取消https,更新项目,将 ssl 设为 false 即可。
如果自定义域名支持https,那么证书是有到期时间的,请自行更新项目。
不集成dockerfile,不过是可以,但是很复杂,需要将nginx、python环境打包进去,启动时将数据 目录和配置文件映射进去。
给一个基础的dockerfile示例:
# -- build dependencies with alpine & go1.16+ --
FROM golang:1.16.0-alpine3.13 AS builder
ENV GO111MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
WORKDIR /build
COPY . .
RUN go env -w GOPROXY=https://goproxy.cn,direct && \
go build -ldflags "-s -w -X tcw.im/rtfd/cmd.built=$(date -u '+%Y-%m-%dT%H:%M:%SZ')" && chmod +x rtfd
# run application with a small image
FROM scratch
COPY --from=builder /build/rtfd /bin/
WORKDIR /rtfd
# volume bind /rtfd.cfg
ENTRYPOINT ["rtfd", "api", "-c", "/rtfd.cfg"]