2023-12-09 00:59:13 +00:00
# KevaChat - Chat in Blockchain
2023-12-06 08:45:50 +00:00
2023-12-09 01:01:18 +00:00
KevaChat is distributed chat platform for open, uncensored and privacy respectable communication with permanent data storage in blockchain.
2023-12-06 08:45:50 +00:00
2023-12-06 20:15:11 +00:00
![KevaChat ](https://github.com/kevachat/webapp/assets/108541346/9b286719-eafe-443f-a6e3-4b4927edde96 )
2023-12-06 08:47:42 +00:00
2023-12-06 08:53:37 +00:00
## Tech
2023-12-14 03:06:33 +00:00
Instance require connection to the [Kevacoin ](https://github.com/kevacoin-project/ ) wallet, `memcached` server, [clitor-is-protocol ](https://github.com/clitor-is-protocol ) for multimedia support and [Symfony ](https://github.com/symfony/symfony ) for web interface.
2023-12-06 08:45:50 +00:00
## Model
2023-12-06 08:53:37 +00:00
KevaChat following open wallet model, where community boost shared ballance for talks.
2023-12-06 08:45:50 +00:00
2024-02-18 02:28:48 +00:00
* 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
2024-02-13 22:35:57 +00:00
2023-12-06 08:45:50 +00:00
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.
2024-02-15 22:44:24 +00:00
All messages related to their room `namespace` .
2023-12-06 08:45:50 +00:00
2024-02-16 13:25:37 +00:00
## Examples
* `http://[201:23b4:991a:634d:8359:4521:5576:15b7]/kevachat/` - [Yggdrasil ](https://github.com/yggdrasil-network/ ) instance
* `http://kevachat.ygg` - [Alfis DNS ](https://github.com/Revertron/Alfis ) alias
2023-12-06 23:53:24 +00:00
## Install
2024-02-15 22:42:28 +00:00
* `apt install git composer memcached sqlite3 php-curl php-memcached php-sqlite3 php-mbstring`
2024-02-15 21:15:00 +00:00
* `git clone https://github.com/kevachat/webapp.git`
* `cd webapp`
* `composer update`
* `php bin/console doctrine:schema:update --force`
2024-02-18 00:26:39 +00:00
* `* * * * * /usr/bin/wget -q --spider http://../crontab/pool > /dev/null 2>&1`
2023-12-06 23:53:24 +00:00
2024-02-15 21:15:00 +00:00
## Update
2023-12-06 23:53:24 +00:00
2024-02-15 22:43:18 +00:00
* `cd webapp`
* `git pull`
* `composer update`
* `php bin/console doctrine:migrations:migrate`
* `APP_ENV=prod APP_DEBUG=0 php bin/console cache:clear`
2023-12-06 23:53:24 +00:00
2023-12-07 01:47:12 +00:00
## 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
2023-12-18 03:38:22 +00:00
* To allow users registration, create namespace `kevacoin-cli keva_namespace "_KEVACHAT_USERS_"`
2023-12-09 17:31:54 +00:00
* Create at least one room namespace with Web UI or CLI `kevacoin-cli keva_namespace "sandbox"`
* Provide at least one namespace for default chat room to `env` .`APP_KEVACOIN_ROOM_NAMESPACE_DEFAULT` (for homepage redirects)
2023-12-07 01:47:12 +00:00
2023-12-11 19:25:25 +00:00
## Modes
KevaChat supported following `mode` in `GET` requests:
* `stream` - useful for iframe integrations on external websites to create news feed or support chats
2023-12-06 08:45:50 +00:00
## Contribution
2023-12-07 01:49:52 +00:00
Project created by people for people: MIT License to use it for other needs e.g. new fork, chat instance or Kevacoin blockchain explorer.
2023-12-07 01:47:12 +00:00
Join the development and make your feedback!
2024-02-16 00:01:12 +00:00
## See also
* [KevaChat Gemini Application ](https://github.com/kevachat/geminiapp )