Giter Club home page Giter Club logo

ricochet-group's Introduction

ricochet-group

This is a pretty rudimentary group chat system for Ricochet IM.

See https://ricochet.im/

ricochet-group is compatible with the standard Ricochet GUI. It works by creating a central ricochet peer that runs the group, which relays messages from the sending user to all of the other users. It essentially implements an IRC channel over the Ricochet protocol.

It hasn't been security-tested and is only a hobby project. Rely on it at your own risk.

To try it out, come and join the "Fans of Ricochet" group chat at ricochet:7kcnmmzhfo22unr2

Current status

Public and private group chats work.

There are certainly bugs. It is certainly possible to evade kicking and banning. It is probably possible to connect to a private chat without permission.

See file TODO for things that still need to be done.

Installation

Basic usage

Clone the repo:

$ git clone https://github.com/jes/ricochet-group

If you don't already have go and tor, you'll need to install them.

$ sudo apt install golang-go tor # on Ubuntu
$ sudo yum install golang tor    # on CentOS

Fetch the dependencies:

$ go get -d

(This may take a while and produce no output). Build ricochet-group:

$ go build

After that, you can get started by running:

$ ./ricochet-group

The first line will tell you the Ricochet ID of your group chat:

ricochet-group coming up at ricochet:3yah8ol5a6ub3rto ...

Edit config.yaml to customise the configuration.

Permanent installation

The included script install.sh should install ricochet-group on Ubuntu and CentOS systems, and hopefully others.

$ sudo ./install.sh

Having installed ricochet-group with install.sh, you should edit the config in /etc/ricochet-group/config.yaml and then start it with systemd:

$ sudo systemctl start ricochet-group

Examine log output with journalctl:

$ journalctl -u ricochet-group

If all went well, the first line should tell you your group chat's ricochet id:

Sep 30 01:09:36 localhost ricochet-group[26754]: ricochet-group coming up at ricochet:3yah8ol5a6ub3rto ...

(If it didn't start properly, you'll want to see the error message. In my experience, error messages when the program exits immediately are not shown by journalctl -u ricochet-group, but you should be able to find them with journalctl | grep ricochet-group | tail. I don't know why this is.)

You can then connect to the group chat and verify that it works. It might take 30 seconds or more for the hidden service to become connectable, so don't be alarmed if it doesn't work immediately.

You can edit the configuration in /etc/ricochet-group/config.yaml. Remember to restart ricochetgroup whenever you change it.

Once you're satisfied, you can make it start at boot:

$ sudo systemctl enable ricochet-group

It is possible to run multiple different group chats on one machine by simply running multiple instances of ricochet-group. You'll have to sort out your own systemd configuration for this however.

Configuration

ricochet-group looks for configuration in ./config.yaml and /etc/ricochet-group/config.yaml, with configuration in ./config.yaml taking priority.

All of the available configuration options are either used or described in the example config file.

If you want your group chat to use a specific ricochet id (e.g. a vanity address), you can copy the corresponding private key into /var/lib/ricochet-group/private_key instead of using the auto-generated key.

Private groups

Private groups do appear to work, but I can't warrant that there aren't bugs that would allow non-allowed users to read a private chat, so you rely on it at your own risk.

Upgrades

If there is a new version available, and you want to upgrade your running ricochet-group instance:

First update the git repo, and fetch any possible updates to the dependencies, and build the new version of the code:

$ git pull
$ go get -d -u github.com/jes/ricochetbot github.com/jes/go-ricochet
$ go build

Run the install script:

$ sudo ./install.sh

(If you edited the config file, you'll see some messages about that. You can most likely ignore these, but if ricochet-group fails to start, you might want to diff your config with the latest sample config, to see if there are any new settings that are required).

And restart your instance:

$ sudo systemctl restart ricochet-group

Contact me

ricochet-group is written by James Stanley. You can read my blog at https://incoherency.co.uk/ , email me at [email protected], or message me on ricochet at ricochet:it2j3z6t6ksumpzd

ricochet-group's People

Contributors

jes avatar

Stargazers

mva1985 avatar Ankur Tyagi avatar

Watchers

 avatar James Cloos avatar mva1985 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.