Print this page

Zendemic README

Zendemic README


Zendemic is a peer to peer network application platform. The main Zendemic application itself serves to provide the infrastructure and services for other Zendemic applications to easily find and communicate with each other.

Zendemic can be run by itself to help provide network services to the network at large or it can be used as your gateway to access the Zendemic network.  If you run any Zendemic applications you must run Zendemic so that they can connect to the network.

When Zendemic runs it attempts to find other Zendemic nodes on the internet and make connections to them.  Once connected, your computer is part of the Zendemic network and can be used to run Zendemic applications on.

Being a peer to peer network there is no mothership. There is no central server required for all nodes to function.  Instead every machine on the network is a peer, and all the nodes cooperate to provide services similar to the way a traditional server
farm at a large company would.

That said, there will be a bootstrapping process where the first few nodes will need to be able to find each other, so for this purpose, there is a Zendemic server running at a well known location, that any Zendemic server can connect to,
to try and find some peers.  Once the network is big enough and peers have a collection of server locations cached, this global directory should no longer be needed.

In addition, Zendemic can make a network within a local private network.  If you have 5 wifi devices connecting to the same wifi router, they should be able to find each other without need for any outside internet connectivity.


Zendemic and its companion applications are written in java so that they might achieve the widest array of platform use.  The installation zip file includes scripts to start Zendemic on a variety of unix and windows installations.

Zendemic is also provided as an android application. Please visit to get information about the android suite of applications.


As Zendemic is a java application it will not work without an installation of java.  Java 1.6 or later is required.

Other than that, it should run on anything that runs java. Tests on a traditional desktop computer as well as a Raspberry pi were problem free.


The installation file is provided as a zip file. There is no special installation procedure, simply create a new folder and extract the zip into that new empty folder and run the "run_zendemic" script appropriate to your platform.

For windows users, run "run_zendemic.bat"

For unix users, run ""

From windows explorer you can drag and create a shortcut to run_zendemic.bat to your desktop to create a startup icon.  Zendemic is most useful if it is left running all the time, so you can drag a shortcut to the script to your startup folder to have it
start when the computer starts.

Unix users can run the script from the command line or your favorite GUI file manager.


All Zendemic applications must live within the same folder structure. So if you created a folder c:\zendemic and extracted the installation zip file there, c:\zendemic is considered the "base zendemic folder."

All application run scripts will be in this folder. In addition, each application will have a subfolder in this base zendemic folder to store its application specific data.

Continuing with the example, the Zendemic installation zip file will create a folder called c:\zendemic\zendemic and put most of its files there.  If you were to install the Zendemic Sync application, you would extract the Zendemic Sync installation zip
file to the same base zendemic folder "c:\zendemic" and it would create a folder c:\zendemic\zensync and put most of its files there.  The run_zendemic_sync.bat file would be in c:\zendemic.  As Zendemic Sync needs a storage folder, it will create a
folder c:\zendemic\zensync\zensyncshare to hold shared files.

All Zendemic application and data files will by default live in the base zendemic folder tree.


Zendemic does very little directly with the end user, it is the platform on which you can run other Zendemic applications, but it still requires a little configuration.

When Zendemic starts up it will display a web page called the Zendemic Console allowing you to see the current state of your part of the Zendemic network, and allow you to configure a few options.

The most important concept you need to understand to use the Zendemic network is the idea of zones.

The internet is a big place, and if everybody were to try and connect to each other directly you'd end up with a large unwieldy mess.  So Zendemic allows you to create named networks, called zones.

You can be part of as many zones as you want, you should pick zones that would be useful to provide the services you wish to use.  There is no limit to the number of people who can participate in a zone and there is almost no limit to the number of
possible zones.  Zone names are limited to 60 characters, valid name characters are lower case a-z, 0-9, hyphen -, underscore _ and period.

For example, there is a default "zendemic" zone that you are placed in by default just to get you started, but once you're part of some other zones, you wouldn't need to stay in the zendemic zone.

You can create your own zone simply by adding it to the list of zones you participate in on the Zendemic console.

For example, if you used the Zendemic Sync application to keep backups of data in multiple places, you could make a zone named "john_smiths_backup_zone".  Add this zone to all of the Zendemic nodes you wanted to synchronize data between and then those
machines would connect to each other becoming a little network of their own, and this way, Zendemic wouldn't go looking all over the world for places to synchronize your data, it would only look on the machines that are part of john_smiths_backup_zone.


On the left side of the Zendemic console screen is a list of nodes that your Zendemic server is currently connceted to.  This panel updates every 10 seconds automatically.

On the right side are the configuration options, described in detail below:

Zone list

The list box displays a list of all of the zones you are currently participating in.  To add a new zone to the list, type the zone name in the box next to the Add button and click Add.

To remove a zone from the list to no longer participate in it, highlight the zone you want to remove in the list box and click delete.

User Settings

Zendemic nodes and applications have their own internal way of uniquely identifying each other but in some cases, and application might want to display to you who it is communicating with so there are two fields available to for you to identify yourself
with.  The "Display name" and "Email" boxes can be used for you to indentify yourself if you want so that other nodes will have an idea who is on the other end of a Zendemic connection.  To change the value, edit the text in the input boxes and click the
adjacent "Update" button.

If you have no need or desire to identify yourself, you can leave the default "Random User" selection.  This will not inhibit any Zendemic functionality in any way.

System Configuration

By default the Zendemic server listens on port 1123 (the Murray port) ( This is the port other Zendmic servers will try and connect to your Zendemic server on.  If
this is not suitable or you want to run multiple instances of Zendemic you can change the port number here, and click the adjacent "Update" button.

Network Settings

In order to enable you to tune some of the Zendemic network settings, you can select the minimum number of connections your Zendemic server will try to maintain per zone, and the maximum total number of connections you want to allow.

You might have to vary these numbers based on how many zones you participate in.

If you are in 26 zones, leaving the default 25 maximum connections means you will never be able to connect to all 26 zones at the same time.

Likewise if you know there's a zone used by only 2 machines in the whole world, setting the minimum to 3 means Zendemic will forever try to find a third machine to connect to, and always fail.

There is currently no way to tune these settings on a per-zone basis.

To change the values, update the numbers in the input box and click the adjacent "Update" button.


If there is a problem and you want to send debugging information you can turn on the debug log which is stored in the zendemic folder underneath the base zendemic folder.


As of this writing, Zendemic Sync is available for use on the Zendemic network.  So download the Zendemic Sync installation zip and extract it into the same zendemic base folder as the zendemic installation zip and run the run script.

------------------- will be updated with information as it becomes available.  If you have a question or comment email

Previous page: Zendemic Applications
Next page: Zendemic Sync