I've been familiar with hugo before, but now I wanted something special, so I went with Zola and papermod.
To my slight surprise, the theme that I picked (papermod) didn't work out of the box. It's lovely to have something that gets me started, but this reminds me of how important it is to have well documented open source projects - thanks to this, I was able to make it into what I like to see.
Since I made quite a few changes in the theme, I decided to host it entirely as part of the same repository.
Workflows
GiTea is already running for a few years in my setup. I'll just make use of the relatively newly added "Actions", to build this static website and upload it to NeoCities.
Ideally I'd want something fast, to not install Zola each time on the Ubuntu container. As usual, I'ma make my own.
FROM alpine:3.22.4 AS base
FROM base AS build
RUN apk add --no-cache \
curl
RUN curl -o /tmp/zola.tar.gz -sSL https://github.com/getzola/zola/releases/download/v0.22.1/zola-v0.22.1-x86_64-unknown-linux-musl.tar.gz && \
tar -xvzf /tmp/zola.tar.gz
FROM base AS final
RUN apk add --no-cache \
bash \
libgcc \
libstdc++
COPY --from=oven/bun:alpine /usr/local/bin/bun /usr/local/bin/bun
COPY --from=build /zola /usr/local/bin/zola
RUN ln -s /usr/local/bin/bun /usr/local/bin/node
Yay! I even got bun to work.
And the actions are fast
name: Build for live
run-name: ${{ gitea.actor }} is deploying on live
on:
push:
branches:
- main
jobs:
Build-and-upload:
runs-on: alpine
steps:
- name: Check out repository code
uses: actions/checkout@v6
- run: |
cd ${{ gitea.workspace }}
zola build
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}/public
- name: Deploy to Neocities
env:
NEOCITIES_API_KEY: ${{ secrets.NEOCITIES_API_KEY }}
run: |
cd ${{ gitea.workspace }}
bun run scripts/deploy.js
- run: echo "This job's status is ${{ job.status }}."
And with a bit of help from Gemini, the deployment script deploy.js via the API works great.
I could've just hosted it on some git, but I'm too lazy.
Wait
What's the Decimal Society?
Your guess is as good as mine. At the time when I wrote it, I was watching a true-crime video where a 911 operator failed to convert coordinates dictated in the Degrees/Seconds format, to decimal, which ended badly for the caller. I figured "Hey! We need the decimal system everywhere!", so here we are. Kinda random? Precisely the point.