Skip to content
/ ciphora Public

πŸ•ŠοΈπŸ”’πŸ’¬ A P2P end-to-end encrypted messaging app

License

Notifications You must be signed in to change notification settings

HR/ciphora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

75 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Ciphora
Ciphora

A decentralized end-to-end encrypted messaging app.

Download latest release

A peer-to-peer end-to-end encrypted messaging app. Implements the secure signal protocol for the end-to-end encryption of messages and PGP for identity verification and authentication. This approach not only protects against man-in-the-middle attacks but removes the need for in-person verification like with other E2E encryption apps (WhatsApp, Signal,...) where identity keypairs are generated on a per-device basis and each has to be verified manually in-person.

Learn more at https://habibrehman.com/work/ciphora


Features

  • End-to-end encrypted messaging
  • Peer-to-peer messaging
  • Sending images
  • Sending files
  • Dark Mode
  • Offline messaging
  • Local encryption

You are welcome to open pull requests to help implement the features still to do!

Install

macOS 10.10+, Linux, and Windows 7+ are supported (64-bit only).

macOS

Download the .dmg file.

Linux

Download the .AppImage or .deb file.

The AppImage needs to be made executable after download.

Windows

Download the .exe file.

Dev

Needs the Ciphora Server as well (https://github.com/HR/ciphora-server/)

Setup

Clone the repos

$ git clone --recurse-submodules https://github.com/HR/ciphora.git
$ git clone https://github.com/HR/ciphora-server.git

Install deps for both repos

$ yarn

Run

For faster dev, run the bundler (webpack)

$ yarn run bundler

In a new tty, run the app

$ gulp

To test the app locally with another app, just run a second instance in a new tty

$ gulp

N.B. on macOS, you may be prompted to allow incoming connections everytime you run it. Unfortunately the only way to make that go away currently is to disable your firewall temporarily.

Publish

$ npm run release

After Travis finishes building your app, open the release draft it created and click "Publish".