Compare commits
1 Commits
master
...
dependabot
Author | SHA1 | Date |
---|---|---|
dependabot[bot] | 664536ebc5 |
|
@ -1,2 +1 @@
|
||||||
github: [hexagon]
|
github: [hexagon]
|
||||||
ko_fi: hexagon_56k
|
|
||||||
|
|
274
README.md
274
README.md
|
@ -1,137 +1,137 @@
|
||||||
![cryptalk](https://i.imgur.com/1sH36n5.png)
|
![cryptalk](/screenshot.png)
|
||||||
|
|
||||||
![Node.js CI](https://github.com/Hexagon/cryptalk/workflows/Node.js%20CI/badge.svg?branch=master)
|
![Node.js CI](https://github.com/Hexagon/cryptalk/workflows/Node.js%20CI/badge.svg?branch=master)
|
||||||
[![npm version](https://badge.fury.io/js/cryptalk.svg)](https://badge.fury.io/js/cryptalk)
|
[![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)
|
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.md)
|
||||||
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/753ef40cec1747c2b5025f834635375b)](https://www.codacy.com/gh/Hexagon/cryptalk/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Hexagon/cryptalk&utm_campaign=Badge_Grade)
|
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/753ef40cec1747c2b5025f834635375b)](https://www.codacy.com/gh/Hexagon/cryptalk/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Hexagon/cryptalk&utm_campaign=Badge_Grade)
|
||||||
|
|
||||||
# Cryptalk
|
# Cryptalk
|
||||||
|
|
||||||
Cyptalk is a HTML5/Node.js based, client side (E2EE) encrypted instant chat
|
Cyptalk is a HTML5/Node.js based, client side (E2EE) encrypted instant chat
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Client side AES-256-CBC encryption/decryption (the server is just a messenger)
|
* Client side AES-256-CBC encryption/decryption (the server is just a messenger)
|
||||||
* 256 bit key derived from your passphrase using PBKDF2
|
* 256 bit key derived from your passphrase using PBKDF2
|
||||||
* Messages torched after a configurable delay, default is 600s.
|
* Messages torched after a configurable delay, default is 600s.
|
||||||
* Simple setup using npm, Docker or Heroku
|
* Simple setup using npm, Docker or Heroku
|
||||||
* Notification sounds (mutable)
|
* Notification sounds (mutable)
|
||||||
* Native popup notifications
|
* Native popup notifications
|
||||||
* Configurable page title
|
* Configurable page title
|
||||||
* Nicknames, optional.
|
* Nicknames, optional.
|
||||||
* Quick-links using http://server/#Room:Passphrase, optional and insecure
|
* Quick-links using http://server/#Room:Passphrase, optional and insecure
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
|
||||||
### Docker setup
|
### Docker setup
|
||||||
|
|
||||||
To run latest cryptalk with docker, exposed on host port 80, simply run the following command to pull it from docker hub
|
To run latest cryptalk with docker, exposed on host port 80, simply run the following command to pull it from docker hub
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
|
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
|
||||||
```
|
```
|
||||||
|
|
||||||
### Heroku setup
|
### Heroku setup
|
||||||
|
|
||||||
Click the button below
|
Click the button below
|
||||||
|
|
||||||
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/hexagon/cryptalk)
|
[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/hexagon/cryptalk)
|
||||||
|
|
||||||
### Docker setup without using docker hub
|
### Docker setup without using docker hub
|
||||||
|
|
||||||
Clone this repo, enter the new directory.
|
Clone this repo, enter the new directory.
|
||||||
|
|
||||||
Build image
|
Build image
|
||||||
```bash
|
```bash
|
||||||
docker build . --tag="hexagon/cryptalk"
|
docker build . --tag="hexagon/cryptalk"
|
||||||
```
|
```
|
||||||
|
|
||||||
Run container, enable start on boot, expose to port 80 at host
|
Run container, enable start on boot, expose to port 80 at host
|
||||||
```bash
|
```bash
|
||||||
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
|
sudo docker run -d --restart=always -p 80:8080 hexagon/cryptalk
|
||||||
```
|
```
|
||||||
|
|
||||||
Browse to ```http://<ip-of-server>/```
|
Browse to ```http://<ip-of-server>/```
|
||||||
|
|
||||||
Done!
|
Done!
|
||||||
|
|
||||||
### npm setup
|
### npm setup
|
||||||
|
|
||||||
Install node.js, exact procedure is dependant on platform and distribution.
|
Install node.js, exact procedure is dependant on platform and distribution.
|
||||||
|
|
||||||
Install the app from npm
|
Install the app from npm
|
||||||
```bash
|
```bash
|
||||||
npm install cryptalk -g
|
npm install cryptalk -g
|
||||||
````
|
````
|
||||||
|
|
||||||
Then issue the following to start the app
|
Then issue the following to start the app
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cryptalk
|
cryptalk
|
||||||
```
|
```
|
||||||
|
|
||||||
Browse to ```http://localhost:8080```
|
Browse to ```http://localhost:8080```
|
||||||
|
|
||||||
Done!
|
Done!
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Available commands:
|
Available commands:
|
||||||
|
|
||||||
Client:
|
Client:
|
||||||
/key StrongPassphrase Sets encryption key
|
/key StrongPassphrase Sets encryption key
|
||||||
/nick NickName Sets an optional nick
|
/nick NickName Sets an optional nick
|
||||||
/mute Audio on
|
/mute Audio on
|
||||||
/unmute Audio off
|
/unmute Audio off
|
||||||
/clear Clear on-screen buffer
|
/clear Clear on-screen buffer
|
||||||
/help This
|
/help This
|
||||||
/title Set your local page title
|
/title Set your local page title
|
||||||
/torch AfterSeconds Console messages are torched
|
/torch AfterSeconds Console messages are torched
|
||||||
after this amount of seconds
|
after this amount of seconds
|
||||||
(default 600).
|
(default 600).
|
||||||
|
|
||||||
Room:
|
Room:
|
||||||
/join RoomId Join a room
|
/join RoomId Join a room
|
||||||
/leave Leave the room
|
/leave Leave the room
|
||||||
/count Count participants
|
/count Count participants
|
||||||
|
|
||||||
Host:
|
Host:
|
||||||
/connect Connect to host
|
/connect Connect to host
|
||||||
/disconnect Disconnect from host
|
/disconnect Disconnect from host
|
||||||
|
|
||||||
You can select any of the five last commands/messages with up/down key.
|
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
|
Due to security reasons, /key command is not saved, and command
|
||||||
history is automatically cleared after one minute of inactivity.
|
history is automatically cleared after one minute of inactivity.
|
||||||
|
|
||||||
It is highly recommended to use incognito mode while chatting,
|
It is highly recommended to use incognito mode while chatting,
|
||||||
to prevent browsers from keeping history or cache.
|
to prevent browsers from keeping history or cache.
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
Install node.js (development require >=12.0), exact procedure is dependant on platform and distribution.
|
Install node.js (development require >=12.0), exact procedure is dependant on platform and distribution.
|
||||||
|
|
||||||
Clone this repo
|
Clone this repo
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/Hexagon/cryptalk.git
|
git clone https://github.com/Hexagon/cryptalk.git
|
||||||
cd cryptalk
|
cd cryptalk
|
||||||
```
|
```
|
||||||
|
|
||||||
Pull dependencies from npm
|
Pull dependencies from npm
|
||||||
```bash
|
```bash
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
Start server
|
Start server
|
||||||
```bash
|
```bash
|
||||||
npm run start
|
npm run start
|
||||||
```
|
```
|
||||||
|
|
||||||
Browse to ```http://localhost:8080```
|
Browse to ```http://localhost:8080```
|
||||||
|
|
||||||
To work on the JavaScript, edit the code in ```client/source/```. To test the changes, first run ```npm run build``` to lint, build and minify the code. Then restart the server.
|
To work on the JavaScript, edit the code in ```client/source/```. To test the changes, first run ```npm run build``` to lint, build and minify the code. Then restart the server.
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,34 +1,42 @@
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
title: 'Claytonia Chat',
|
title: 'Cryptalk - Online',
|
||||||
|
|
||||||
ttl: 600000,
|
ttl: 600000,
|
||||||
|
|
||||||
motd: '<pre>\n\n' +
|
motd: '<pre>\n\n' +
|
||||||
' Welcome to Claytonia Chat \n' +
|
'▄████▄ ██▀███ ▓██ ██▓ ██▓███ ▄▄▄█████▓ ▄▄▄ ██▓ ██ ▄█▀ \n' +
|
||||||
' Tip of the day: /help \n' +
|
'▒██▀ ▀█ ▓██ ▒ ██▒▒██ ██▒▓██░ ██▒▓ ██▒ ▓▒▒████▄ ▓██▒ ██▄█▒ \n' +
|
||||||
' Public Room: /join Claytonia \n' +
|
'▒▓█ ▄ ▓██ ░▄█ ▒ ▒██ ██░▓██░ ██▓▒▒ ▓██░ ▒░▒██ ▀█▄ ▒██░ ▓███▄░ \n' +
|
||||||
' Public Key: /key Claytonia \n' +
|
'▒▓▓▄ ▄██▒▒██▀▀█▄ ░ ▐██▓░▒██▄█▓▒ ▒░ ▓██▓ ░ ░██▄▄▄▄██ ▒██░ ▓██ █▄ \n' +
|
||||||
' Everyone in the room must have the same key to decrypt messages. \n' +
|
'▒ ▓███▀ ░░██▓ ▒██▒ ░ ██▒▓░▒██▒ ░ ░ ▒██▒ ░ ▓█ ▓██▒░██████▒▒██▒ █▄ \n' +
|
||||||
'----------------------------------------------------------------------' +
|
'░ ░▒ ▒ ░░ ▒▓ ░▒▓░ ██▒▒▒ ▒▓▒░ ░ ░ ▒ ░░ ▒▒ ▓▒█░░ ▒░▓ ░▒ ▒▒ ▓▒ \n' +
|
||||||
'</pre>',
|
' ░ ▒ ░▒ ░ ▒░▓██ ░▒░ ░▒ ░ ░ ▒ ▒▒ ░░ ░ ▒ ░░ ░▒ ▒░ \n' +
|
||||||
|
'░ ░░ ░ ▒ ▒ ░░ ░░ ░ ░ ▒ ░ ░ ░ ░░ ░ \n' +
|
||||||
nick: {
|
'░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ \n' +
|
||||||
maxLen: 20,
|
'░ ░ ░ \n' +
|
||||||
minLen: 2,
|
' https://github.com/hexagon/cryptalk \n' +
|
||||||
},
|
' \n' +
|
||||||
|
' Tip of the day: /help \n' +
|
||||||
key: {
|
'----------------------------------------------------------------------' +
|
||||||
maxLen: 1024,
|
'</pre>',
|
||||||
minLen: 8,
|
|
||||||
},
|
nick: {
|
||||||
|
maxLen: 20,
|
||||||
room: {
|
minLen: 2,
|
||||||
minLen: 1,
|
},
|
||||||
maxLen: 64
|
|
||||||
},
|
key: {
|
||||||
|
maxLen: 1024,
|
||||||
notifications: {
|
minLen: 8,
|
||||||
maxOnePerMs: 3000
|
},
|
||||||
}
|
|
||||||
};
|
room: {
|
||||||
|
minLen: 1,
|
||||||
|
maxLen: 64
|
||||||
|
},
|
||||||
|
|
||||||
|
notifications: {
|
||||||
|
maxOnePerMs: 3000
|
||||||
|
}
|
||||||
|
};
|
|
@ -1,17 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Cryptalk Node.js App
|
|
||||||
Documentation=https://github.com/Hexagon/cryptalk
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/usr/bin/npm run start
|
|
||||||
WorkingDirectory=/home/cryptochat/cryptalk
|
|
||||||
Restart=always
|
|
||||||
RestartSec=10
|
|
||||||
Environment=NODE_ENV=production
|
|
||||||
Environment=PATH=/usr/bin
|
|
||||||
User=cryptochat
|
|
||||||
Group=cryptochat
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1550,9 +1550,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "2.70.1",
|
"version": "2.79.1",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
||||||
"integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==",
|
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
|
@ -3149,9 +3149,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rollup": {
|
"rollup": {
|
||||||
"version": "2.70.1",
|
"version": "2.79.1",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
||||||
"integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==",
|
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fsevents": "~2.3.2"
|
"fsevents": "~2.3.2"
|
||||||
|
|
Loading…
Reference in New Issue