website/README.md

1.6 KiB

My personal webpage and blog

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:

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;
    }
}