- Makefile 100%
| cloudflare-certs | ||
| rancher | ||
| traefik | ||
| forgejo.yaml | ||
| ghost.yaml | ||
| Makefile | ||
| README.md | ||
| syncthing.yaml | ||
| uptime-kuma.yaml | ||
| whoami.yaml | ||
Kubernetes configuration
This is my configuration for kubernetes, values are replaced with envsubst.
Makefile
I have a Makefile that provides targets to do the setup/deployment necessary.
Targets
k3s
Add DNS entry for rancher.${DOMAIN} before setting up
k3s
make k3s
cert-manager
make cert_manager
rancher
make rancher
Certs
This creates a certificate issuer using the cloudflare API that responds to the annotation of cert-manager.io/cluster-issuer: letsencrypt-prod, and an accompanying certificate for rancher.
make certs
After a while the page at https://rancher.${DOMAIN} should have a nice valid certificate.
Traefik
Add a little HTTP to HTTPS redirect
make traefik
Whoami
Add DNS entry for whoami.${DOMAIN}
I like to use this to test that everything is working.
make whoami
Forgejo
Add DNS entry for git.${DOMAIN}
Requires port 22 to be unused (e.g. using Tailscale for SSH) as port 22 is redirected to git in the deployment
make forgejo
Syncthing
This will create a complete syncthing setup with the WebUI exposed over your tailscale network, the following components are created:
- A namespace called syncthing
- Persistent Volume Claims to store syncthing configuration and data via local-storage
- A deployment of syncthing
- A service that connects to the port 8384 of the deployment
- A service that Load Balances the ports 22000 and 21017
- An ingress that exposes the port 8384 of the deployment over HTTPS to your tailnet
make syncthing
Uptime-kuma
This will create a uptime-kuma setup with the WebUI exposed over your tailscale network, the following components are created:
- A namespace called kuma
- Persistent Volume Claims to store uptime-kuma data via local-storage
- A deployment of uptime-kuma
- A service that connects to the port 3001 of the deployment
- An ingress that exposes the port 3001 of the deployment over HTTPS to your tailnet
make uptime_kuma
Ghost
Add DNS entry for blog.${DOMAIN}
This will create a Ghost CMS setup exposed over the blog.${DOMAIN}, it includes sending email over your GMail account (provide the proper variables the Makefile asks for).
Sources
List of sources that helped me set this up: