TheloungeWebircClient
This guide will help you woth installing thelounge webirc client
Add the following packages nodejs, python gcc make $doas pkg_add yarn python gcc make node $useradd -m thelounge Now switch to thelounge user on openbsd $doas su thelounge $doas npm install thelounge
Ran it on localhost 0.0.0.0:9001 & used relayd to manage its certs and subdomain to listen
edit /etc/relayd.conf add the following lines to relayd.conf
localhost="127.0.0.1" table <znc> { $localhost } table <webirc> { $localhost } tls { keypair webirc.example.com } match request header "Host" value "webirc.example.com" forward to <webirc> relay wwwtls { listen on $ip4 port 443 tls protocol https forward to <www> port 80 check icmp forward to <znc> port 1338 check icmp forward to <webirc> port 9001 mode loadbalance check icmp } relay www6tls { listen on $ip6 port 443 tls protocol https forward to <www> port 80 check icmp forward to <znc> port 1338 check icmp forward to <webirc> port 9001 mode loadbalance check icmp
be sure to change your name from example.com to yourhost.com
now edit /etc/httpd.conf add the following lines to your httpd.conf
server "webirc.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" } connection max request body 104857600 log access "webirc_access.log" log error "webirc_error.log" }
make sure you have the dns setup for nsd to resolve your host
then run this to restart relayd and httpd $doas rcctl restart relayd httpd
Now Edit /home/thelounge/.thelounge/config.js
public: true, host: "127.0.0.1", port: 9001, reverseProxy: false, maxHistory: 10000, https: { enable: false, key: "/home/thelounge/webirc.example.com.key", certificate: "/home/thelounge/webirc.example.com.crt", ca: "/home/thelounge/dhparam.pem", }, theme: "thelounge-theme-solarized", prefetch: true, disableMediaPreview: false, prefetchStorage: true, prefetchMaxImageSize: 2048, prefetchMaxSearchSize: 50, fileUpload: { enable: false, maxFileSize: 10240, baseUrl: null, transports: ["polling", "websocket"], leaveMessage: "NaStYcOdE WebIRC", // ## Default network defaults: { name: "IRCNOW", host: "irc.example.com", port: 6697, password: "", tls: true, rejectUnauthorized: true, nick: "Guest%%%", username: "thelounge", realname: "The Lounge User", join: "#nastycode, #IRCNOW, #Team, #pnc, #waterboygospellyrics", leaveMessage: "IRCNOW, IRC Forever..!", // ### `lockNetwork` lockNetwork: true, // This value is set to `["sqlite", "text"]` by default. messageStorage: ["sqlite", "text"], // ### `useHexIp` useHexIp: false, // ## WEBIRC support webirc: null,
add the following to your /etc/acme-client.conf
webirc.example.com { #alternative names { example.com } domain key "/etc/ssl/private/webirc.example.com.key" domain full chain certificate "/etc/ssl/webirc.example.com.crt" sign with letsencrypt }
make sure to run the acme-client to create your certificate and keys so that your https will work
$doas acme-client -Fv webirc.example.com
be sure to change example.com to your hostname of your vps!!
then run this as thelounge user $doas su thelounge $doas /home/thelounge/node_modules/.bin/thelounge install $doas /home/thelounge/node_modules/.bin/thelounge start to start thelounge
Hope this gets your webirc client up and going but if you need help please email splinter@nastycode.com for mpre info on getting help with this program!