Package: magic-wormhole-mailbox-server
# Magic Wormhole Mailbox Server
[![PyPI](http://img.shields.io/pypi/v/magic-wormhole-mailbox-server.svg)](https://pypi.python.org/pypi/magic-wormhole-mailbox-server)
[![Build Status](https://travis-ci.org/warner/magic-wormhole-mailbox-server.svg?branch=master)](https://travis-ci.org/warner/magic-wormhole-mailbox-server)
[![Windows Build Status](https://ci.appveyor.com/api/projects/status/mfnn5rsyfnrq576a/branch/master?svg=true)](https://ci.appveyor.com/project/warner/magic-wormhole-mailbox-server)
[![codecov.io](https://codecov.io/github/warner/magic-wormhole-mailbox-server/coverage.svg?branch=master)](https://codecov.io/github/warner/magic-wormhole-mailbox-server?branch=master)This repository holds the code for the main server that
[Magic-Wormhole](http://magic-wormhole.io) clients connect to. The server
performs store-and-forward delivery for small key-exchange and control
messages. Bulk data is sent over a direct TCP connection, or through a
[transit-relay](https://github.com/warner/magic-wormhole-transit-relay).Clients connect with WebSockets, for low-latency delivery in the happy case
where both clients are attached at the same time. Message are stored to
enable non-simultaneous clients to make forward progress. The server uses a
small SQLite database for persistence (and clients will reconnect
automatically, allowing the server to be rebooted without losing state). An
optional “usage DB” tracks historical activity for status monitoring and
operational maintenance.## Installation` pip installmagic-wormhole-mailbox-server`You either want to do this into a “user” environment (putting thetwistandtwistdexecutables in~/.local/bin/) like this:` pip install--usermagic-wormhole-mailbox-server`or put it into a virtualenv, to avoid modifying the system python’s
libraries, like this:` virtualenv venv source venv/bin/activate pip installmagic-wormhole-mailbox-server`You probablydon’twant to usesudowhen you runpip, since the
dependencies that get installed may conflict with other python programs on
your computer.pipsiis usually a good way to install into isolated
environments, but unfortunately it doesn’t work for
magic-wormhole-mailbox-server, because we don’t have a dedicated command to
start the server (twist, described below, comes from thetwistedpackage, and pipsi doesn’t expose executables from dependencies).For the installation from source,clonethis repo,cdinto the folder,
create and activate a virtualenv, and runpip install ..## Running A ServerNote that the standard [Magic-Wormhole](http://magic-wormhole.io)
command-line tool is preconfigured to use a mailbox server hosted by the
project, so running your own server is only necessary for custom applications
that use magic-wormhole as a library.The mailbox server is deployed as a twist/twistd plugin. Running a basic
server looks like this:` twistwormhole-mailbox--usage-db=usage.sqlite`Usetwistwormhole-mailbox--helpfor more details.If you use the default--port=tcp:4000, on a machine namedexample.com, then clients can reach your server with the following
option:` wormhole--relay-url=ws://example.com:4000/v1send FILENAME `## License, CompatibilityThis library is released under the MIT license, see LICENSE for details.This library is compatible with python2.7, and python3 (3.5 and higher).