GithubHelp home page GithubHelp logo

hr / ciphora Goto Github PK

View Code? Open in Web Editor NEW
86.0 6.0 20.0 2.79 MB

🕊️🔒💬 A P2P end-to-end encrypted messaging app

Home Page: https://habibrehman.com/work/ciphora

License: MIT License

HTML 0.16% JavaScript 54.61% SCSS 45.23%
chat chat-application p2p p2p-chat e2e-encryption end-to-end-encryption messaging messenger pgp decentralized

ciphora's Introduction


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

ciphora's People

Contributors

dependabot[bot] avatar ferndot avatar hr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ciphora's Issues

Error: Cannot find module 'get-browser-rtc'

I follow all the steps in Setup and Run instructions, but I am still getting this error on "In a new tty, run the app $ gulp" step:

zumbata@zumbata-desktop:~/ciphora$ gulp 
[17:40:41] Using gulpfile ~/ciphora/gulpfile.js
[17:40:41] Starting 'default'...
[17:40:41] Starting 'electron'...
[17:40:41] Finished 'electron' after 3.11 ms
App threw an error during load
Error: Cannot find module 'get-browser-rtc'
Require stack:
- /home/zumbata/ciphora/src/main/lib/simple-peer/index.js
- /home/zumbata/ciphora/src/main/lib/Peers.js
- /home/zumbata/ciphora/src/main/index.js
- /home/zumbata/ciphora/node_modules/electron/dist/resources/default_app.asar/main.js
- 
    at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
    at Function.n._resolveFilename (electron/js2c/browser_init.js:257:1128)
    at Module._load (internal/modules/cjs/loader.js:732:27)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
    at Module.require (internal/modules/cjs/loader.js:959:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/home/zumbata/ciphora/src/main/lib/simple-peer/index.js:3:21)
    at Module._compile (internal/modules/cjs/loader.js:1078:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)
    at Module.load (internal/modules/cjs/loader.js:935:32)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'get-browser-rtc'
Require stack:
- /home/zumbata/ciphora/src/main/lib/simple-peer/index.js
- /home/zumbata/ciphora/src/main/lib/Peers.js
- /home/zumbata/ciphora/src/main/index.js
- /home/zumbata/ciphora/node_modules/electron/dist/resources/default_app.asar/main.js
- 
    at Module._resolveFilename (internal/modules/cjs/loader.js:887:15)
    at Function.n._resolveFilename (electron/js2c/browser_init.js:257:1128)
    at Module._load (internal/modules/cjs/loader.js:732:27)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
    at Module.require (internal/modules/cjs/loader.js:959:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/home/zumbata/ciphora/src/main/lib/simple-peer/index.js:3:21)
    at Module._compile (internal/modules/cjs/loader.js:1078:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)
    at Module.load (internal/modules/cjs/loader.js:935:32)
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)

I am attaching the result from "For faster dev, run the bundler (webpack) $ yarn run bundler" step too:

zumbata@zumbata-desktop:~/ciphora$ yarn run bundler
yarn run v1.22.10
$ BROWSER=none webpack serve --mode development
ℹ 「wds」: Project is running at http://localhost:9000/
ℹ 「wds」: webpack output is served from /
ℹ 「wds」: Content not from webpack is served from /home/zumbata/ciphora
ℹ 「wdm」: assets by chunk 5.38 MiB (name: main)
  asset app.js 5.3 MiB [emitted] (name: main)
  asset app.css 82.5 KiB [emitted] (name: main)
asset 175f391f238cd7deffa88e420c9b32ff.woff2 49.4 KiB [emitted] [immutable] [from: static/fonts/ionicons.woff2] (auxiliary name: main)
asset ./index.html 324 bytes [emitted]
Entrypoint main 5.38 MiB (49.4 KiB) = app.css 82.5 KiB app.js 5.3 MiB 1 auxiliary asset
runtime modules 1.04 KiB 5 modules
modules by path ./node_modules/ 1.92 MiB 194 modules
modules by path ./src/ 45.3 KiB
  modules by path ./src/renderer/components/*.js 39.4 KiB 13 modules
  modules by path ./src/renderer/lib/*.js 4.44 KiB 2 modules
  ./src/renderer/index.js 1.14 KiB [built] [code generated]
  ./src/consts.js 372 bytes [built] [code generated]
modules by path ./static/scss/*.scss 50 bytes (javascript) 82.5 KiB (css/mini-extract)
  ./static/scss/index.scss 50 bytes [built] [code generated]
  css ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./static/scss/index.scss 82.5 KiB [code generated]
6 modules
webpack 5.40.0 compiled successfully in 1955 ms
ℹ 「wdm」: Compiled successfully.

Simple Peer Not Found

App threw an error during load
Error: Cannot find module './simple-peer'
Require stack:

  • /somedirectory/ciphora/src/main/lib/Peers.js
  • /somedirectory/ciphora/src/main/index.js
  • /somedirectory/ciphora/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js
  • at Module._resolveFilename (internal/modules/cjs/loader.js:798:15)
    at Function../lib/common/reset-search-paths.ts.Module._resolveFilename (electron/js2c/browser_init.js:7718:16)
    at Module._load (internal/modules/cjs/loader.js:691:27)
    at Function.Module._load (electron/js2c/asar.js:748:26)
    at Module.require (internal/modules/cjs/loader.js:853:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object. (/somedirectory/ciphora/src/main/lib/Peers.js:15:10)
    at Module._compile (internal/modules/cjs/loader.js:968:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:986:10)
    at Module.load (internal/modules/cjs/loader.js:816:32)

Ciphora download?

I think this app have a great potential, but I think must be served a compiled download and not a download button that doesn't work...
Please, compile this app!!!

Existence

Existence is always the main problem, I know. But hey, project looks nice and simple; you have put a lot of nice writing to it - what's about it's future?

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.