Add README.md and Dockerfile
This commit is contained in:
parent
1ed8d43714
commit
e46079d2b1
8
Dockerfile
Normal file
8
Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
FROM caddy:2.6-builder-alpine AS builder
|
||||
|
||||
RUN xcaddy build \
|
||||
--with github.com/42wim/caddy-gitea@v0.0.2
|
||||
|
||||
FROM caddy:2.6.2
|
||||
|
||||
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
|
106
README.md
Normal file
106
README.md
Normal file
@ -0,0 +1,106 @@
|
||||
# caddy-gitea
|
||||
|
||||
[Gitea](https://gitea.io) plugin for [Caddy v2](https://github.com/caddyserver/caddy).
|
||||
|
||||
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.
|
||||
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
- [caddy-gitea](#caddy-gitea)
|
||||
- [Getting started](#getting-started)
|
||||
- [Caddy config](#caddy-config)
|
||||
- [DNS config](#dns-config)
|
||||
- [Gitea config](#gitea-config)
|
||||
- [gitea-pages repo](#gitea-pages-repo)
|
||||
- [any repo](#any-repo)
|
||||
- [Building caddy](#building-caddy)
|
||||
|
||||
<!-- /TOC -->
|
||||
|
||||
## 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.
|
||||
|
||||
```Caddyfile
|
||||
{
|
||||
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:
|
||||
|
||||
- <http://org.pages.yourdomain.com:3000/repo/file.html> (org is the organization or username)
|
||||
- <http://org.pages.yourdomain.com:3000/repo/file.html?ref=abranch> (org is the organization or username)
|
||||
- <http://repo.org.pages.yourdomain.com:3000/file.html>
|
||||
- <http://branch.repo.org.pages.yourdomain.com:3000/file.html>
|
||||
- <http://org.pages.yourdomain.com:3000/> (if you have created a gitea-pages repo it'll be served on the root)
|
||||
|
||||
### 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:
|
||||
|
||||
```toml
|
||||
allowedrefs=["*"]
|
||||
```
|
||||
|
||||
To only allow main and dev:
|
||||
|
||||
```toml
|
||||
allowedrefs=["main","dev"]
|
||||
```
|
||||
|
||||
- Your `file.html` in the `master` branch will now be available on <http://yourorg.pages.yourdomain.com:3000/yourrepo/file.html>
|
||||
- Your `file.html` in the `master` branch will now be available on <http://yourrepo.yourorg.pages.yourdomain.com:3000/file.html>
|
||||
- Your `otherfile.html` in the `dev` branch will now be available on <http://yourorg.pages.yourdomain.com:3000/yourrepo/file.html?ref=dev>
|
||||
- Your `otherfile.html` in the `dev` branch will now be available on <http://dev.yourrepo.yourorg.pages.yourdomain.com:3000/file.html>
|
||||
|
||||
|
||||
## 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
|
||||
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
|
||||
```
|
Loading…
Reference in New Issue
Block a user