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

PostgreSQL (Task Manager)

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

Issue: Cannot detect environment

# Check Docker
docker compose ls
docker ps

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

Issue: 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