Warning
This is a proof of concept, it was not audited!
Vortex is a lightweight, end-to-end encrypted chat application that ensures message authenticity and confidentiality. It offers transport agnosticism, supporting both PostgreSQL and WebSocket, all in less than 600 lines of Python code.
- Clone the repository or download
requirements.txtandvortex.pyto an empty directory. - Install python dependencies:
pip install -r requirements.txt
- Generate your public/private key pair:
./vortex.py --generate-keys
- Share your public key (
id_rsa.pub) with your contacts and ask them to share theirs with you. - Put your contacts' public keys in the
known_usersfile. E.g.:# Work contacts: ssh-rsa <public key> John ssh-rsa <public key> Ofélia HR # Family: ssh-rsa <public key> Mother ssh-rsa <public key> Father ssh-rsa <public key> Joana - Optionally, add rooms to the
known_roomsfile. E.g.:# Work: Jonh, Ofélia HR # Family: Joana, Mother, Father - Run:
Where
./vortex.py <connection-uri>
<connection-uri>is either a PostgreSQL connection string or a WebSocket:postgresql://user:password@localhost:5432/vortex,ws://localhost:8080,wss://localhost:8080.
Create a database like the specified on postgres-setup.sql if you want to use
PostgreSQL, or, to start a WebSocket server run:
./websocket-server.py