You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
bom d43cad692a Update deps to use new inline macro 4 weeks ago
doc renamed repo-user and forgejo-repo 2 months ago
infrastructure/build adjust calling of generate.sh 1 month ago
public Project skeleton 2 years ago
src add review comments 1 month ago
.gitignore [Skip-CI] Ignore eastwood file 6 months ago
.gitlab-ci.yml build native image 2 months ago
LICENSE Project skeleton 2 years ago
README.md update doc 2 months ago
build.py minor fixes 2 months ago
package.json bump version to: 2.0.1-SNAPSHOT 2 months ago
project.clj Update deps to use new inline macro 4 weeks ago
shadow-cljs.edn Update deps to use new inline macro 4 weeks ago

README.md

convention 4 kubernetes: c4k-website

Clojars Project pipeline status

DeltaChat chat over e-mail | team@social.meissa-gmbh.de team@social.meissa-gmbh.de | Website & Blog

Purpose

GitOps for static generated Websites.

c4k-website generates k8s-manifest for a webserver serving static html.

c4k-website is an example how to create k8s manifests for OneShotDeployments with https://repo.prod.meissa.de/meissa/c4k-common.

Features

Serving multiple websites

You can serve many websites, each of can listen to a list of domain names. E.g.

# Config example
websites:
- unique-name: "test.io" 
  fqdns: ["test.de", "test.org", "www.test.de", "www.test.org"]
- unique-name: "example.io"
  fqdns: ["example.org", "www.example.com"]

https & Letsencrypt Certificates

The domain names listed will get their certificates from letsencrypt out of the box.

Ratelimiting

There is a Ratelimit included for each website. This makes it harder to DOS one or all websites served.

Monitoring

Monitoring on GrafanaCloud (or any other grafana) is included out of the box.

GitOps your Websites

If your repository is on a frogejo or gitea repo, we included GitOps. We ask every ten minutes the repo api for new pushed content.

If there is new content we generate the new static html & serve it.

Support Hugo and Cryogene

For static html generation we support cryogen & hugo.

Try out

Click on the image to try out in your browser:

Try it out

Your input will stay in your browser. No server interaction is required.

You will also be able to try out on cli:

c4k-website src/test/resources/valid-config.yaml src/test/resources/valid-auth.yaml

Usage

Prerequisites:

  • DNS routes pointing to your k8s cluster.
  • frogejo or gitea instance for your website repo. In doubt use https://codeberg.org
  • A git repository with your hugo / cryogene website
    • the project provides a generate.sh (maybe your generatoin needs some preprocessing)
    • generate.sh deliver its static generated html to target/html

Development & mirrors

Development happens at: https://repo.prod.meissa.de/meissa/c4k-website

Mirrors are:

For more details about our repository model see: https://repo.prod.meissa.de/meissa/federate-your-repos

License

Copyright © 2022, 2023, 2024 meissa GmbH Licensed under the Apache License, Version 2.0 (the "License") Pls. find licenses of our subcomponents here