example-config | ||
subscriber | ||
tor | ||
.env.example | ||
docker-compose.yml | ||
README.md |
TORch Subscriber Docker Compose
This is a Docker Compose project for assembling a service to receive TORch notifications from remote clients and store them for access via RESTful interface.
It is composed of the following micro-services:
- Tor proxy - for receving notifications from remote TORch clients via Tor
- Broker - for managing publications and subscriptions
- Torchsub - for receiving notifications, maintaining a database of the latest connection info for each remote note and serving them via HTTP
Running
-
Create an
.env
file based on.env.example
-
CONFIG_DIR: points to the local configuration directory for the broker and torchsub micro-services
-
BROKER_MQTT_PORT: must match the port that you configured mosquitto to listen for MQTT on
-
BROKER_MQTTS_PORT: must match the port that you configured mosquitto to listen for MQTTS on
-
HTTP_PORT: the port that you would like Torchsub to listen on for incoming HTTP-REST requests for client connection info
-
-
Create the local configuration directory pointed to by
.env
-
Create Mosquitto configuration files
-
Create a
mosquitto.conf
based on the example -
Add applicable
ca.crt
, key and/or broker certificate files as applicable for the mosquitto configuration
-
-
Create a
torch-sub.conf
per the torch-subscriber-simple project- Add applicable
ca.crt
, key and/or broker certificate files as applicable for thetorch-sub.conf
configuration
- Add applicable
-
-
Run
docker-compose up -d
from the project directory to launch the services -
Get the Tor onion hostname of your newly launched TORch node monitor
$ docker-compose exec tor svc-hostname
*****
* Service Onion Hostname: 24xb3hb2pajid44ugroua2ndvpipvmuw6pfjrivlbupxhpwbugfhdeqd.onion
*****
-
Configure any remote TORch agent instances with the above onion hostname by editing their
torch.conf
files-
Set
BrokerHost
to the Tor onion hostname -
Set
BrokerPort
to the Mosquitto MQTT broker port you used above (ex.1883
) -
You should set
RequiredCertificate
tofalse
because torch-agent won't be able to match the broker's certificate to the Tor onion hostname -
Be sure to match the
Topic
with the pattern you told Torchsub to subscribe to when you configured Torchsub usingtorch-sub.conf
above
-
# Example TORch Agent torch.conf configuration
[tor]
ControllerPort = 9051
[ssh]
Port = 22
[mqtt]
BrokerHost = 7v4jfonpcvvv4cy32po3uwqr56hvjag6ljpauennshecmzv4deq27lyd.onion
BrokerPort = 1883
ClientID = vagrant
Topic = torch/vagrant/wake
RequireCertificate = false
CaFile = ca.crt
CertFile = vagrant.crt
KeyFile = vagrant.key