cryptalk/README.md

172 lines
4.1 KiB
Markdown
Raw Normal View History

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
* 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
* 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
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
========
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
Docker setup without using docker hub
2014-09-25 04:51:21 -04:00
========
Clone this repo, enter the new directory.
2014-09-25 04:51:21 -04:00
Build image
2014-09-25 04:51:21 -04:00
```bash
docker build . --tag="hexagon/cryptalk"
```
2014-09-25 07:08:11 -04:00
Run container, enable start on boot, expose to port 80 at host
2014-09-25 07:08:11 -04:00
```bash
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
2014-09-25 07:08:11 -04: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
npm setup
2017-01-14 17:37:27 -05:00
========
Install node.js, exact procedure is dependant on platform and distribution.
2016-12-18 17:51:29 -05:00
Install the app from npm
2016-12-18 17:51:29 -05:00
```bash
npm install cryptalk -g
````
Then issue the following to start the app
2016-12-18 17:51:29 -05:00
```bash
cryptalk
2016-12-18 17:51:29 -05:00
```
Browse to ```http://localhost:8080```
2016-12-18 17:51:29 -05:00
Done!
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
To update the bundled and minified client JavaScript, install require.js
```
npm install require.js -g
```
... and run this in the project root directory
```
r.js -o requirejs.build.js
```
(or in windows)
```
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:
/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
/torch AfterSeconds Console messages are torched
2016-01-04 18:15:24 -05:00
after this amount of seconds
(default 600).
Room:
2016-01-04 18:15:24 -05:00
/join RoomId Join a room
/leave Leave the room
/count Count participants
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
2014-09-23 14:19:00 -04:00
You can select any of the five last commands/messages with up/down key.
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
```