KevaChat is distributed chat platform for open, uncensored and privacy respectable communication with permanent data storage in blockchain.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
ghost 063e9f8e25 fix route condition 8 months ago
bin init symfony framework 1 year ago
config remove key protocol dependency 10 months ago
migrations implement comission charge for publications 10 months ago
public remove custom modes 10 months ago
src return room list on main page by default 8 months ago
templates/default fix route condition 8 months ago
translations complete feed feature 1 year ago
.env return room list on main page by default 8 months ago
.gitignore gitignore composer lock 11 months ago
LICENSE Initial commit 1 year ago
README.md return room list on main page by default 8 months ago
compose.override.yaml implement comission charge for publications 10 months ago
compose.yaml implement comission charge for publications 10 months ago
composer.json remove meta key/values markup (by new protocol) 10 months ago
symfony.lock implement comission charge for publications 10 months ago

README.md

KevaChat - Chat in Blockchain

KevaChat is distributed chat platform for open, uncensored and privacy respectable communication with permanent data storage in blockchain.

KevaChat

Tech

Instance require connection to the KevaCoin wallet, memcached server, clitor-is-protocol for multimedia support and Symfony for web interface.

Model

KevaChat following open wallet model, where community boost shared ballance for talks.

  • In another way, node able to generate payment addresses to each message sent and charge commission for instance monetization.
  • Also registered users have payment accounts where everyone able to boost their balance by donation

Administrators have flexible settings of access levels explained in the .env file: read-only rooms, connection and post limits, etc.

Communication

Everyone able to join the chat, post messages as ghosty or sign ownership by IP. Also users can explore remote rooms by namespaces if option enabled.

Basic social features like identicons, replies, mentions, RSS subscriptions etc are supported.

Protocol

KevaChat protocol following native KevaCoin's key/value model, where key optionally contain @username postfix and value - contain message.

All publications related to their room namespace.

Examples

  • http://[201:23b4:991a:634d:8359:4521:5576:15b7]/kevachat/ - Yggdrasil instance

Install

  • apt install git composer memcached sqlite3 php-curl php-memcached php-sqlite3 php-mbstring
  • git clone https://github.com/kevachat/webapp.git
  • cd webapp
  • composer update
  • php bin/console doctrine:schema:update --force
  • * * * * * /usr/bin/wget -q --spider http://../crontab/pool > /dev/null 2>&1

Update

  • cd webapp
  • git pull
  • composer update
  • php bin/console doctrine:migrations:migrate
  • APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear

Setup

Application package contain settings preset, just few steps required to launch:

  • Make sure memcached server enabled
  • Setup KevaCoin server connection with rpcuser/rpcpassword in ~/.kevacoin/kevacoin.conf
  • Copy rpcuser to env.APP_KEVACOIN_USERNAME and rpcpassword to env.APP_KEVACOIN_PASSWORD
  • Generate new address using CLI kevacoin-cli getnewaddress and copy to env.APP_KEVACOIN_BOOST_ADDRESS
  • Send few coins to this address and wait for new block to continue
  • To allow users registration, create namespace kevacoin-cli keva_namespace "_KEVACHAT_USERS_"
  • Create at least one room namespace with Web UI or CLI kevacoin-cli keva_namespace "sandbox"
  • Optionally, provide namespace for default chat room at env.APP_KEVACOIN_ROOM_NAMESPACE_DEFAULT (for homepage redirect)

Contribution

Project created by people for people: MIT License to use it for other needs e.g. new fork, chat instance or KevaCoin blockchain explorer.

Join the development and make your feedback!

See also