Connect to various services through this bouncer. Initially meant for IRC, further protocols will follow.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
cmake_modules
config
docs
public
src
CMakeLists.txt
CONTRIBUTING.md
Dockerfile
Doxyfile
LICENSE
README.md

README.md

Harpoon

Connect to various services through this bouncer. Initially meant for IRC

This program is still work in progress. It will require a server.

You can ask questions and make requests on freenode.net channel #harpoon.

Screenshot

Features

  • Multiple users can use this service at once (e.g. family)
  • Multiple clients at the same time possible for the same user
  • Stays online when you aren't
  • Read the backlog
  • IRC support
  • Modular design (disable modules you don't like at compiletime)
  • Optional WebClient (built in)
  • Mobile client for highlights and queries. Safe battery through push notifications
  • Easy to extend
  • Serverside/Clientside scripting support in the future - e.g. automate your coffee machine at work ;)
  • Other chats integrated in the future (and can also be removed during compile time)
    • Hangouts
    • Steam
    • Jabber
    • You can additionally rely on the bitlbee project, which is using the IRC protocol
    • ...

Build instructions

Dependencies

  • Services
    • IRC (USE_IRC_PROTOCOL
      • LibIrcClient (>=1.6-r2)
    • HACK (USE_HACK_PROTOCOL
      • Websocketpp (>=0.7.0)
    • Backlog (optional, via USE_*_DATABASE flags)
      • SOCI (>=3.2.2)
      • PostgreSQL (optional via USE_POSTGRES_DATABASE)
  • Client Protocols
    • WebChat (optional via USE_WEBSOCKET_SERVER)
      • Seasocks (>=1.2.4)
      • JsonCpp (>=0.10.2-r1)

Docker

Harpoon can be built inside Docker container. To do so, before reading next sections, run this line inside project root:

sudo docker run -it --rm -p 8080:8080 -v $(pwd):/harpoon harpoon/harpoon

Compilation

For building the source CMake is required. Run the following in the project's build folder:

cmake .. -DCMAKE_BUILD_TYPE=Debug -DUSE_WEBSOCKET_SERVER=1 -DUSE_WEBSOCKET_SERVER_VERBOSE=0 -DUSE_POSTGRES_DATABASE=1

Run make afterwards.

Configuration

Before first run you should set few Harpoon options. To do so, run build/Harpoon --setup from the project's root. You can just select default values, pressing Return one by one.

Run the binary

To start the service run build/Harpoon from the project root. If you enabled webclient, you can check it on localhost:8080.