diff --git a/.woodpecker/build.yml b/.woodpecker/build.yml index f2cb615..a86c7fe 100644 --- a/.woodpecker/build.yml +++ b/.woodpecker/build.yml @@ -114,6 +114,23 @@ steps: - event: ['push'] branch: ${CI_REPO_DEFAULT_BRANCH} + 'Publish PR image': + image: woodpeckerci/plugin-docker-buildx:3.2.1 + depends_on: test + settings: + registry: codeberg.org + dockerfile: Dockerfile + platforms: linux/amd64 + repo: codeberg.org/codeberg/pages-server + tags: next + username: + from_secret: bot_user + password: + from_secret: bot_token + when: + evaluate: 'CI_COMMIT_PULL_REQUEST_LABELS contains "build_pr_image"' + event: pull_request + docker-tag: depends_on: vendor image: woodpeckerci/plugin-docker-buildx:3.2.1 diff --git a/README.md b/README.md index a1d6424..34143f1 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,9 @@ but forward the requests on the IP level to the Pages Server. You can check out a proof of concept in the `examples/haproxy-sni` folder, and especially have a look at [this section of the haproxy.cfg](https://codeberg.org/Codeberg/pages-server/src/branch/main/examples/haproxy-sni/haproxy.cfg#L38). +If you want to test a change, you can open a PR and ask for the label `build_pr_image` to be added. +This will trigger a build of the PR which will build a docker image to be used for testing. + ### Environment Variables - `HOST` & `PORT` (default: `[::]` & `443`): listen address. @@ -72,14 +75,14 @@ and especially have a look at [this section of the haproxy.cfg](https://codeberg - `GITEA_ROOT` (default: `https://codeberg.org`): root of the upstream Gitea instance. - `GITEA_API_TOKEN` (default: empty): API token for the Gitea instance to access non-public (e.g. limited) repos. - `RAW_INFO_PAGE` (default: ): info page for raw resources, shown if no resource is provided. -- `ACME_API` (default: ): set this to to use invalid certificates without any verification (great for debugging). +- `ACME_API` (default: ): set this to to use invalid certificates without any verification (great for debugging). ZeroSSL might be better in the future as it doesn't have rate limits and doesn't clash with the official Codeberg certificates (which are using Let's Encrypt), but I couldn't get it to work yet. - `ACME_EMAIL` (default: `noreply@example.email`): Set the email sent to the ACME API server to receive, for example, renewal reminders. - `ACME_EAB_KID` & `ACME_EAB_HMAC` (default: don't use EAB): EAB credentials, for example for ZeroSSL. - `ACME_ACCEPT_TERMS` (default: use self-signed certificate): Set this to "true" to accept the Terms of Service of your ACME provider. - `ACME_USE_RATE_LIMITS` (default: true): Set this to false to disable rate limits, e.g. with ZeroSSL. - `ENABLE_HTTP_SERVER` (default: false): Set this to true to enable the HTTP-01 challenge and redirect all other HTTP requests to HTTPS. Currently only works with port 80. -- `DNS_PROVIDER` (default: use self-signed certificate): Code of the ACME DNS provider for the main domain wildcard. +- `DNS_PROVIDER` (default: use self-signed certificate): Code of the ACME DNS provider for the main domain wildcard. See for available values & additional environment variables. - `NO_DNS_01` (default: `false`): Disable the use of ACME DNS. This means that the wildcard certificate is self-signed and all domains and subdomains will have a distinct certificate. Because this may lead to a rate limit from the ACME provider, this option is not recommended for Gitea/Forgejo instances with open registrations or a great number of users/orgs. - `LOG_LEVEL` (default: warn): Set this to specify the level of logging. @@ -104,7 +107,7 @@ Previous maintainers: ### First steps -The code of this repository is split in several modules. +The code of this repository is split in several modules. The [Architecture is explained](https://codeberg.org/Codeberg/pages-server/wiki/Architecture) in the wiki. The `cmd` folder holds the data necessary for interacting with the service via the cli. @@ -117,7 +120,7 @@ Thank you very much. Make sure you have [golang](https://go.dev) v1.21 or newer and [just](https://just.systems/man/en/) installed. -run `just dev` +run `just dev` now these pages should work: -