Server Farmer has 2 kinds of configuration settings: current server configuration and global configuration. Current server configuration options are either discovered or asked during the first setup run. Global configuration options are stored in /opt/farm/scripts/functions.custom file, as functions (which allows embedding conditions).

Current server configuration

During the first run, /opt/farm/setup.sh script will ask for several server-specific options. All answers will be stored in /etc/farmconfig file and used later. List of such settings:

namedescription
HOSTfull local hostname (including local domain, if any)
OSVERoperating system version, eg. debian-jessie or ubuntu-bionic
OSTYPEoperating system family (debian/redhat/suse/freebsd/netbsd/openbsd/qnap/generic)
HWTYPEplatform type (physical/guest/container/lxc/oem)
SMTPSMTP server hostname (or 'true' if the current server has smtp role)
SYSLOGsyslog server hostname (or 'true' if the current server has syslog role)

Note that some extensions also ask for configuration settings. Most of such settings are described below, in "Configuration for unattended mode setup".

Global configuration

Global configuration settings are stored in /opt/farm/scripts/functions.custom file. The only way to change them is to fork https://github.com/serverfarmer/serverfarmer repository and edit them in your forked version (which anyway is the preferred way of installing Server Farmer). List of global settings:

namedescription
external_domaindomain with enabled catch-all, to which you have email access
internal_domaininternally used domain (behind NATs), across all your local networks
local_backup_directorydirectory in the local filesystem, to which backups are generated
management_public_ip_rangepublic IP address range, from which connections from your management server can be originated
primary_admin_accountyour non-root login
heartbeat_urlurl of the heartbeat system to use by sf-monitoring-heartbeat extension
connectivity_check_urlurl that can be used by many scripts to check if current server has working Internet connection
extension_repositoriesGithub.com base path, from which to install extensions
keys_repository complete path to your fork of sf-keys repository

Global keys configuration

Apart of /opt/farm/scripts/functions.custom file, more global configuration settings are stored in a separate repository, that is attached via keys_repository function. The only way to change them is to fork https://github.com/serverfarmer/sf-keys repository and edit them in your forked version. List of these additional settings:

namedescription
gpg_backup_key (functions file)name of your GPG key (if you have one) used to encrypt backups
get-ssh-management-key-content.shshould print your public ssh key that you use to manage servers
get-ssh-management-key.shshould print the full filename of your private ssh key, matching the above public key
get-ssh-device-key.shshould print the full filename of private ssh key used to manage network devices
get-ssh-dedicated-key.shshould print the full filename of dedicated ssh key for given host (don't change it for now)

Configuration for unattended mode setup

A few extensions also have their configuration settings. Some of these settings, that are considered global, were put into global configuration, eg. cacti_ssh_target or notify_phone. All others, which can be specific to customer or server type (eg. different SNMP community strings in local and remote servers, or for less trusted customer), are either asked during the first extension setup, or taken from environment variables, if defined. List of such settings:

namedescription
NEWRELIC_LICENSElicense key associated with NewRelic account you want to use for this server
SNMP_COMMUNITYSNMP community for monitoring this server
SMTP_RELAYSMTP server to be used as external mail relay (must support TLS encryption on port 587), eg. smtp.gmail.com
SMTP_USERNAMESMTP username
SMTP_PASSWORDSMTP password
SMSAPI_USERNAMEsmsapi.pl username (used to send urgent notifications to notify_phone number in SMS messages)
SMSAPI_PASSWORDsmsapi.pl password
SMSAPI_FROMstring to be presented as SMS sender (have to be registered first at smsapi.pl)
FW_REPOSITORYurl for Git firewall repository
FW_SSH_KEYssh access key to access firewall repository