$OpenBSD: README,v 1.4 2021/01/16 23:42:57 abieber Exp $ +------------------------------------------------------------------------------- | Running ${PKGSTEM} on OpenBSD +------------------------------------------------------------------------------- Initial configuration ===================== honk expects to be fronted by a TLS terminating reverse proxy. Make sure to pass the Host header for nginx(8) proxy_set_header Host $http_host; 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 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.crt" sign with letsencrypt } honk# acme-client -v honk.example.com honk# ocspcheck -vNo /etc/ssl/honk.example.com.{ocsp,crt} relayd(8) --------- # relayd.conf(5) ext_ip="203.0.113.4" ext_ip2="2001:0db8::4" honk_port="31337" table <honk> { 127.0.0.1 ::1 } table <localhost> { 127.0.0.1 ::1 } 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.example.com } relay "https" { listen on $ext_ip port https tls protocol "https" forward to <localhost> port http check http "/icon.png" code 200 forward to <honk> port $honk_port check tcp } relay "https2" { listen on $ext_ip2 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# rcctl enable relayd honk# rcctl start relayd pf(4) ----- # pf.conf(5) anchor "relayd/*" honk# pfctl -f ${SYSCONFDIR}/pf.conf Setup ===== 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