Gardience Documentation gardience.com →
Docs / Getting started

Requirements

Check these before you install. The installer checks them too, before it changes anything, and says in plain words what to do: Docker or its Compose plugin missing (it offers to install them), a port already in use (and by what), less than 4 GB of memory, or less than 10 GB of free disk.

Server

CPU, memory and disk by fleet size

For a trial, 2 CPUs and 4 GB of memory is plenty.

For production, size the server by how many machines you will manage, and install with the matching --fleet-size value so the Salt master is tuned for that fleet.

Managed nodesvCPUMemoryDisk (data volume)--fleet-size
up to 1,00048 GB40 GB1000
1,000 to 5,000816 GB100 GB5000
5,000 to 10,0001632 GB200 GB10000
over 10,000contact Gardience first

These rows are estimates. What --fleet-size changes:

Setting on the Salt master1,000 or fewer1,001 to 5,000over 5,000
worker_threads (about 65 MB of memory each)81624
max_open_files16384100000100000
zmq_backlog100040004000
gather_job_timeout (seconds)101515
key_cache: sched (keeps the key list in memory)offonon

Above 1,000 nodes, agents also get settings that spread their reconnects over about a minute after a Salt master restart (recon_randomize, recon_max, random_reauth_delay).

Disk grows mostly with the audit log and run history. Routine scans and checks add about 2 to 5 MB a day. Changes add about 25 bytes per node they touch, so a patch run on 10,000 nodes adds about 250 KB. Audit log segments are sealed at 50 MB, and there is no automatic retention. Leave room for upgrades as well: an upgrade takes a full backup first, and gardience upgrade --check reports how much free space it needs.

Ports and firewall

Inbound to the Gardience server

PortProtocolFromPurposeInstaller option
443TCPBrowsers of people who use the consoleThe console over HTTPS--https-port
80TCPBrowsersRedirects to HTTPS only--http-port
4505TCPEvery managed machineSalt publish port: agents receive jobs--salt-ports
4506TCPEvery managed machineSalt return port: agents sign in and send results--salt-ports

Ports 4505 and 4506 are only used by an all-in-one install. In attach mode, agents connect to your own Salt master, and the Gardience server instead needs:

A VPN on the Gardience server

If the console opens at https://localhost on the server but not at the server's own address, a VPN app's firewall is blocking local traffic. VPN apps such as Windscribe, NordVPN, Proton VPN and Mullvad drop everything that does not go through the tunnel, including connections to the Gardience containers and from machines on your network. Turn on the app's Allow LAN (or local network access) option, then reconnect. Internet traffic still goes through the VPN. On public Wi-Fi, turn it back off: there it lets other people on the same network reach the server's open ports. The installer checks this at the end and says so when it happens.

Internal ports (never exposed)

These ports exist only on Docker's internal network between the containers. The installer never publishes them on the host, and you do not need firewall rules for them.

PortService
8000salt-api, inside the Salt master container
9400The Gardience service
9500The playbook runner

Managed machines

Agents only open outbound connections, to ports 4505 and 4506 on the Salt master. No inbound port is needed on a managed machine.

To install the agent, machines download it from the internet: Linux machines fetch the Salt bootstrap script from github.com, and Windows machines fetch the Salt installer from packages.broadcom.com. On networks without internet access, serve those files from an internal mirror.

Example: open the ports with firewalld

sudo firewall-cmd --permanent --add-service=https --add-service=http
sudo firewall-cmd --permanent --add-port=4505-4506/tcp
sudo firewall-cmd --reload

Docker publishes container ports through its own firewall rules, which some host firewalls (such as ufw) do not filter. To limit which addresses reach the agent ports, also use --salt-bind to listen on one host address, and filter at your network firewall.

Primary and standby pairs

If you run a warm standby server, the two servers also need to reach each other's console over HTTPS, and the primary needs SSH access to the standby to copy backups to it. Keep both servers' clocks in sync with NTP or chrony.

Managed machines

Every release and Salt agent version tested, with the result of each feature on each one, is on the compatibility matrix.

Gardience installs Salt 3008.3 on new agents and pins that version so OS patching never upgrades it. Agents on Salt 3006.9 are refused by a 3008 master until they are upgraded, because Salt 3008 requires a newer agent sign-in protocol.

Gardience by Bouziden Management LLC.