installing the greenhouse client software on linux
table of contents
- shell script installer
- installing the desktop application
- uninstalling the greenhouse client software
- using greenhouse with docker
- installing manually
shell script installer
During the alpha test phase, we're only offering a shell script installer / uninstaller.
curl https://greenhouse-alpha.server.garden/install-linux.sh | sudo sh
This installer assumes your operating system uses systemd.
If you aren't sure, you don't have to worry as long as your computer is reasonably up-to-date 😌
If you know for sure that you do NOT use systemd, proceeed to the "installing manually" section below.
If you wish to use greenhouse with docker, see the "using greenhouse with docker" section below.
The install-linux.sh
script does four things:
- Creates a greenhouse-daemon linux user & group to isolate the greenhouse-daemon for security reasons
- Creates the directory
/opt/greenhouse
and installs thegreenhouse-daemon
background service there -
Registers
greenhouse-daemon
with your operating system, configured to run as a background service on boot -
Adds the
greenhouse
command to your system; it installs thegreenhouse-cli
binary file into your/usr/local/bin
folder
If you don't want to run the curl ... | sudo sh
command, you can simply
check out install-linux.sh
from the source code repository & review it yourself before running it.
installing the desktop application
greenhouse-desktop
is a self-contained graphical user interface (GUI) application
for configuring your greenhouse tunnels quickly and easily.
You'll need the greenhouse-daemon
to be installed first
(via the shell script installer)
before the desktop application will function.
greenhouse-desktop
is distributed on linux as a TODO: figure out how to do the fbs build
--> Click Here to Download greenhouse-desktop <--
In order to run it, TODO
uninstalling the greenhouse client software
We've created an uninstaller script that undoes everything the installer script did.
curl https://greenhouse-alpha.server.garden/uninstall-linux.sh | sudo sh
-
Removes the
greenhouse
command from your system -
Removes the
greenhouse-daemon
background service - Deletes the
/opt/greenhouse
directory - Removes the greenhouse-daemon linux user & group
using greenhouse with docker
The greenhouse-daemon
currently does not have 1st-class support for running inside docker-compose or kubernetes.
You can probably make it work if you want, but there are some issues:
- The
greenhouse-daemon
spawns sub-processes:threshold
andcaddy
. This is generally considered a no-no in docker land; you are typically supposed to have one process per container -
It doesn't offer any way for your
docker-compose
file orhelm
chart to express the tunnel configuration, you will have to somehow configure the tunnels separately - It is opinionated; it only works with a specific forked version of Caddy. If you want to use a different reverse proxy / TLS terminator, things might get awkward
For these reasons, you may not want to run greenhouse-daemon
in a container anyway.
Hopefully you can simply run greenhouse-daemon
on the host and
forward traffic to your docker containers from there.
We might build explicit docker support into the greenhouse-daemon
in the future , but it's not done yet.
If you really want magic greenhouse stuff in a container,
you could also try running threshold
as a container instead. threshold
will do just the greenhouse network tunneling
and leave everything else up to you.
TODO: expiriment with setting up a standalone threshold container with a greenhouse account
installing manually
If your operating system does not use systemd, you will have to complete the installation process manually. You'll want to go through the same four steps:
- Create the greenhouse-daemon linux user & group
- Install
greenhouse-daemon
at/opt/greenhouse
-
Create a service definition for
greenhouse-daemon
in your init system and enable it -
Install the
greenhouse-cli
somewhere in your$PATH
We recommend using the existing installer as a template. You will only have to change step 3, where it installs the service. How you do this depends on your init system.