Compare commits

..

1 Commits

Author SHA1 Message Date
dependabot[bot] 664536ebc5
Bump rollup from 2.70.1 to 2.79.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.70.1 to 2.79.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.70.1...v2.79.1)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-22 14:03:29 +00:00
6 changed files with 186 additions and 196 deletions

1
.github/FUNDING.yml vendored
View File

@ -1,2 +1 @@
github: [hexagon] github: [hexagon]
ko_fi: hexagon_56k

274
README.md
View File

@ -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&amp;utm_medium=referral&amp;utm_content=Hexagon/cryptalk&amp;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&amp;utm_medium=referral&amp;utm_content=Hexagon/cryptalk&amp;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

View File

@ -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
}
};

View File

@ -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

12
package-lock.json generated
View File

@ -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"