Agent Configuration Reference
Full reference for /etc/jokowipe/agent.yaml.
agent
Agent identity and connection settings.
agent:
name: string # Display name shown in dashboard [required]
server_url: string # API server URL [required]
# Default: https://api.jokowipe.id
token: string # Agent token [required]
# Use ${JOKOWIPE_AGENT_TOKEN} env var
heartbeat_interval: duration # Heartbeat frequency
# Default: 30s | Min: 10s
poll_interval: duration # Job poll frequency
# Default: 10s | Min: 5s
log_level: string # debug | info | warn | error
# Default: info
log_format: string # json | text
# Default: json
temp_dir: string # Temp dir for backup files
# Default: /var/tmp/jokowipe
max_concurrent_jobs: int # Max parallel backup jobs
# Default: 1 | Max: 8
backup_timeout: duration # Max time per backup job
# Default: 6h
proxy: string # HTTP proxy URL (optional)
auto_upgrade:
enabled: bool # Enable automatic upgrades
# Default: false
channel: string # stable | beta
# Default: stable
check_interval: duration # How often to check for updates
# Default: 24h
upgrade_window:
start: string # Time window start (HH:MM)
end: string # Time window end (HH:MM)
timezone: string # IANA timezone
database
Database connection settings.
database:
url: string # Default database URL
type: string # postgres | mysql | mongodb | redis | sqlite
# Auto-detected from URL if not specified
databases: # Named database configurations
<name>:
url: string
type: string
options: {} # Database-specific options (see below)
options:
# PostgreSQL options:
format: string # custom | plain | directory | tar
# Default: custom
compress: bool # Enable compression
# Default: true
schema_only: bool # Backup schema only (no data)
# Default: false
exclude_tables: []string # Tables to exclude
include_tables: []string # Only back up these tables
pg_dump_path: string # Full path to pg_dump binary
# MySQL options:
single_transaction: bool # Use --single-transaction
# Default: true
skip_lock_tables: bool # Default: false
include_databases: []string # Multiple databases to back up
# MongoDB options:
auth_db: string # Authentication database
# Default: admin
oplog: bool # Include oplog
# Default: false
compress: bool # Default: true
# Redis options:
method: string # rdb | aof
# Default: rdb
wait_for_save: bool # Wait for BGSAVE to complete
# Default: true
storage
Storage backend configuration.
storage:
type: string # s3 | gcs | azure | local
s3:
bucket: string # S3 bucket name [required]
region: string # AWS region [required]
prefix: string # Path prefix within bucket
# Default: ""
endpoint: string # Custom endpoint (for R2, MinIO, etc.)
access_key_id: string # AWS access key ID
secret_access_key: string # AWS secret access key
use_instance_profile: bool # Use EC2/ECS instance profile
# Default: false
storage_class: string # STANDARD | STANDARD_IA | GLACIER | etc.
# Default: STANDARD
server_side_encryption: string # AES256 | aws:kms
kms_key_id: string # KMS key ARN (for aws:kms)
path_style: bool # Use path-style URLs (for MinIO)
# Default: false
skip_tls_verify: bool # Skip TLS verification
# Default: false
upload_part_size_mb: int # Multipart upload part size
# Default: 64
upload_concurrency: int # Parallel upload threads
# Default: 4
gcs:
bucket: string # GCS bucket name [required]
prefix: string # Path prefix
credentials_file: string # Path to service account JSON
storage_class: string # STANDARD | NEARLINE | COLDLINE | ARCHIVE
azure:
container: string # Container name [required]
account_name: string # Storage account name [required]
account_key: string # Account key
sas_token: string # SAS token (alternative to account_key)
prefix: string # Path prefix
tier: string # Hot | Cool | Cold | Archive
local:
path: string # Directory path [required]
retention_days: int # Auto-cleanup after N days
hooks
Pre/post-backup hook scripts.
hooks:
pre_backup: string # Script path (run before backup)
post_backup: string # Script path (run after success)
on_failure: string # Script path (run on failure)
timeout: duration # Max hook execution time
# Default: 5m
tls
TLS/mTLS configuration.
tls:
ca_cert: string # Custom CA certificate path
client_cert: string # Client certificate path (mTLS)
client_key: string # Client key path (mTLS)
insecure_skip_verify: bool # NEVER use in production
# Default: false
metrics
Prometheus metrics endpoint.
metrics:
enabled: bool # Default: false
port: int # Default: 9090
path: string # Default: /metrics