This is the desktop application for the Greenhouse cloud service (in development).
greenhouse-desktop is a cross-platform fbs python/QT application with an accompanying daemon (background service) written in Go. The python app will display status to the user and allow them to configure their tunnels, while the daemon will manage the embedded threshold and caddy processes.
# Download python 3.6 with security updates from https://www.python.org/downloads/release/python-3613/ cd Python-3.6.13/ ./configure make make test # note some tests will fail because of openssl being newer since python 3.6 is very old. https://bugs.python.org/issue32947 # for now i ignored this 😬 sudo make install
python3.6 -m venv venv source venv/bin/activate pip install fbs pip install PyQt5==5.9.2 fbs startproject
pip install qtwidgets pyqtspinner
This diagram was created with https://app.diagrams.net/. To edit it, download the diagram file and edit it with the https://app.diagrams.net/ web application, or you may run the application from source if you wish.
greenhouse-daemon api: https://localhost:9572 -- certificate signed by daemon CA, the GUI does not validate the cert (it can't) threshold admin api: https://localhost:9573 -- certificate signed by daemon CA, uses mutual TLS with daemon caddy admin api: https://localhost:9574 -- certificate signed by daemon CA, uses mutual TLS with daemon caddy http port: https://localhost:9575 -- used by caddy for http -> https redirects caddy https port: https://localhost:9576 -- certificate signed by Let's Encrypt CA, public internet TLS caddy tls port: https://localhost:9577 -- certificate signed by Let's Encrypt CA, public internet TLS
TypeError: object of type 'NoneType' has no len()when it tries to use the
authorized_domainslist. Reproduce it with:
curl -k https://127.0.0.1:9572/status?updateTenantInfo=true | jq .