uselessly simple server program to receive and collect TCP messages
Go to file
Ellie D 80be2536dc fixed log file formatting 2019-06-02 12:31:48 -05:00
.gitignore updated gitignore 2019-06-02 11:54:39 -05:00
LICENSE added license 2019-05-30 17:12:58 -05:00
README.md completely overhauled everything 2019-06-01 21:47:35 -05:00
epistlebox fixed munged match block that somehow happened 2019-06-02 11:56:42 -05:00
epistlebox.rs fixed log file formatting 2019-06-02 12:31:48 -05:00

README.md

Epistlebox Datagram Server v0.2

Elizabeth Evelene Amelia Diode, June 2019

AGPL v3


Introduction

Email is bad, so we decided to make something even worse.

This is Epistlebox, a server application for receiving and collecting messages that people send to you. If they run their own Epistlebox instance, you can write back.


Features

  • Uses TCP
  • Fully multithreaded
  • So simple that you can probably use it by accident
  • Receives arbitrary files
  • AGPL for some reason
  • Decentralized communication platform!!!1
  • Arguably federated
  • You can block IP addresses, we're not monsters

How it works

Epislebox listens on any number of supplied TCP ports for incoming connections. When a connection is established, Epistlebox records all the data sent to it, and emits a file containing that data into the working directory. It also records the IP address from which each file originated in .epistleslog. Files are not named with any scheme associated with their contents, so finding out what they are and how to open them is left as an exercise for the user.
For organization purposes, files received are placed into directiories by port number from which they were received.

Epistlebox is a sister project of Sunbeam, with similar unspecified intended use cases and a similarly cursed existence. Epistlebox can complement Sunbeam by acting as a sort of recorder-logger for Sunbeam's data streams.


How to block IP addresses

These days, being able to filter the messages that are sent to you is one of the most important freedoms in all of human civilization. Epistlebox offers two simple modes of operation to allow this:

  1. IP addresses (v4 and v6 are both fine) listed in the file .noepistles will always have their connections dropped and can't send you anything.
  2. If you suffix a port number argument with the letter w, then Epistlebox will only allow connections on that port if they originate from an IP address listed in .yeepistles.

You can also designate a port as local-only, causing it to reject all connections that don't originate from the same machine, by suffixing port arguments with p.


How to send a message to Epistlebox

  1. nc [server address] [port]
  2. Type your message, hitting enter after each line.
  3. Exit nc with ctrl-c.

If you want to send a file to an Epistlebox instance, you could do something like
cat malware.jar | nc [server address] [port]