Repository Configuration
This guide covers how to configure rustic_core repositories, including initialization options, repository-wide settings, and environment variables.Overview
rustic_core repositories can be configured at multiple levels:- Repository initialization - Settings that determine the repository format
- Repository options - Runtime options for accessing repositories
- Config file - Repository-wide settings stored in the repository
- Environment variables - Override settings from environment
Repository Initialization
use rustic_core::{
Repository, RepositoryOptions,
ConfigOptions, KeyOptions, Credentials,
repofile::MasterKey
};
use rustic_backend::BackendOptions;
let backends = BackendOptions::default()
.repository("/path/to/repo")
.to_backends()?;
let repo_opts = RepositoryOptions::default();
let key_opts = KeyOptions::default();
let config_opts = ConfigOptions::default();
let repo = Repository::new(&repo_opts, &backends)?.init(
&Credentials::password("my-password"),
&key_opts,
&config_opts,
)?;
use rustic_core::repofile::MasterKey;
// Generate a new master key
let master_key = MasterKey::new();
// IMPORTANT: Save this key securely!
println!("Master key: {}", master_key.to_string());
let repo = Repository::new(&repo_opts, &backends)?.init(
&Credentials::Masterkey(master_key),
&key_opts,
&config_opts,
)?;
Configuration Options
See/home/daytona/workspace/source/crates/core/src/commands/config.rs:119-212
Repository Version
Chunker Configuration
Compression
Pack Sizes
Pack Size Tolerance
Append-Only Mode
Extra Verification
Modifying Repository Configuration
Change settings on an existing repository:Repository Options
See/home/daytona/workspace/source/crates/core/src/repository.rs:88-147
Control how the repository is accessed:
Cache Configuration
Warm-Up Options
Prefetch pack files for faster access:Key Management
Add a New Key
Key Options
Environment Variables
rustic_core supports several environment variables:Cache Settings
Password
Repository Path
Complete Configuration Example
Configuration Best Practices
For Fast Backups
For Maximum Compression
For Large Files
For Many Small Files
See Also
- Backend Setup - Configure storage backends
- Backup Guide - Use configured repositories
- ConfigOptions API Reference
- RepositoryOptions API Reference