$ cat /etc/motd
OpenBSD 7.6 (GENERIC) #332: Mon Sep 30 08:45:17 MDT 2024
__ ___. __ .__
______/ |______ ______\_ |__ ____ _____ ______/ |_|__| ____
/ ___\ __\__ \\_ __ | __ \_/ __ \\__ \ / ___\ __| _/ __ \
\___ \ | | / __ \| | \| \_\ \ ___/ / __ \_\___ \ | | | \ ___/
/____ >|__| (____ |__| |___ /\___ (____ /____ >|__| |__|\___ >
\/ \/ \/ \/ \/ \/ \/
In addition to hosting my static websites https://rnkn.xyz and https://fountain-mode.org this server also acts as a research project.
This server runs OpenBSD with 512MB of memory and 10GB of storage hosted on Vultr.
$ uname -a
OpenBSD starbeastie.rnkn.xyz 7.6 GENERIC#332 amd64
$ sysctl -n hw.physmem
519946240
$ df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/sd0a 8.2G 4.1G 3.7G 53% /
/dev/sd0d 1.1G 368M 667M 36% /usr/local
Web Server
This website is served with the httpd HTTP webserver and the relayd relay daemon.
The server’s ed25519 public key is:
$ cat /etc/ssh/ssh_host_ed25519_key.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBgyVZ2A48dDWkknH7SAPxogjQM1nud8bSEbJs+4XuAE
Git access is provided by anonymous ssh using the gotd daemon. Code repositories at https://rnkn.xyz/got/ are served with the gotwebd FastCGI server.
Build
This site is entirely built with POSIX shell and lowdown. The full source can be found at https://rnkn.xyz/got/?action=summary&path=homepage.git.
The build command is:
HTML_DIR=/home/rnkn/public_html/homepage/ sh build.sh
https://fountain-mode.org is built with Texinfo:
texi2any --html --css-include=$(CSS_FILE) --output $(HTML_DIR) $(TEXI_FILE)
IMAP is handled by Dovecot and server-side SMTP by smtpd with DKIM signing performed by filter-dkimsign.
$ openssl pkey -in /etc/mail/dkim/private.key -pubout
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyxS8Vh/XOul6oqaHQ6Oq
RheOfoL0df/h1S1TT2DeU5CW51vVdkpo7ZMQeflVlnXLqCxIJuq7XMU6sTyU7/7W
D6cIK4N9vxBuyUQy1fW/gzsWcwttFA+70nbjBH6gdYodxuLJ0dVK6fZSS8JK5yX6
omlY1CZPENaZJ+ftzTbmXIzhDnerQQ1cSxscH0TR1hXfkcQkQxcCELErYhdGBjD5
M6H75VRjfdO95/c4hKM00fq1zUNyg4yQM0kXlNc1ac57boojstuX7fu4bCu6B1AX
8aygrikt2QyaIrcmUYj8Ql4z9HAJxyFsUyvIeFe+RTbUyGnOJTnq0SMBQr8YuJtn
twIDAQAB
-----END PUBLIC KEY-----
$ dig dkim._domainkey.starbeastie.rnkn.xyz +short TXT | fold -w64
"v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyxS8Vh/X
Oul6oqaHQ6OqRheOfoL0df/h1S1TT2DeU5CW51vVdkpo7ZMQeflVlnXLqCxIJuq7
XMU6sTyU7/7WD6cIK4N9vxBuyUQy1fW/gzsWcwttFA+70nbjBH6gdYodxuLJ0dVK
6fZSS8JK5yX6omlY1CZPENaZJ+ftzTbmXIzhDnerQQ1cSxscH0TR1hXfkcQkQxcC
" "ELErYhdGBjD5M6H75VRjfdO95/c4hKM00fq1zUNyg4yQM0kXlNc1ac57boojs
tuX7fu4bCu6B1AX8aygrikt2QyaIrcmUYj8Ql4z9HAJxyFsUyvIeFe+RTbUyGnOJ
Tnq0SMBQr8YuJtntwIDAQAB"
The server has a read_later
script that takes a URL, converts the
article content of a webpage to an email and sends the email to the
user. This script uses the C programs
webdump for the plaintext
message part and rdrview for the
HTML message part. Email is filed using
Pigeonhole for Sieve.
Feeds
Feeds are fetched on a cron job using the C program sfeed, which stores data in TSV files.
Feeds are converted to two output formats:
- Static HTML page here: https://rnkn.xyz/feeds/.
- Feeds are converted to mbox format then
fdm delivers the emails to
~/Maildir
. Mail is accessed with a regular IMAP client
Monitoring
HTTP and IMAP uptime is monitored externally at https://status.rnkn.xyz.