Hola, long time ago I started a path of trying to get every service I use/need self-hosted, because I can and because I like this way, plus fuck companies and hype. The obvious first step was my website and mail, running since ages on my OpenBSD server, but some days ago I also setup honk and dendrite (article coming next week)... but where? On this little machine that I had waiting for something nice for a year or so, my little rock64 is now doing something more useful than just arm64 builds.
What is honk? I will let the perfect explanation from tedu@'s web:
Take control of your honks and join the federation.
An ActivityPub server with minimal setup and support costs.
Spend more time using the software and less time operating it.
No attention mining.
No likes, no faves, no polls, no stars, no claps, no counts.
Purple color scheme. Custom emus. Memes too.
Avatars automatically assigned by the NSA.
The button to submit a new honk says "it's gonna be honked".
The honk mission is to work well if it's what you want.
This does not imply the goal is to be what you want.
As Mastodon which is a distributed social network that can communicate using the ActivityPub protocol, honk also can do it, so basically by using honk you still can communicate and interact with other people on the Fediverse by ActivityPub.
I recommend to use a dedicate subdomain for honk, in my case is https://honk.x61.sh.
# pkg_add honk
Pff hardwork, despite all I puked horia about the README (/usr/local/share/doc/pkg-readmes/honk) it's pretty clear and easy to follow, specially since the version 0.9.8.
OK we have honk installed, now what? RTFM.
First thing you want to take care of is:
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;
In my case I have relayd(8) in front of it instead of nginx, the interesting bits about it for honk are:
http protocol "http" {
...
match request header "Host" value "honk.x61.sh" tag "honk"
pass request tagged "honk" forward to
...
tls keypair "honk.x61.sh"
...
}
relay "https" {
...
forward to port 31337 check tcp
...
}
Where you see honk you should have a table with the IP of your honk machine. The rest it's just the usual relayd(8) dance.
Before continue take a look at /usr/local/share/doc/honk.
Done? Time to setup honk, following /usr/local/share/doc/pkg-readmes/honk we'll switch to the _honk user, initialize honk, set the main usr/pass, domain and bind address:
# doas -su _honk
rock64$ umask 077; cd /var/honk && honk init
username: honk
password: 34d082fdf7a4e7b7867a3e4399b4d83bdb66f69ed1c9d57
listenaddr: 192.168.0.100:31337
servername: honk.x61.sh
rock64$ touch /var/honk/savedinbox.json
rock64$ exit
That's it! Let's enable it on boot time and start it up:
# rcctl enable honk
# rcctl start honk
You should see now your honk online, go on and login with the previous credentials. That was it, you have the option to import the data archive from Mastodon and Twitter following these steps on honk(8):
rock64$ honk import username mastodon source-directory
or
rock64$ honk import username twitter source-directory
I never did it, but I think I will, what I did was added my friends from Mastodon to honk, you can do so by clicking on the "menu -> honkers" and adding the Mastodon's url for example: https://bsd.network/@gonzalo, now you will start to see them on your "feed".
If you really want to honk with style you want to read https://humungus.tedunangst.com/r/honk/m/honk.5 and if you want to go to the next level, you should tune your honk with https://humungus.tedunangst.com/r/honk/m/vim.3. Lucky me purple is my favorite colour.
Remember to RTFM and take care of the maintainance of your honk:
# crontab -eu _honk
# crontab(5)
MAILTO=root
@daily /usr/local/bin/honk cleanup
Same for upgrades, keep an eye on the file /usr/local/share/doc/pkg-readmes/honk it will help you a lot, otherwise just puke horia about it.
Happy honks!