Get metachory

metachory is currently provided as an alpha release. There is a lot of work still to be done, but at this point we feel it is important for others to be able to explore and try out not only the system itself, but also the codebase.

git clone https://metachory.org/mx.git


Enjoy! Questions and comments can be directed to jeff@turkstra.net

The Quick-Start Guide to Using Metachory
========================================

Find a 64-bit (preferable) or 32-bit Linux system of recent vintage.
At the time of writing, any system released in 2014 or later should be
adequate.  Unpack the Metachory sources, cd to that directory and:

In case of problems:
--------------------

See the Documentation/known-problems.txt file.

Build it:
---------

    $ make

When building on Fedora, ensure the following dependencies are installed:

    $ dnf install libmhash libmhash-devel gmp gmp-devel bison flex

Install it:
-----------

Copy the resulting 'mx' executable to somewhere that is in your path
or simply refer to it by its full path when invoking it.

Set up run-time options:
------------------------

Create a .mx directory and config file in your home directory.  This
config file creates the bare minimum of credentials needed to let a
client authenticate to a server.  (Feel free to replace *ALL* instances
of "me" and "myacc" with something else, as well as replace "mypassword".)

    mkdir ~/.mx/
    cat > ~/.mx/config << EOF
    update designation * identity=me
    update identity me account=myacc privs=server key=plaintext:mypassword:0
    update account me
    EOF

Start a server:
---------------

    mx -s -l 2345

Start a client:
---------------

    mx -c localhost:2345 sh

If everything worked, the 'sh' command is running in container that is
supervised by the mx server rather than natively on the host system.
You can check this by typing in that shell:

    echo $$

If it reports "40000", it's running in mx.  You can run other commands in
this shell or try other programs instead of this shell.  Type 'exit' to
terminate the shell.  Feel free to start other clients with the same server.
When you're all done, terminate the server.