GithubHelp home page GithubHelp logo

hadrienboyer / lacrypte Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 5.8 MB

Secure chat system.

Home Page: https://HadrienBoyer.github.io/LaCrypte/

License: MIT License

Dockerfile 0.39% CSS 5.84% HTML 1.43% JavaScript 92.34%
chat e2ee end secure system

lacrypte's Introduction

LaCrypte

Node.js CI npm version License Codacy Badge

LaCrypte

LaCrypte 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

Installing

Docker setup

To run latest LaCrypte 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 HadrienBoyer/LaCrypte

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="HadrienBoyer/LaCrypte"

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

sudo docker run -d --restart=always -p 80:8080 HadrienBoyer/LaCrypte

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 LaCrypte -g

Then issue the following to start the app

LaCrypte

Browse to http://localhost:8080

Done!

Usage


Available commands:

\\ Client:
	/key		<your-strong-passphrase>	Sets encryption key
	/nick		<your-pseudo>				Sets an nickname (optional)
	/title									Set your local page title
	/mute  									Audio off
	/unmute  								Audio on
	/clear									Clear on-screen buffer
	/help									You are here :)
	/torch		<after-x-seconds>			Console messages are torched
											after this amount of seconds
											(default 600).

\\ Room:
	/join		<room-id>					Join a room
	/count									Count participants
	/leave									Leave the room

\\ Host:
	/connect						Connect to 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.


Development

Install node.js (development require >=12.0), exact procedure is dependant on platform and distribution.

Clone this repo

git clone https://github.com/HadrienBoyer/LaCrypte.git
cd LaCrypte

Pull dependencies from npm

npm install

Start server

npm run start

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.

lacrypte's People

Contributors

hadrienboyer avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.