Github pages (and more) for gitea using caddy
Go to file
2022-11-02 01:08:01 +01:00
pkg/gitea Add support for branch.repo.username.hostname 2022-11-02 00:00:04 +01:00
Dockerfile Add README.md and Dockerfile 2022-11-02 01:08:01 +01:00
gitea.go Add support for branch.repo.username.hostname 2022-11-02 00:00:04 +01:00
go.mod Start using gitea-sdk where possible 2022-11-01 22:36:56 +01:00
go.sum Start using gitea-sdk where possible 2022-11-01 22:36:56 +01:00
LICENSE Initial commit 2022-10-30 13:07:19 +01:00
README.md Add README.md and Dockerfile 2022-11-02 01:08:01 +01:00

caddy-gitea

Gitea plugin for Caddy v2.

This allows you to have github pages (with more features) in Gitea. This also requires you to setup a wildcard CNAME to your gitea host.

Getting started

Caddy config

The Caddyfile below creates a webserver listening on :3000 which will interact with gitea on https://yourgitea.yourdomain.com using agiteatoken as the token.

{
        order gitea before file_server
}
:3000
gitea {
        server https://yourgitea.yourdomain.com
        token agiteatoken
        domain pages.yourdomain.com #this is optional
}

DNS config

This works with a wildcard domain. So you'll need to make a *.pages.yourdomain.com CNAME to the server you'll be running caddy on. (this doesn't need to be the same server as gitea).

Depending on the gitea config below you'll be able to access your pages using:

Gitea config

There are 2 options to expose your repo's as a page, that you can use both at the same time.

  • creating a gitea-pages repo with a gitea-pages branch
  • adding a gitea-pages branch to any repo of choice

gitea-pages repo

e.g. we'll use the yourorg org.

  1. create a gitea-pages repo in yourorg org
  2. Add a gitea-pages topic to this gitea-pages repo (this is used to opt-in your repo),
  3. Create a gitea-pages branch in this gitea-pages repo.
  4. Put your content in this branch. (eg file.html)

Your content will now be available on http://yourorg.pages.yourdomain.com:3000/file.html

any repo

e.g. we'll use the yourrepo repo in the yourorg org and there is a file.html in the master branch and a otherfile.html in the dev branch. The master branch is your default branch.

  1. Add a gitea-pages topic to the yourrepo repo (this is used to opt-in your repo).
  2. Create a gitea-pages branch in this yourrepo repo.
  3. Put a gitea-pages.toml file in this gitea-pages branch of yourrepo repo. (more info about the content below)

The gitea-pages.toml file will contain the git reference (branch/tag/commit) you allow to be exposed. To allow everything use the example below:

allowedrefs=["*"]

To only allow main and dev:

allowedrefs=["main","dev"]

Building caddy

As this is a 3rd party plugin you'll need to build caddy (or use the binaries). To build with this plugin you'll need to have go1.19 installed.

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest #this will install xcaddy in ~/go/bin
~/go/bin/xcaddy build --with github.com/42wim/caddy-gitea@v0.0.2