Skip to content
/ Harpoon Public

Connect to various services through this bouncer. Initially meant for IRC, further protocols will follow.

License

Notifications You must be signed in to change notification settings

0x17de/Harpoon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.