NearTalk
Visit neartalk.makeworld.space to check it out! That server always runs the latest code on the main
branch.
What is it?
NearTalk is chat platform to talk to people nearby.
Anyone with the same IP address is in the same chat room. For example, everyone
in your house will get the same chat room if they visit NearTalk. If you go to
your local coffee shop, everyone who visit NearTalk will be in the same chat room.
This extends to larger organizations like college/university campuses.
Depending on how the network is set up, all mobile devices using data with the same
network provider as you may be chatting together. Or similarly, all the other homes
using the same ISP. This is the minority of cases however.
Why is it?
For fun, mostly. I wanted to make a chat application and I wanted to use
htmx, and this seemed like a fun idea.
There are many reasons why NearTalk isn't useful, and talking to your fellow humans
face to face
is much better. However there are some times when having a local chatroom is useful,
like for discussing (or dragging) a presentation going on. At the end of the day,
I'm happy to have made something.
Building
GNU Make is required to use the Makefile. Compiling with make
automatically embeds version information into the binary from Git, and it's the only supported way to build the project.
Only the latest Go (1.17) is tested, but Go 1.16+ should compile.
Deploying
You can look at the neartalk.example.service file in the repo as an example for running NearTalk under systemd.
Currently the code does not handle TLS certificates, and so a reverse-proxy is required to use TLS and ensure user security. Make sure you set up your reverse-proxy so that websockets work as well. Just look up <server name> reverse proxy websocket
to find a configuration.
Currently the code is also designed to work under a domain or subdomain, not a subpath.
Please let me know why you deploy your own instance if you do!
License
NearTalk is licensed under the AGPLv3. If host your own version, you must release your source code.