Skip to content

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 post

  • zonk Delete a post

  • ack 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.

Also read