Want to get up and running as quickly as possible to see what all the fuss is about?
Use our bootstrap scripts!
Note that only Linux sprouts and farmers are supported, but you can use the
CLI from macOS as well.
- Download and initialize the command line utility from our releases to your dev machine.
# replace 'linux' with darwin if you're on macOS
curl -L https://releases.grlx.dev/linux/amd64/latest/grlx > grlx && chmod +x grlx
./grlx initYou'll be asked some questions, such as which interface the farmer is listening on, and which ports to use for communication.
Set the interface to the domain name or IP address of the farmer.
Once configured, the CLI prints out your administrator public key, which you'll need for the next step!
It's recommended you now add grlx somewhere in your $PATH.
- On your control server, you'll need to install the
farmer. This script may also be run asrootinstead of using sudo.
curl -L https://bootstrap.grlx.dev/latest/farmer | sudo bashYou'll be asked several questions about the interface to listen on, which ports to use, etc. For the quick start, it's recommended to use the default ports (make sure there's no firewall in the way!). You'll be prompted for an admin public key, which you should have gotten from the prior step, and a certificate host name(s). Make sure the certificate host name matches the external-facing interface (a domain or IP address) as it will be used for TLS validation!
- On all of your fleet nodes, you'll need to install the
sprout.
# Set FARMERINTERFACE to your farmer's domain name. FARMERBUSPORT and FARMERAPIPORT
# variables are available in case you chose to use different ports.
curl -L https://bootstrap.grlx.dev/latest/sprout | FARMERINTERFACE=localhost sudo -E bashOnce the sprout is up and running, return to the CLI.
- If all is well, you're ready to
cook!
grlx keys accept -A
sleep 15;
grlx -T \* test ping
grlx -T \* cmd run whoami
grlx -T \* cmd run --out json -- uname -aBoth scripts support environment variables for unattended installation:
Farmer:
curl -L https://bootstrap.grlx.dev/latest/farmer | \
FARMERINTERFACE=0.0.0.0 \
FARMERAPIPORT=5405 \
FARMERBUSPORT=5406 \
FARMERORGANIZATION="My Org" \
ADMIN_PUBKEYS="ABC25HBCYNHYMIFTN372NCKASUQPJCTBA66GLKXFYM3QGRP42IC5BYYF" \
CERT_HOSTS="farmer.example.com" \
sudo -E bashSprout:
curl -L https://bootstrap.grlx.dev/latest/sprout | \
FARMERINTERFACE=farmer.example.com \
FARMERAPIPORT=5405 \
FARMERBUSPORT=5406 \
sudo -E bashTo uninstall either component, set the UNINSTALL environment variable:
# Uninstall farmer
curl -L https://bootstrap.grlx.dev/latest/farmer | UNINSTALL=1 sudo -E bash
# Uninstall sprout
curl -L https://bootstrap.grlx.dev/latest/sprout | UNINSTALL=1 sudo -E bashEach uninstall only removes its own files — running both components on the same host is safe.
- x86_64 (amd64)
- i686/i386 (386)
- aarch64/arm64 (arm64)
- armv7l (arm)




