LEAP logo

LEAP Encryption Access Project

Guide to node services


Every node (server) must have one or more services defined that determines what role the node performs. For example:

workstation$ cat nodes/stallman.json
  "ip_address": "",
  "services": ["webapp", "tor"]

Here are common questions to ask when adding a new node to your provider:

  • many or few? Some services benefit from having many nodes, while some services are best run on only one or two nodes.
  • required or optional? Some services are required, while others can be left out.
  • who does the node communicate with? Some services communicate very heavily with other particular services. Nodes running these services should be close together.
  • public or private network? Some services communicate with the public internet, while others only need to communicate with other nodes in the infrastructure.

Available services

Service VPN Email Notes
webapp User control panel, provider API, and support system.
couchdb Data storage for everything. Private node.
soledad User data synchronization daemon. Usually paired with couchdb nodes.
mx Incoming and outgoing MX servers.
openvpn OpenVPN gateways.
monitor Nagios monitoring. This service must be on the webapp node.
tor Tor exit node.

Key: Required, Optional, Not Used


Data storage for all user data.


OpenVPN egress gateways


Nagios monitoring and continuous testing.


Incoming and outgoing MX servers.


User data synchronization daemon


Tor services: relay, exit node and hidden service


leap_web user management application and provider API.