honk
honk is an Activitypub software that focused on Single-user instance.
Install
honk is available at OpenBSD ports.
# pkg_add honk
Configuring httpd.conf
httpd will used for acme-client. Edit /etc/httpd.conf
:
# $OpenBSD: httpd.conf,v 1.22 2020/11/04 10:34:18 denis Exp $ server "example.com" { listen on * port 80 location "/.well-known/acme-challenge/*" { root "/acme" request strip 2 } location * { block return 302 "https://$HTTP_HOST$REQUEST_URI" } }
Replace example.com
with your hostname.
Check the configuration with httpd -n
, if it is OK enable and start relayd (as root):
# rcctl enable httpd # rcctl start httpd
Configuring relayd.conf
relayd will be used as the reverse proxy sitting in front of honk. Insert the following configuration in /etc/relayd.conf
:
# $OpenBSD: relayd.conf,v 1.4 2018/03/23 09:55:06 claudio Exp $ ext_inet="<IPv4 address>" ext_inet6="<IPv6 address>" table <honk_server> { 127.0.0.1 } table <httpd_server> { 127.0.0.1 } http protocol honk { # Protocol for upstream honk server #tcp { nodelay, sack, socket buffer 65536, backlog 128 } # Uncomment and adjust as you see fit tls { keypair example.com } # Append a bunch of headers match request header append "X-Forwarded-For" value "$REMOTE_ADDR" # This two header and the next one are not strictly required by honk but adding them won't hurt match request header append "X-Forwarded-By" value "$SERVER_ADDR:$SERVER_PORT" match request header append "Connection" value "upgrade" } relay www { listen on $ext_inet port https tls # Comment to disable listening on IPv4 protocol honk forward to <honk_server> port 4000 } relay www6 { listen on $ext_inet6 port https tls # Comment to disable listening on IPv6 protocol honk forward to <honk_server> port 4000 }
Change example.com
with your instance domain.
Again, change <IPv4 address>
and <IPv6 address>
to your server's address(es) and comment one of the two listen options if needed.
Check the configuration with relayd -n
, if it is OK enable and start relayd (as root):
# rcctl enable relayd # rcctl start relayd
Setting the honk up
We need to access /var/honk
to setup database. So login as root
$ doas su
Go to /var/honk
, Then set up database.
# cd /var/honk # doas -u _honk honk init username: yourusername password: listenaddr: 127.0.0.1:4000 servername: example.com
Replace yourusername
with your username, example.com
to your hostname.
Then start the server.
# rcctl start honk
If server succesfully started, You may start it during boot.
# rcctl enable honk
Finally, You can visit https://example.com to see your instance.
You may also adjust your instance settings by doing doas -u _honk honk admin
(Every honk
command must be run under _honk
user). Also read honk(1)
Managing users
honk is actually focused for single user instance, But it can also used for multiple users.
- Adding user can done by executing
doas -u _honk honk adduser
- Changing user password can done by executing
doas -u _honk honk chpass
- Deleting user can done by executing
doas -u _honk honk deluser
User interface basic
honk is also known for it's humorous UI. An post is a "honk". Here's some info to get you started:
In honk, The users that you follow is called as "honkers" which you can manage at menu -> honkers
it's honking time
will create a post
Post Actions:
bonk
repost, rehonk, or reblog.honk back
reply to a postzonk
Delete a postack
like a post.badonk
react to a post.
You can modify the text by editing header.html
under views
directory.
And you may also like customizing your instance by copying style.css
to local.css
and edit local.css
under views
directory.