Muteswan Servers

Muteswan servers run behind Tor hidden nodes. There is a sample server
available but folks are encouraged to stand up their own servers for themselves
or their community.

The sample server is built into the Android Muteswan client but please
understand this should only be used to experiment with Muteswan.

Running your own server

Running your own Muteswan server is relatively straightforward. It involves three main steps:

  1. Compile or download the server for your platform
  2. Configure a Tor hidden node
  3. Run the server using a file or MongoDB backed datastore

Compiling the server

The Muteswan server is written in Go which makes it very easy to compile and
deploy on a variety of platforms. The server supports Windows and Linux and has
been run on Intel and ARM chipsets.

  1. Download the Go compiler: http://code.google.com/p/go/downloads/list
  2. Downoad the Muteswan source code:
    git clone http://muteswan.org/git muteswan
  3. Set your GOPATH to where you downloaded the source, e.g.:
    export GOPATH=$HOME/muteswan
  4. Go into the src dir:
    cd $GOPATH/src
  5. Compile the server:
    go build -o muteswan-server server.go

Configuring a Tor hidden service

Installing a hidden service is documented here: https://www.torproject.org/docs/tor-hidden-service.html.en

Ensure that the hidden service configuration is pointing to the same local port
that the Muteswan server is running. The Muteswan server will default to port
8080, which is also what the Tor documentation references:


HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080

Running the Muteswan server

To install the server, simply copy it to a location of your choice such as /usr/local/sbin

The Muteswan server currently supports two backend database types: a file based
backend and a MongoDB backend. The Muteswan server currently assumes that the
MongoDB is running on the same host as the server.

To run the server using the file backend:
/usr/local/sbin/muteswan-server -dbtype=file -db=/path/to/muteswan-server/db -name=ServerName

To run the server using the MongoDB backend:
/usr/local/sbin/muteswan-server -dbtype=mongo -db=muteswan -name=ServerName

You should run the Muteswan server on a non-privileged port, such as 8080, the
default. To override this use the —port cmdline flag.

Logging will occur to standard output.

Publish your hidden server as a QRcode and start creating circles.

The server will generate a qrcode:
http://hiddennodeaddr.onion/qrcode
you can scan it with Muteswan (use the Join button).