A very janky but really okay "static" website thingy.
Find a file
Lyssieth 0188a0cb54
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Add a license.
2026-01-02 02:52:04 +02:00
.cargo Fix things around the place 2026-01-02 01:56:39 +02:00
.vscode Basic functionality 2026-01-02 01:51:13 +02:00
src A heap of minor fixes 2026-01-02 02:44:40 +02:00
static Font ensurance. 2026-01-02 01:58:01 +02:00
templates/html Remove hard-coded Umami 2026-01-02 02:18:16 +02:00
.envrc Initial Commit 2025-01-26 07:31:02 +02:00
.gitignore Add dependencies 2026-01-02 01:50:44 +02:00
.woodpecker.yml CI fixup 2026-01-02 01:51:58 +02:00
Cargo.lock Small adjustments. :3 2026-01-02 01:58:18 +02:00
Cargo.toml Add a license. 2026-01-02 02:52:04 +02:00
flake.lock Ensure flake.lock is clean 2026-01-02 01:58:18 +02:00
flake.nix Fix the build too 2026-01-02 01:58:18 +02:00
LICENSE Add a license. 2026-01-02 02:52:04 +02:00
README.md Document the UMAMI stuff. 2026-01-02 02:32:00 +02:00

irzean

A handcrafted, zero-JS, Rust-powered site generator that renders on-demand like a dynamic site, but performs like it was pre-rendered.

Or... "Renders like a server, loads like a static site"

envvars

  • IRZEAN_PORT (default 1337): the port to run on
  • IRZEAN_UPDATE_INTERVAL (default 60): how many seconds to wait between each update (whole number)
  • IRZEAN_PARENTAL_MODE (default unset): when set, filters out NSFW content
  • IRZEAN_ACCESS_TOKEN (required): access token to access the repository
  • IRZEAN_REPO_URL (required): where Irzean gets its content from
  • IRZEAN_CLONE_PATH (required): where Irzean will store its data
  • IRZEAN_ROOT_URL (default http://0.0.0.0:${IRZEAN_PORT:1337}): the root url where Irzean is ran
  • IRZEAN_UMAMI_SOURCE (default unset): where to fetch the umami analytics script from
  • IRZEAN_UMAMI_ID (default unset): what ID to assign to the umami script

Technically, IRZEAN_CLONE_PATH isn't required, and the container can be ran completely ephemerally...

BUT there's some flaws with that. Mostly caching.

actual Features

  • serverside rendered w/ axum + minijinja
  • stupid fast loads (<30ms request processing time, <200ms network time, <0.5s FCP (measured from Germany to Eastern Europe))
  • no js (other than umami) yet we have full text search
  • tag index, listing, sitemap generator
  • exists almost entirely in memory at all times
  • rust-embed for static non-code
  • ~14MiB memory usage with my writings directory and setup