I have once again re-written my website. This time using 11ty and a super simple docker setup.
The Dockerfile is just
FROM node:23-alpine
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install
COPY . .
RUN yarn exec eleventy
FROM lipanski/docker-static-website:latest
COPY /app/_site /home/static
Notice the lipanski/docker-static-website:latest
. This is a minimal overhead docker image that serves static files.
This gets built using forgejo actions, and pushed to the local registry, then deployed using Portainer to my server.