kevachat / webapp
KevaChat Web Application
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 3
Type:project
pkg:composer/kevachat/webapp
Requires
- php: >=8.2
- ext-ctype: *
- ext-iconv: *
- clitor-is-protocol/kevacoin: ^1.0
- doctrine/doctrine-bundle: ^2.11
- doctrine/doctrine-migrations-bundle: ^3.3
- doctrine/orm: ^3.0
- kevachat/kevacoin: dev-main
- league/commonmark: ^2.4
- symfony/console: 7.0.*
- symfony/dotenv: 7.0.*
- symfony/flex: ^2
- symfony/framework-bundle: 7.0.*
- symfony/monolog-bundle: ^3.10
- symfony/runtime: 7.0.*
- symfony/translation: 7.0.*
- symfony/twig-bundle: 7.0.*
- symfony/yaml: 7.0.*
- twig/extra-bundle: ^3.8
- twig/intl-extra: ^3.8
- twig/markdown-extra: ^3.8
Requires (Dev)
- symfony/maker-bundle: ^1.54
Conflicts
README
KevaChat is distributed chat platform for open, uncensored and privacy respectable communication with permanent data storage in blockchain.
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 instancehttp://kevachat.ygg- Alfis DNS alias
Install
apt install git composer memcached sqlite3 php-curl php-memcached php-sqlite3 php-mbstringgit clone https://github.com/kevachat/webapp.gitcd webappcomposer updatephp bin/console doctrine:schema:update --force* * * * * /usr/bin/wget -q --spider http://../crontab/pool > /dev/null 2>&1
Update
cd webappgit pullcomposer updatephp bin/console doctrine:migrations:migrateAPP_ENV=prod APP_DEBUG=0 php bin/console cache:clear
Setup
Application package contain settings preset, just few steps required to launch:
- Make sure
memcachedserver enabled - Setup KevaCoin server connection with
rpcuser/rpcpasswordin~/.kevacoin/kevacoin.conf - Copy
rpcusertoenv.APP_KEVACOIN_USERNAMEandrpcpasswordtoenv.APP_KEVACOIN_PASSWORD - Generate new address using CLI
kevacoin-cli getnewaddressand copy toenv.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!