2014-09-19 13:59:10 -04:00
|
|
|
![cryptalk](/docs/screenshot.png)
|
|
|
|
|
2014-10-20 14:57:50 -04:00
|
|
|
![Build](https://travis-ci.org/Hexagon/cryptalk.svg)
|
2015-12-29 18:38:05 -05:00
|
|
|
[![npm version](https://badge.fury.io/js/cryptalk.svg)](https://badge.fury.io/js/cryptalk)
|
|
|
|
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.md)
|
2016-12-18 17:55:28 -05:00
|
|
|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/f748d8923f0b44d2b2b3d3b42aceae7c)](https://www.codacy.com/app/robinnilsson/cryptalk?utm_source=github.com&utm_medium=referral&utm_content=Hexagon/cryptalk&utm_campaign=badger)
|
2014-10-20 14:57:50 -04:00
|
|
|
|
2014-10-20 14:37:55 -04:00
|
|
|
Cyptalk is a HTML5/Node.js based, client side (E2EE) encrypted instant chat
|
2014-09-19 13:59:10 -04:00
|
|
|
|
2016-01-02 13:14:25 -05:00
|
|
|
|
2014-09-19 13:59:10 -04:00
|
|
|
Features
|
2014-09-18 03:24:21 -04:00
|
|
|
========
|
|
|
|
|
2014-09-19 14:01:28 -04:00
|
|
|
* Client side AES-256-CBC encryption/decryption (the server is just a messenger)
|
|
|
|
* 256 bit key derived from your passphrase using PBKDF2
|
2017-01-17 16:30:16 -05:00
|
|
|
* Messages torched after a configurable delay, default is 600s.
|
|
|
|
* Simple setup using npm, Docker or Heroku
|
2014-09-20 09:26:43 -04:00
|
|
|
* Notification sounds (mutable)
|
2014-09-23 14:19:00 -04:00
|
|
|
* Native popup notifications
|
|
|
|
* Configurable page title
|
2017-01-17 16:30:16 -05:00
|
|
|
* Nicknames, optional.
|
|
|
|
* Quick-links using http://server/#Room:Passphrase, optional and insecure
|
2014-10-20 14:37:55 -04:00
|
|
|
|
2014-10-20 14:57:50 -04:00
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Docker setup
|
|
|
|
========
|
|
|
|
|
|
|
|
To run latest cryptalk with docker, exposed on host port 80, simply run the following command to pull it from docker hub
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
|
|
|
|
```
|
|
|
|
|
2014-10-20 14:57:50 -04:00
|
|
|
|
2014-10-20 14:37:55 -04:00
|
|
|
Heroku setup
|
|
|
|
========
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Click the button below
|
|
|
|
|
2014-10-20 14:37:55 -04:00
|
|
|
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/hexagon/cryptalk)
|
2014-09-18 13:48:17 -04:00
|
|
|
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
|
|
|
|
Docker setup without using docker hub
|
2014-09-25 04:51:21 -04:00
|
|
|
========
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Clone this repo, enter the new directory.
|
2014-09-25 04:51:21 -04:00
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Build image
|
2014-09-25 04:51:21 -04:00
|
|
|
```bash
|
2017-01-17 16:30:16 -05:00
|
|
|
docker build . --tag="hexagon/cryptalk"
|
|
|
|
```
|
2014-09-25 07:08:11 -04:00
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Run container, enable start on boot, expose to port 80 at host
|
2014-09-25 07:08:11 -04:00
|
|
|
```bash
|
2017-01-17 16:30:16 -05:00
|
|
|
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
|
2014-09-25 07:08:11 -04:00
|
|
|
```
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Browse to ```http://<ip-of-server>/```
|
2014-09-25 04:51:21 -04:00
|
|
|
|
|
|
|
Done!
|
|
|
|
|
2014-10-20 14:37:55 -04:00
|
|
|
|
2017-01-14 17:37:27 -05:00
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
npm setup
|
2017-01-14 17:37:27 -05:00
|
|
|
========
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Install node.js, exact procedure is dependant on platform and distribution.
|
2016-12-18 17:51:29 -05:00
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Install the app from npm
|
2016-12-18 17:51:29 -05:00
|
|
|
```bash
|
2017-01-17 16:30:16 -05:00
|
|
|
npm install cryptalk -g
|
|
|
|
````
|
|
|
|
|
|
|
|
Then issue the following to start the app
|
2016-12-18 17:51:29 -05:00
|
|
|
|
|
|
|
```bash
|
2017-01-17 16:30:16 -05:00
|
|
|
cryptalk
|
2016-12-18 17:51:29 -05:00
|
|
|
```
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
Browse to ```http://localhost:8080```
|
2016-12-18 17:51:29 -05:00
|
|
|
|
|
|
|
Done!
|
|
|
|
|
|
|
|
|
2017-01-17 16:30:16 -05:00
|
|
|
|
2014-09-25 04:51:21 -04:00
|
|
|
Developer setup
|
2014-09-18 13:48:17 -04:00
|
|
|
========
|
|
|
|
|
2014-09-18 17:13:10 -04:00
|
|
|
Install node.js, exact procedure is dependant on platform and distribution.
|
2014-09-18 13:54:45 -04:00
|
|
|
|
2014-09-18 13:48:17 -04:00
|
|
|
Clone this repo
|
2014-09-18 13:54:45 -04:00
|
|
|
```bash
|
|
|
|
git clone https://github.com/Hexagon/cryptalk.git
|
|
|
|
cd cryptalk
|
|
|
|
```
|
2014-09-18 13:48:17 -04:00
|
|
|
|
2014-09-24 06:28:55 -04:00
|
|
|
Pull dependencies from npm
|
2014-09-18 13:54:45 -04:00
|
|
|
```bash
|
2014-09-24 06:28:55 -04:00
|
|
|
npm install
|
2014-09-18 13:54:45 -04:00
|
|
|
```
|
2014-09-18 13:48:17 -04:00
|
|
|
|
2014-09-18 13:54:45 -04:00
|
|
|
Start server
|
|
|
|
```bash
|
|
|
|
node server.js
|
|
|
|
```
|
2014-09-18 13:48:17 -04:00
|
|
|
|
2014-09-19 13:59:10 -04:00
|
|
|
Browse to ```http://localhost:8080```
|
2014-09-19 14:05:30 -04:00
|
|
|
|
2016-12-18 17:51:29 -05:00
|
|
|
|
2017-02-07 15:19:23 -05:00
|
|
|
To work on the JavaScript, update public/index.html to use js/lib/main.js instead of js/cryptalk.min.js
|
|
|
|
|
|
|
|
|
2017-02-22 16:22:28 -05:00
|
|
|
To update the bundled and minified client JavaScript, install requirejs
|
2017-02-07 15:19:23 -05:00
|
|
|
|
|
|
|
```
|
2017-02-22 16:22:28 -05:00
|
|
|
npm install requirejs -g
|
2017-02-07 15:19:23 -05:00
|
|
|
```
|
|
|
|
|
|
|
|
... and run this in the project root directory
|
|
|
|
|
|
|
|
```
|
|
|
|
r.js -o requirejs.build.js
|
|
|
|
```
|
|
|
|
|
2021-10-02 15:34:22 -04:00
|
|
|
(or in windows, as you'll get a script error from the above script)
|
2017-02-07 15:19:23 -05:00
|
|
|
|
|
|
|
```
|
|
|
|
r.js.cmd -o requirejs.build.js
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2014-09-19 14:05:30 -04:00
|
|
|
Usage
|
|
|
|
========
|
|
|
|
|
|
|
|
```
|
2014-09-23 14:19:00 -04:00
|
|
|
|
|
|
|
Available commands:
|
|
|
|
|
|
|
|
Client:
|
2016-01-04 18:08:15 -05:00
|
|
|
/key StrongPassphrase Sets encryption key
|
2016-01-04 18:15:24 -05:00
|
|
|
/nick NickName Sets an optional nick
|
|
|
|
/mute Audio on
|
|
|
|
/unmute Audio off
|
|
|
|
/clear Clear on-screen buffer
|
|
|
|
/help This
|
|
|
|
/title Set your local page title
|
2016-01-04 18:08:15 -05:00
|
|
|
/torch AfterSeconds Console messages are torched
|
2016-01-04 18:15:24 -05:00
|
|
|
after this amount of seconds
|
|
|
|
(default 600).
|
2016-01-04 18:08:15 -05:00
|
|
|
|
|
|
|
Room:
|
2016-01-04 18:15:24 -05:00
|
|
|
/join RoomId Join a room
|
|
|
|
/leave Leave the room
|
|
|
|
/count Count participants
|
2016-01-04 18:08:15 -05:00
|
|
|
|
2014-09-23 14:19:00 -04:00
|
|
|
Host:
|
2016-01-04 18:15:24 -05:00
|
|
|
/hosts List available hosts
|
|
|
|
/connect HostIndex Connect to selected host
|
|
|
|
/disconnect Disconnect from host
|
2016-01-04 18:08:15 -05:00
|
|
|
|
2014-09-23 14:19:00 -04:00
|
|
|
You can select any of the five last commands/messages with up/down key.
|
2016-01-04 18:08:15 -05:00
|
|
|
|
|
|
|
Due to security reasons, /key command is not saved, and command
|
|
|
|
history is automatically cleared after one minute of inactivity.
|
|
|
|
|
|
|
|
It is highly recommended to use incognito mode while chatting,
|
|
|
|
to prevent browsers from keeping history or cache.
|
|
|
|
|
2014-09-21 08:20:25 -04:00
|
|
|
|
2014-09-19 14:05:30 -04:00
|
|
|
```
|