gravity-sync/ENV.md
Michael Stanclift 50c786eb9d
4.0.7 (#433)
* fix: typo in dns cname permission change (#431)

This typo prevents gravity-sync from continuing and calculating hashes resulting in always considering there are changes to sync

* Update VERSION

* Branding and typos

* 4.0.7

---------

Co-authored-by: Alexandre Perrault <alexperrault@users.noreply.github.com>
2024-01-15 09:21:24 -06:00

9.7 KiB

Gravity Sync

Gravity Sync ENVs

These tables are a list of all Gravity Sync settings, that can be tweaked via ENVs. Keep in mind that some of them are stored in /etc/gravity-sync/gravity-sync.conf after running gravity-sync configure and that gravity-sync.conf has higher priority than ENVs.

Local and remote paths & settings

These settings will determine, from where (locally) to where (remotely) will be synced and with which account/permissions

Variable Default Value Description
LOCAL_PIHOLE_DIRECTORY /etc/pihole path Path to local pi-hole instance in the filesystem
REMOTE_PIHOLE_DIRECTORY /etc/pihole path Path to remote pi-hole instance in the filesystem
LOCAL_DNSMASQ_DIRECTORY /etc/dnsmasq.d path Path to local dnsmasqd instance in the filesystem
REMOTE_DNSMASQ_DIRECTORY /etc/dnsmasq.d path Path to remote dnsmasqd instance in the filesystem
LOCAL_FILE_OWNER pihole:pihole user:group Local owner and group of the pi-hole config
REMOTE_FILE_OWNER pihole:pihole user:group Remote owner and group of the pi-hole config

Docker specific settings

Gravity-sync will check your system for a native Pi-hole install first (on local and remote site) and if does not detect any, tests against Docker/Podman Pi-hole instances. Here, you can specific the Docker or Podman container name, that Gravity Sync should interact with.

Variable Default Value Description
LOCAL_DOCKER_CONTAINER pihole container name Container name of pi-hole running locally
REMOTE_DOCKER_CONTAINER pihole container name Container name of pi-hole running remotely

Paths to standard files and folders

These settings are most likely the same on all systems. No need to touch them but nice to be able to touch them, if necessary.

Variable Default Value Description
DEFAULT_PIHOLE_DIRECTORY /etc/pihole path Docker/Podman: Path to Pi-hole instance within a Docker/Podman container. Don't mix up with LOCAL_PIHOLE_DIRECTORY, which is only used against local Pi-hole instances (non-dockerized).
LOCAL_PIHOLE_BINARY /usr/local/bin/pihole path Path to pihole binary on local system
REMOTE_PIHOLE_BINARY /usr/local/bin/pihole path Path to pihole binary on remote system
LOCAL_FTL_BINARY /usr/bin/pihole-FTL path Path to pihole-FTL binary on local system
REMOTE_FTL_BINARY /usr/bin/pihole-FTL path Path to pihole-FTL binary on remote system
LOCAL_DOCKER_BINARY /usr/bin/docker path Path to docker binary on local system
REMOTE_DOCKER_BINARY /usr/bin/docker path Path to docker binary on remote system
LOCAL_PODMAN_BINARY /usr/bin/podman path Path to podman binary on local system
REMOTE_PODMAN_BINARY /usr/bin/podman path Path to podman binary on remote system
PIHOLE_CONTAINER_IMAGE pihole/pihole path Name of the default pi-hole docker image

Nitty-gritty finetuning the target files

Here, you can specifiy the Gravity, DNS (A, CNAME) and DHCP settings file of Pi-hole. It is almost certain, that these filenames do never change (except if upstream Pi-hole decides so).

Variable Default Value Description
PH_GRAVITY_FI gravity.db file The gravity filename (blocklist) of pihole
PH_CUSTOM_DNS custom.list file The custom DNS (A) filename of pihole
PH_CNAME_CONF 05-pihole-custom-cname.conf file The custom DNS (CNAME) filename of pihole
PH_SDHCP_CONF 04-pihole-static-dhcp.conf file The custom DHCP filename of pihole

Backup Customization

Variable Default Value Description
GS_BACKUP_TIMEOUT 240 seconds How long shall we allow a gravity.db backup task to run, before it is deemed to be timed out?
GS_BACKUP_INTEGRITY_WAIT 5 seconds Some wait time, before integrity checks are performed on gravity.db
GS_BACKUP_EXT gsb file-extension Local and remote gravity.db backup files will get this file-extension added before merge.

GS Folder/File Locations

Variable Default Value Description
GS_ETC_PATH /etc/gravity-sync path Path to the gravity-sync work & config directory
GS_CONFIG_FILE gravity-sync.conf file Name of the gravity.sync config file
GS_SYNCING_LOG gs-sync.log file Logfile for gravity-sync
GS_GRAVITY_FI_MD5_LOG gs-gravity.md5 file Filename for storing PH_GRAVITY_FI hash (used for sync comparison locally and on remote)
GS_CUSTOM_DNS_MD5_LOG gs-clist.md5 file Filename for storing PH_CUSTOM_DNS hash (used for sync comparison locally and on remote)
GS_CNAME_CONF_MD5_LOG 05-pihole-custom-cname.conf.md5 file Filename for storing PH_CNAME_CONF hash (used for sync comparison locally and on remote)
GS_SDHCP_CONF_MD5_LOG 04-pihole-static-dhcp.conf.md5 file Filename for storing PH_SDHCP_CONF hash (used for sync comparison locally and on remote)

Remote SSH config

Customize parameters for accessing the remote end via SSH

Variable Default Value Description
GS_SSH_PORT 22 port Port of the remote gravity-sync container/host
GS_SSH_PKIF <GS_ETC_PATH>/gravity-sync.rsa file Path to the local SSH private key of gravity-sync, that will be used for pubkey auth against the remote

Upgrade: Gravity Sync sourcecode location

Gravity Sync is locally installed as a GitHub repo. In order to upgrade your local Gravity Sync instance via gravity-sync upgrade to the latest version, the path to that git repo must be known and can be specified below.

Variable Default Value Description
GS_LOCAL_REPO <GS_ETC_PATH>/.gs path Local install path of the gravity-sync repo