Audita is a modular auditing system that ensures data integrity and provides immutable audit trails for blockchain and cloud-native infrastructures.
Built in Rust with integrations to Prometheus, ElasticSearch, and Ethereum, it creates cryptographically secure records to guarantee system integrity and compliance.
- ⚙️ High-performance Rust backend
- 📦 Containerized via Docker
- 📈 Prometheus & Grafana integration
- 🔍 Elasticsearch support for searchable logs
- ⛓️ Ethereum Besu-compatible pipeline
- 🧩 Modular architecture for easy extension
docker run ghcr.io/luizfelmach/audita:latest
Prerequisites: Rust and Cargo installed.
git clone https://github.com/luizfelmach/audita.git
cd audita
cargo build --release
./target/release/audita
- Download the latest binary for your platform from the Releases page
- Make it executable:
chmod +x audita
./audita
Audita can be configured through configuration files or environment variables. Configuration sources are loaded in the following order of precedence:
/etc/audita/config.toml
(system-wide)~/.config/audita/config.toml
(user-specific)config.toml
(current directory)config/dev.toml
(development config)- Environment variables (highest priority)
Create a config.toml
file with the following structure:
host = "0.0.0.0"
name = "worker"
port = 8080
queue_size = 8192
batch_size = 5
[ethereum]
url = "http://localhost:8545"
contract = "0x42699A7612A82f1d9C36148af9C77354759b210b"
private_key = "0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63"
max_tx_pending = 50
[elastic]
url = "http://localhost:9200"
username = "elastic"
password = "changeme"
indices_pattern = "%Y.%m.%d"
All configuration options can be overridden using environment variables with the AUDITA_
prefix. For nested configuration sections, use double underscores (__
).
Examples:
export AUDITA_PORT=8080
export AUDITA_HOST="127.0.0.1"
export AUDITA_ETHEREUM__URL="http://localhost:8545"
export AUDITA_ETHEREUM__CONTRACT="0x42699A7612A82f1d9C36148af9C77354759b210b"
export AUDITA_ELASTIC__URL="http://localhost:9200"
export AUDITA_ELASTIC__USERNAME="elastic"
Option | Description | Default |
---|---|---|
host |
Server bind address | 0.0.0.0 |
port |
Server port | 8080 |
queue_size |
Internal queue size | 8192 |
batch_size |
Batch processing size | 5 |
ethereum.url |
Ethereum node URL | - |
ethereum.contract |
Smart contract address | - |
ethereum.private_key |
Private key for transactions | - |
ethereum.max_tx_pending |
Maximum pending transactions | 50 |
elastic.url |
ElasticSearch URL | - |
elastic.username |
ElasticSearch username | - |
elastic.password |
ElasticSearch password | - |
elastic.indices_pattern |
Index naming pattern | %Y.%m.%d |