Skip to main content

Configuration reference

Complete reference for configuring Infrahub Backup through environment variables and runtime flags.

Configuration methods​

Tools can be configured through these methods, applied in precedence order:

  1. Command-line flags (highest priority)
  2. Environment variables
  3. Default values (lowest priority)

Environment variables​

Core configuration​

VariableDescriptionDefaultExample
INFRAHUB_BACKUP_DIRDirectory for storing backup files./infrahub_backups/data/backups
INFRAHUB_LOG_FORMATOutput format for logstextjson

Docker compose configuration​

VariableDescriptionDefaultExample
INFRAHUB_PROJECTDocker Compose project nameAuto-detectinfrahub-prod

Database configuration​

Neo4j​

VariableDescriptionDefaultExample
INFRAHUB_DB_DATABASENeo4j database nameneo4jinfrahub
INFRAHUB_DB_USERNAMENeo4j usernameneo4jadmin
INFRAHUB_DB_PASSWORDNeo4j passwordadminSecurePass123

Task manager PostgreSQL​

VariableDescriptionDefaultExample
PREFECT_API_DATABASE_CONNECTION_URLPostgreSQL connection stringAuto-detectpostgresql://user:pass@localhost/prefect

Command-line flag reference​

Global flags​

FlagEnvironment OverrideDescription
--backup-dirINFRAHUB_BACKUP_DIRSet backup directory
--projectINFRAHUB_PROJECTTarget specific Docker Compose project
--log-formatINFRAHUB_LOG_FORMATSet log output format

Backup command flags​

FlagDescription
--forceForce backup creation even if tasks are running
--neo4jmetadataNeo4j metadata to include (all, none, users, roles)

Auto-detection behavior​

Docker Compose project detection​

Order of detection:

  1. --project flag
  2. INFRAHUB_PROJECT environment variable
  3. Search for running Infrahub containers

Detection command:

docker compose ls --filter "name=*infrahub*"

Database credential detection​

For Docker Compose deployments:

# Neo4j credentials from environment
docker compose exec database printenv NEO4J_AUTH

# PostgreSQL credentials from environment
docker compose exec task-manager-db printenv POSTGRES_PASSWORD

Troubleshooting configuration​

Debug configuration loading​

View effective configuration:

infrahub-backup --help

Test configuration​

Validate configuration without running operations:

infrahub-backup environment detect

Common issues​

Cannot detect environment​

# Check Docker
docker compose ls
docker ps

# Check for Infrahub containers
docker ps --filter "name=infrahub"

Authentication failures​

# Verify credentials are set
env | grep INFRAHUB
env | grep PREFECT

# Test database connectivity
docker compose exec database cypher-shell -u neo4j

Examples​

Minimal configuration​

For basic Docker Compose setup:

export INFRAHUB_BACKUP_DIR=/backups
infrahub-backup create

Production configuration​

#!/bin/bash
# production-backup.sh

export INFRAHUB_LOG_FORMAT=json
export INFRAHUB_PROJECT=infrahub-production
export INFRAHUB_BACKUP_DIR=/data/backups/infrahub
export INFRAHUB_DB_PASSWORD="${NEO4J_PASSWORD}"

infrahub-backup create --neo4jmetadata=all