Skip to main content

Simple, anyonymous chat app where messages are never saved to a disk. Ever.

Project description

ethernot

Super-simple encrypted command line text messaging where messages are stored only in the memory of all computers connected.

pronounced like "ethernet" but... not

installation

pip install ethernot (or pipx if you so require)

usage

ethernot --server <server> --user <username> If the server requires, you may --renewcerts There is a test server hosted at 70.27.0.129, or you may host your own instance of tethernot by scrolling down.

features

  • Runs on any device that supports Python and is connected to the internet.
  • No port forwarding necessary, unless you're hosting a relay server.
  • Server never saves any messages - not even in memory. It can't even read them.
  • Your messages are never saved to disk. They're only kept alive by any clients connected.
  • No stupid accounts needed. All messages are only linked to whichever username you choose for the session.
  • Multiple channel support.
  • Minimal command line interface. Server doesn't even need to output anything (but it still does).
  • No analytics, trackers, or bigwig corporate executives spying on your every move.
  • Per-IP rate limiting and basic sync - no banning though, that just wouldn't work.
  • Kinda-sorta-encrypted? idk encryption is hard

NOTE: Traffic is encrypted, but ethernot is !VULNERABLE! to man-in-the-middle attacks during a client's *first* connection.

hosting

To host your own tethernot server:

  • Install tethernot's dependencies: asyncio, cryptography
  • Port forward port 6780 on your router. This will vary based on your manufacturer; if you can't figure out how to do it, you shouldn't be messing with it.
  • NOTE: If your network is behind CG-NAT, you will not be able to port forward and thus will not be able to run tethernot. The client will still run fine!
  • Clone the repository: git clone https://github.com/qwikster/ethernot.git
  • Move into it: cd /ethernot
  • Start the tethernot.py script: python tethernot.py
  • That's it! Share the ip with your users and they can connect. You can't do anything but see IP addresses on this client, it's just a relay.
  • If you ever need to regenerate the server certificates: python tethernot.py --regencerts

arguments

Some useful arguments for tethernot:

Argument Use Default Value
--regencerts Regenerate certificates to connect clients anew. --
--port <0-65536> Choose a port to run tethernot on. 6780
--bucket Set the max messages a client can send before being rate limited. 5 messages
--bucketfill Set the regeneration rate in seconds (float) of the rate limit "bucket". 1.0 seconds
--blocktime Set time in seconds to block a user after they've been rate limited. 30 seconds

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ethernot-0.2.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ethernot-0.2.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file ethernot-0.2.0.tar.gz.

File metadata

  • Download URL: ethernot-0.2.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for ethernot-0.2.0.tar.gz
Algorithm Hash digest
SHA256 eac75d78f10010660c5d47b287f27954ea0c2acae0a80f6212e4e9467b33e3f2
MD5 6863f19b113d64b865876499ba9c8246
BLAKE2b-256 e74463a40a2d9575ea52fa5afa44c14e80f06130595858565d30dd8bff141d87

See more details on using hashes here.

File details

Details for the file ethernot-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ethernot-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for ethernot-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52ba0bca50bd17db6e493557fec4b6a7b7ff83356c2f8e1f7d7bd4587fce3ccd
MD5 d90df7538c1daac1d4bc56403eb5fa32
BLAKE2b-256 93a8c4a2e396ed024c4345ad9d26f78e8921eee94e63afe80ad20b02de3913c4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page