abieber b1b60ab36f bonk honk to 0.9.2! Update from MAINTAINER:
Horia Racoviceanu <horia () racoviceanu ! com>
2020-10-24 15:37:33 +00:00
..
2020-01-21 08:02:56 +00:00

$OpenBSD: README,v 1.3 2020/10/24 15:37:33 abieber Exp $

+-------------------------------------------------------------------------------
| Running ${PKGSTEM} on OpenBSD
+-------------------------------------------------------------------------------

Initial configuration
=====================

honk expects to be fronted by a TLS terminating reverse proxy.

acme-client(1)
--------------

# acme-client.conf(5)
domain honk.example.com {
  domain key "${SYSCONFDIR}/ssl/private/honk.example.com.key"
  domain full chain certificate "${SYSCONFDIR}/ssl/honk.example.com.fullchain.pem"
  sign with letsencrypt
}

Icon and favicon
----------------

honk# mkdir ${VARBASE}/www/htdocs/honk
honk# ftp -o ${VARBASE}/www/htdocs/honk/icon.png https://honk.tedunangst.com/icon.png
honk# ftp -o ${VARBASE}/www/htdocs/honk/favicon.ico \
  https://honk.tedunangst.com/favicon.ico

httpd(8)
--------

# httpd.conf(5)
server "honk.example.com" {
  listen on * port http
  location "/.well-known/acme-challenge/*" {
    root "/acme"
    request strip 2
  }
  location "/*icon.*" {
    root "/htdocs/honk"
  }
  location "*" {
    block return 302 "https://$HTTP_HOST$REQUEST_URI"
  }
}

honk# rcctl enable httpd
honk# rcctl start httpd
honk# acme-client -v honk.example.com

relayd(8)
---------

# relayd.conf(5)
honk_port="31337"
table <honk> { lo0 }
table <localhost> { lo0 }

http protocol https {
  match request header append "X-Forwarded-For" value "$REMOTE_ADDR"
  match request header append "X-Forwarded-By" \
    value "$SERVER_ADDR:$SERVER_PORT"
  match request header set "Connection" value "close"

  match request header "Host" value "honk.*" forward to <honk>
  match request path "/*icon.*" forward to <localhost>

  tcp { sack, backlog 128 }
  tls keypair honk
}

relay https {
  listen on egress port https tls
  protocol https

  forward to <localhost> port http check http "/icon.png" code 200
  forward to <honk> port $honk_port check tcp
}

honk# cd ${SYSCONFDIR}/ssl
honk# ln -s honk.example.com.fullchain.pem honk.crt
honk# cd ${SYSCONFDIR}/ssl/private
honk# ln -s honk.example.com.key honk.key

honk# rcctl enable relayd
honk# rcctl start relayd

pf(4)
-----

# pf.conf(5)
anchor "relayd/*"

honk# pfctl -f ${SYSCONFDIR}/pf.conf

Usage
=====

Please see ${LOCALBASE}/share/doc/honk

honk# doas -su _honk
honk$ umask 077; cd ${VARBASE}/honk && honk init
listenaddr: localhost:31337
servername: honk.example.com
honk$ touch ${VARBASE}/honk/savedinbox.json
honk$ exit

honk# rcctl enable honk
honk# rcctl start honk

Honk at https://honk.example.com