Guide to node services
Introduction
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": "199.99.99.1",
"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 | 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
couchdb
Data storage for all user data.
openvpn
OpenVPN egress gateways
monitor
Nagios monitoring and continuous testing.
mx
Incoming and outgoing MX servers.
soledad
User data synchronization daemon
tor
Tor services: relay, exit node and hidden service
webapp
leap_web user management application and provider API.