Files
blog-ahmza-com/README.md
T
2024-07-20 13:04:20 +01:00

54 lines
2.2 KiB
Markdown

# Blog
## Overview
This repository contains the source code for my personal blog hosted at [blog.ahmza.com](https://blog.ahmza.com).
## Features
Using GitLab provides several advantages:
- **Highly Customizable CI/CD Pipelines**: Automated processes for building and deploying the blog.
- **GitLab Container Image Repository**: Efficient management and storage of container images.
- **Custom GitLab 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](https://blog.ahmza.com/posts/pi-docker-swarm/)
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](https://blog.ahmza.com/posts/building-a-docker-swarm-with-pis/).
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.
- **GitLab CI/CD**: Automates the build process and creates Docker images.
- **Kubernetes Cluster**: Serves the static files to users.
## To-Do List
- [x] Migrate to Kubernetes
- [x] Migrate to Blowfish theme
- [x] Make repo private to ensure all keys etc are hidden
- [x] Update docker file
- [x] Migrate to hugo modules for the theme
- [ ] Continue to write awesome posts
## Notes
### Cloning the Repository
To clone this repository along with its submodules, use the following command:
```bash
git clone git@gitlab.com:ahmza/blog.git
```