Skip to content

A secure, anonymous, and decentralized messaging app using the Tor network. No registration, no personal information required. Perfect for privacy enthusiasts.

Notifications You must be signed in to change notification settings

StringManolo/DarkMessenger

Repository files navigation

DarkMessenger

DarkMessenger is a peer-to-peer messaging app that leverages the Tor Network to provide secure and anonymous communication. It bypasses ISP restrictions and CGNAT networks, enabling you to communicate in a decentralized manner without the need for registration or personal information.

Features

  • Anonymous Messaging: Use Tor hidden services to send and receive messages securely.
  • No Registration: No need to create an account or provide any personal information.
  • Address Book: Easily manage your contacts with aliases pointing to .onion addresses.
  • Command Line Interface: Simple and straightforward CLI for ease of use.

Requirements

You need to have the following software installed on your system:

  • Linux (or Termux with a proot distro)
  • Tor
  • Git
  • Node.js
  • npm
  • curl

Example Installation on Alpine Linux

apk update
apk add tor git nodejs npm curl

Installation

Clone the repository and install the dependencies:

git clone https://github.com/StringManolo/DarkMessenger
cd DarkMessenger
npm install

./DarkMessenger.js

Usage

Start the DarkMessenger services:

./DarkMessenger.js start

Stop the DarkMessenger services:

./DarkMessenger.js stop

Add a new contact:

./DarkMessenger.js add [alias] [domain.onion]

Request a remote server to add you as a contact:

./DarkMessenger.js addme [domain.onion]

Show a specific contact or all contacts:

./DarkMessenger.js contacts <alias>

Send a message to a contact:

./DarkMessenger.js send [alias] [message]

Show messages from a contact or all contacts:

./DarkMessenger.js show <alias>

Delete a message by their id:

./DarkMessenger.js delete [id]

Configuration

Default config files are included within the repository. (You do not need to change anything in this files for the program to work).

Your main configuration file is config/dark-messenger.json. Key settings include:

  • username: The name other users will use to send you messages.
  • check_new_messages_seconds: Seconds to check for new messages.
  • hidden_service_address: Local address for your .onion service.
  • hidden_service_port: Port for your .onion service.
  • tor_socks_url: Tor SOCKS proxy address.

Example Configuration (config/dark-messenger.json)

{
  "username": false,
  "use_web_gui": false,
  "web_gui_address": "127.0.0.1",
  "web_gui_port": 9000,
  "http_tor_proxy_url": "http://127.0.0.1:9002/",
  "http_tor_proxy_port": 9002,
  "hidden_service_address": "127.0.0.1",
  "hidden_service_hostname": "auto",
  "hidden_service_port": 9001,
  "tor_socks_url": "127.0.0.1:9050",
  "add_back": true,
  "alert_on_new_messages": true,
  "check_new_messages_seconds": 20,
  "verbose": true,
  "debug": true,
  "debug_with_time": true
}

Example Tor Configuration (config/torrc.conf)

DataDirectory ./tor_files/
SocksPort 9050
Log notice file ./logs/notices.log
HiddenServiceDir ./hidden_service
HiddenServicePort 9001 127.0.0.1:9001
ORPort 0
AvoidDiskWrites 1

Public Lists

https://github.com/StringManolo/DarkMessengerLists/blob/main/README.md

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue if you have any suggestions or improvements.

FAQ

If you have questions, click here to open the FAQ.

About

A secure, anonymous, and decentralized messaging app using the Tor network. No registration, no personal information required. Perfect for privacy enthusiasts.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published