1.6 KiB
1.6 KiB
My personal webpage and blog ![status-badge](https://woodpecker.bluemedia.dev/api/badges/6/status.svg)
This repo contains the sources for my personal webpage and blog. You can check out the live version at bluemedia.dev.
Components
The site uses the following components:
- Hugo (static site generator)
- Customized version of Hugo Profile (theme for Hugo)
Content is written using markdown and some YAML configs.
Deployment
The site is built using a Woodpecker CI pipeline for every change to main
. After running hugo
, the pipeline publishes the content of the public
directory to a MinIO bucket using the mc
command-line tool. bluemedia.dev
is in turn just a Nginx server that proxies requests to the MinIO bucket and rewrites the upstream request to a corresponding /index.html
file.
The (simplified) proxy config looks like this:
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name bluemedia.dev;
location / {
rewrite ^(.*)/$ $1/index.html break;
rewrite ^(.*/[^./]+)$ $1/index.html break;
proxy_http_version 1.1;
proxy_connect_timeout 300;
chunked_transfer_encoding off;
proxy_intercept_errors on;
error_page 404 =404 /404.html;
proxy_set_header Host "bluemedia-dev.s3.infra.bluemedia.dev";
proxy_set_header Connection "";
proxy_pass https://bluemedia-dev.s3.infra.bluemedia.dev;
}
}