Go to file
Hexagon baa9601db5 socket.io 2 -> 4, node-static replaced with serve 2021-10-02 21:34:22 +02:00
docs Added screenshot 2014-09-19 19:48:43 +02:00
public socket.io 2 -> 4, node-static replaced with serve 2021-10-02 21:34:22 +02:00
.dockerignore Ignored too much. Release 1.1.12 2017-01-17 22:35:30 +01:00
.eslintignore 1.1.18 Pre release lint 2017-02-22 23:09:50 +01:00
.eslintrc.json 1.1.18 Pre release lint 2017-02-22 23:09:50 +01:00
.gitignore Adhering to change in socket.io, Release 1.1.16 2017-01-23 22:29:23 +01:00
.npmignore Updating ignorefiles. Documentation. Release 1.1.11. 2017-01-17 22:30:16 +01:00
.travis.yml Update travis target versions 2019-09-16 19:45:34 +01:00
Dockerfile resolved npm cache clean error & created forgotten directory 2017-11-01 17:47:54 +01:00
LICENSE Initial commit 2014-09-18 09:24:21 +02:00
README.md socket.io 2 -> 4, node-static replaced with serve 2021-10-02 21:34:22 +02:00
app.json Various 2016-01-04 01:34:16 +01:00
docker-entrypoint.sh Minor fix 2017-12-04 22:12:04 +01:00
package-lock.json socket.io 2 -> 4, node-static replaced with serve 2021-10-02 21:34:22 +02:00
package.json socket.io 2 -> 4, node-static replaced with serve 2021-10-02 21:34:22 +02:00
requirejs.build.js 1.1.18 Pre release lint 2017-02-22 23:09:50 +01:00
server.js socket.io 2 -> 4, node-static replaced with serve 2021-10-02 21:34:22 +02:00

README.md

cryptalk

Build npm version License Codacy Badge

Cyptalk is a HTML5/Node.js based, client side (E2EE) encrypted instant chat

Features

  • 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
  • Notification sounds (mutable)
  • Native popup notifications
  • Configurable page title
  • Nicknames, optional.
  • Quick-links using http://server/#Room:Passphrase, optional and insecure

Docker setup

To run latest cryptalk with docker, exposed on host port 80, simply run the following command to pull it from docker hub

sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk

Heroku setup

Click the button below

Deploy

Docker setup without using docker hub

Clone this repo, enter the new directory.

Build image

docker build . --tag="hexagon/cryptalk"

Run container, enable start on boot, expose to port 80 at host

sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk

Browse to http://<ip-of-server>/

Done!

npm setup

Install node.js, exact procedure is dependant on platform and distribution.

Install the app from npm

npm install cryptalk -g

Then issue the following to start the app

cryptalk

Browse to http://localhost:8080

Done!

Developer setup

Install node.js, exact procedure is dependant on platform and distribution.

Clone this repo

git clone https://github.com/Hexagon/cryptalk.git
cd cryptalk

Pull dependencies from npm

npm install

Start server

node server.js

Browse to http://localhost:8080

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 requirejs

npm install requirejs -g

... and run this in the project root directory

r.js -o requirejs.build.js

(or in windows, as you'll get a script error from the above script)

r.js.cmd -o requirejs.build.js

Usage


Available commands:

Client:                                                    			
	/key		StrongPassphrase	Sets encryption key                 
	/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  		
									after this amount of seconds 					
									(default 600).									

Room:                                                    				
	/join		RoomId				Join a room	                            
	/leave							Leave the room                              
	/count							Count participants                          

Host:  		                                                    	
	/hosts							List available hosts                   		
	/connect	HostIndex			Connect to selected host               	
	/disconnect						Disconnect from host    			        

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.