ahmza b88828f92e Use dynamic cloudflare trusted_proxies IP source
caddy-cf now includes WeidiDeng/caddy-cloudflare-ip, so replace the
hardcoded 22-range static list with 'trusted_proxies cloudflare' which
auto-fetches and refreshes Cloudflare's IPv4/IPv6 ranges (interval 12h,
timeout 15s). No static list to keep in sync when Cloudflare updates.

Kept client_ip_headers Cf-Connecting-Ip X-Forwarded-For (prefer CF's
authoritative end-user IP, fall back to XFF) and documented why.

Validated + fmt-clean and tested end-to-end against the updated caddy-cf
image: starts cleanly, serves HTTP 200 with gzip + security headers.
2026-07-25 05:04:52 +01:00
2024-11-29 02:26:53 +00:00
2025-06-13 11:34:00 +01:00

Blog

Overview

This repository contains the source code for my personal blog hosted at blog.ahmza.com.

Features

Using Gitea provides several advantages:

  • Highly Customizable CI/CD Pipelines: Automated processes for building and deploying the blog via Gitea Actions.
  • Gitea Container Image Repository: Efficient management and storage of container images.
  • Custom Gitea Runners: Flexibility in managing the CI/CD environment.

The CI/CD pipeline is configured to build the blog for both amd64 and arm64 architectures, allowing me to host the site on my Pi cluster as well as on other x86 platforms.

Motivation

My previous homelab setup included rack-mounted, power-hungry servers, which were expensive to run. By migrating to a Raspberry Pi cluster, I significantly reduced costs and improved efficiency. You can read more about this migration on my site.

A static site generator was the best choice for my needs, as I don't require a dynamically updating site. It provides simplicity and efficiency without sacrificing performance.

Benefits of Static Sites

  • Security: Reduced attack surface due to the absence of a server-side backend.
  • Reliability: Less prone to downtime and issues.
  • Speed: Faster load times since content is pre-rendered.
  • Scalability: Easily handle large amounts of traffic.
  • Flexibility: Greater control over content and design.
  • Low Resource Overhead: Minimal resource consumption compared to dynamic sites.

Implementation

  • Hugo: Converts Markdown files into static HTML/CSS/JS files.
  • Gitea Actions: Automates the build process and creates Docker images.
  • Kubernetes Cluster: Serves the static files to users.

To-Do List

  • Migrate to Kubernetes
  • Migrate to Blowfish theme
  • Make repo private to ensure all keys etc are hidden
  • Update docker file
  • Migrate to hugo modules for the theme
  • Continue to write awesome posts

Notes

Cloning the Repository

The Blowfish theme is managed as a Hugo module, so no submodules are required. Clone the repository with:

git clone ssh://gitea@tea.ahmza.com:2222/ahmza/blog-ahmza-com.git
S
Description
Readme
50 MiB
Languages
HTML 63.3%
Dockerfile 30.3%
CSS 6.4%