DotLine is an instant messaging application with end-to-end encryption support out of the box built on top of Node.js and Apache Cassandra.
DotLine supports several type of content, such as text messages, attachments, geo positions, voice messages, and stickers.
This is the official server repository, if you are interested in DotLine client instead, head to this repository.
Most important DotLine features:
- End-to-end encryption support based on AES-256 and RSA.
- User account recovery support through secret recovery key.
- Supports text messages, attachments, geo positions, voice messages, and stickers (static and animated).
- Discrete with a very low privacy footprint and access tracking for additional account security.
Disclaimer: I made this as part of my graduation project, for that reason this piece of software is provided "as is" and without any sort of warranty or guarantee for future updates.
If you feel a little curious you can try out DotLine here.
You can set up your personal DotLine instance using the ready-to-use Docker image available for Linux (both amd64 and arm64) here; alternatively you can simply clone this repository and follow install instruction to set up DotLine without using Docker on your local environment to try out or customize the software.
Before start installing DotLine on your local environment please make sure you have all the required dependencies:
- Node.js version 18 or greater.
- Apache Cassandra 3.11 or greater, alternatively you can use a DBaaS such as DataStax Astra.
- Redis 7 or greater, again feel free to use a DBaaS such as Redis Enterprise Cloud if you prefer.
Once external dependencies are ready you can simply clone this repository and then install all the required modules running npm install
in the project root directory.
Before running the application place your configuration file in config/config.json
, you can find a configuration sample in the config
directory.
Note that the configuration file and its sample are in JSON 5 format, so feel free to use comments if you need them.
Now you are ready to start your very own server, you can do that by simply running one of the following commands: node index.js
or npm start
.
If you are looking for instructions to install the software as a Docker container refer to the official page on Docker Hub.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Developed with ❤️ by Enrico Sola.