~kvik/wiki.9front.org

ref: b8c95627d2d4f5222a69023faab1871d25126367 wiki.9front.org/this.md -rw-r--r-- 2.0 KiB
b8c95627 — Sigrid Solveig Haflínudóttir docs → wiki 1 year, 3 months ago

#About this

Other than the git content repository—at the moment hosted on sourcehut—the docs system runs and is hosted by 9front software on a 9front machine.

This page intends to document how this is done.

#The software

Ori's git9 is used for pulling content updates from the repository.

kvik's ugh! site generator renders the content, mainly the HTML pages.

ugh! depends on discount markdown processor by default.

cinap's tcp80 which has been slightly modified serves the web clients.

kvik's unionfs serves the 9p clients.

#The setup

The rest is a glue provided through standard 9front mechanisms.

#Starting off

; git/clone git://src.a-b.xyz/ugh /usr/doc
; git/clone https://git.sr.ht/~kvik/docs.9front.org /usr/doc/data
; mkdir /usr/web

#Updates

Checking for updates and triggering page regeneration is done by a custom script running once per minute through cron.

0-59 * * * * local /usr/doc/bin/update

#Serving 9p

9p clients are served by unionfs, spawned by system network listener.

/cfg/$sysname/service/tcp909

#!/bin/rc
# Runs as 'none'.
exec /bin/unionfs -i /usr/doc/public

#Serving HTTP

Web clients are served by tcp80, spawned by system network listener.

/cfg/$sysname/service/tcp80

#!/bin/rc
exec /bin/tcp80 -n /usr/doc/cfg/webns

The namespace file /usr/doc/cfg/ simply binds the public/ directory to the web root:

bind /usr/doc/public /usr/web

#Work-in-Progress

#Quick-linking

#Categories

Not a priority, considering the currently small amount of content.

The benefit of organizing content in categories mostly seems to be the ability to generate hierarchical sitemaps.

A probable implementation is allowing arbitrary hierarchy in the source page directory, letting each directory denote a (sub)-category.