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.

58 lines
2.3 KiB

11 months ago
# KevaChat Web Application
11 months ago
11 months ago
KevaChat is distributed web chat platform for open, uncensored and privacy respectable communication with permanent database storage in blockchain.
11 months ago
11 months ago
![KevaChat](https://github.com/kevachat/webapp/assets/108541346/9b286719-eafe-443f-a6e3-4b4927edde96)
11 months ago
11 months ago
## Tech
11 months ago
Instance require connection to the [Kevacoin](https://github.com/kevacoin-project/) wallet, `memcached` server and [Symfony](https://github.com/symfony/symfony) for web interface.
11 months ago
## Model
11 months ago
KevaChat following open wallet model, where community boost shared ballance for talks.
11 months ago
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` - is the `timestamp@username` and `value` - is message.
All messages related to their room `namespaces`.
## Install
### Production
`composer create-project kevachat/webapp KevaChat`
### Development
* `git clone https://github.com/kevachat/webapp.git KevaChat`
* `cd KevaChat`
* `composer install`
11 months ago
## 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
* Create namespace for the chat room with `kevacoin-cli keva_namespace "sandbox"` and add it hash to `env`.`APP_KEVACOIN_ROOM_NAMESPACES`
* Also Provide at least one namespace for default chat room to `env`.`APP_KEVACOIN_ROOM_NAMESPACE_DEFAULT` (for homepage redirects)
11 months ago
## Contribution
11 months ago
Project created by people for people: MIT License to use it for other needs e.g. new fork, chat instance or Kevacoin blockchain explorer.
11 months ago
Join the development and make your feedback!