woodpecker/docs
Martin W. Kirst 2c1fc4b500
support custom .JS and .CSS files for custom banner messages (white-labeling) (#1781)
This PR introduces two new server configuration options, for providing a
custom .JS and .CSS file.
These can be used to show custom banner messages, add
environment-dependent signals, or simply a corporate logo.

### Motivation (what problem I try to solve)

I'm operating Woodpecker in multiple k8s clusters for different
environments.
When having multiple browser tabs open, I prefer strong indicators for
each environment.
E.g. a red "PROD" banner, or just a blue "QA" banner.
Also, we sometimes need to have the chance for maintenance, and instead
of broadcasting emails,
I prefer a banner message, stating something like: "Heads-up: there's a
planned downtime, next Friday, blabla...".

Also, I like to have the firm's logo visible, which makes Woodpecker
look more like an integral part of our platform.

### Implementation notes

* Two new config options are introduced ```WOODPECKER_CUSTOM_CSS_FILE```
and ```WOODPECKER_CUSTOM_JS_FILE```
* I've piggy-bagged the existing handler for assets, as it seemed to me
a minimally invasive approach
* the option along with an example is documented
* a simple unit test for the Gin-handler ensures some regression safety
* no extra dependencies are introduced

### Visual example

The documented example will look like this.

![Screenshot 2023-05-27 at 17 00
44](https://github.com/woodpecker-ci/woodpecker/assets/1189394/8940392e-463c-4651-a1eb-f017cd3cd64d)

### Areas of uncertainty 

This is my first contribution to Woodpecker and I tried my best to align
with your conventions.
That said, I found myself uncertain about these things and would be glad
about getting feedback.

* The handler tests are somewhat different than the other ones because I
wanted to keep them simple - I hope that still matches your coding
guidelines
* caching the page sometimes will let the browser not recognize changes
and a user must reload. I'm not fully into the details of how caching is
implemented and neither can judge if it's a real problem. Another pair
of eyes would be good.
2023-07-10 12:46:35 +02:00
..
docs support custom .JS and .CSS files for custom banner messages (white-labeling) (#1781) 2023-07-10 12:46:35 +02:00
plugins/woodpecker-plugins Add Kubernetes and Dockle Plugins (#1930) 2023-07-04 20:28:43 +02:00
src Docs: make sure shell examples can be copied (#1670) 2023-03-24 18:18:14 +01:00
static Improve plugins index (#1200) 2022-09-25 19:04:47 +02:00
versioned_docs/version-0.15 Add minimum usage for CLI v0.15.x to docs (#1878) 2023-06-25 23:38:25 +02:00
versioned_sidebars Use versioned docs (#1145) 2022-09-01 01:52:52 +02:00
.gitignore [Docs] Migrate docs framework to Docusaurus (#282) 2021-09-11 17:10:32 +02:00
.prettierrc.js Improve docs (#450) 2021-10-16 21:27:51 +02:00
babel.config.js [Docs] Migrate docs framework to Docusaurus (#282) 2021-09-11 17:10:32 +02:00
docusaurus.config.js [Docs] use redocusaurus to display swagger file (#1818) 2023-06-04 05:07:39 +02:00
LICENSE Optimize license files (#355) 2021-09-25 15:15:54 +02:00
package.json [Docs] use redocusaurus to display swagger file (#1818) 2023-06-04 05:07:39 +02:00
pnpm-lock.yaml [Docs] use redocusaurus to display swagger file (#1818) 2023-06-04 05:07:39 +02:00
pnpm-workspace.yaml Fix docs build (#1690) 2023-04-03 12:30:01 +02:00
README.md Docs: make sure shell examples can be copied (#1670) 2023-03-24 18:18:14 +01:00
sidebars.js [Docs] Migrate docs framework to Docusaurus (#282) 2021-09-11 17:10:32 +02:00
tsconfig.json Improve docs (#450) 2021-10-16 21:27:51 +02:00
versions.json Use versioned docs (#1145) 2022-09-01 01:52:52 +02:00

Website

This website is built using Docusaurus 2, a modern static website generator.

Installation

pnpm install

Local Development

pnpm start

This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.

Build

pnpm build

This command generates static content into the build directory and can be served using any static contents hosting service.

Deployment

Deployment happen via CI to woodpecker-ci.org.

To manually build the website and push it exec:

GIT_USER=woodpecker-bot USE_SSH=true DEPLOYMENT_BRANCH=master pnpm deploy