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/config directory, as scripts that you can modify in your fork (and use conditional code, if you need).

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/config directory, each in separate script. 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
get-external-domain.shdomain with enabled catch-all, to which you have email access
get-internal-domain.shinternally used domain (behind NATs), across all your local networks
get-local-backup-directory.shdirectory in the local filesystem, to which backups are generated
get-management-public-ip-range.shpublic IP address range, from which connections from your management server can be originated
get-primary-admin-account.shyour non-root login
get-url-heartbeat.shurl of the heartbeat system to use by sf-monitoring-heartbeat extension
get-url-connectivity-check.shurl that can be used by many scripts to check if current server has working Internet connection
get-url-extension-repositories.shGithub.com base path, from which to install extensions
get-url-keys-repository.sh complete path to your fork of sf-keys repository

Global keys configuration

Apart of /opt/farm/config directory, more global configuration settings are stored in a separate repository, that is attached via get-url-keys-repository.sh script. 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
get-gpg-backup-key.shname 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. get-external-domain.sh or get-local-backup-directory.sh. 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