|
|
|
# KevaChat App for Gemini Protocol
|
|
|
|
|
|
|
|
```
|
|
|
|
_ __ ____ _ _
|
|
|
|
| |/ /_____ ____ _ / ___| |__ __ _| |_
|
|
|
|
| ' // _ \ \ / / _` | | | '_ \ / _` | __|
|
|
|
|
| . \ __/\ V / (_| | |___| | | | (_| | |_
|
|
|
|
|_|\_\___| \_/ \__,_|\____|_| |_|\__,_|\__|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
KevaChat is distributed chat platform for open, uncensored and privacy respectable communication with permanent data storage in blockchain.
|
|
|
|
|
|
|
|
## Example
|
|
|
|
|
|
|
|
* `gemini://[301:23b4:991a:634d::1965]` - Yggdrasil
|
|
|
|
* `gemini://kevachat.ygg` - Yggdrasil / Alfis DNS
|
|
|
|
* `gemini://kevachat.duckdns.org` - Internet
|
|
|
|
|
|
|
|
## Roadmap
|
|
|
|
|
|
|
|
* [x] Multiple host support
|
|
|
|
* [x] Room list
|
|
|
|
* [x] Room threads
|
|
|
|
* [x] Post publication
|
|
|
|
* [x] Post replies
|
|
|
|
* [ ] Rooms publication
|
|
|
|
* [x] Media viewer
|
|
|
|
* [ ] Users auth
|
|
|
|
* [x] Error handlers
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
* `apt install git composer memcached sqlite3 php-curl php-memcached php-sqlite3 php-mbstring`
|
|
|
|
* `git clone https://github.com/kevachat/geminiapp.git`
|
|
|
|
* `cd geminiapp`
|
|
|
|
* `composer update`
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
* `mkdir host/127.0.0.1`
|
|
|
|
* `cp example/config.json host/127.0.0.1/config.json`
|
|
|
|
* `cd host/127.0.0.1`
|
|
|
|
* `openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem -days 365 -nodes -subj "/CN=127.0.0.1"`
|
|
|
|
* `* * * * * php src/crontab.php 127.0.0.1` - if post commission enabled
|
|
|
|
|
|
|
|
## Start
|
|
|
|
|
|
|
|
* `php src/server.php 127.0.0.1`
|
|
|
|
|
|
|
|
When launching server with systemd, just make sure that manticore service already running:
|
|
|
|
|
|
|
|
```
|
|
|
|
[Unit]
|
|
|
|
Wants=manticore.service
|
|
|
|
After=manticore.service
|
|
|
|
...
|
|
|
|
```
|
|
|
|
|
|
|
|
## See also
|
|
|
|
|
|
|
|
* [KevaChat Web Application](https://github.com/kevachat/webapp)
|