An Erlang OTP application to run BDD load tests at scale.
Inspired by behave.
📖 Read more: https://damagebdd.com
You can use the public server at https://run.damagebdd.com to run tests.
Read The Manual to get started quickly.
Swagger API available at: https://damagebdd.com/api/
git clone https://github.com/DamageBDD/DamageBDD.git
cd DamageBDD
rebar3 shellThe application uses an encrypted secrets store. Configure integrations using secrets:encrypt_store/2.
secrets:encrypt_store(bitcoin_rpc_password, "bitcoin rpc password").Generate Bitcoin RPC auth:
./bin/bitcoin_rpcauth.pysecrets:encrypt_store(nostr_nsec, "nostr private key (nsec)").secrets:encrypt_store(smtp_password, "password for smtp sending").Create Rune:
lightning-cli createrunesecrets:encrypt_store(cln_rune, "rune for core lightning cln").secrets:encrypt_store(lnd_macaroon, "macaroon for lnd").The Erlang sys.config file allows you to configure the runtime. A sample is provided in the repo.
Typical settings include:
[
{damagebdd, [
{port, 8080},
{bind_addr, "0.0.0.0"},
{log_dir, "/var/log/damagebdd"},
{data_dir, "/var/lib/damagebdd"},
{upstreams, ["http://127.0.0.1:8080"]},
{secrets_backend, encrypted_store}
]}
].- port: Port for the verification node to listen on.
- bind_addr: Bind interface (default
0.0.0.0). - log_dir: Path for runtime logs.
- data_dir: Data storage directory.
- upstreams: List of upstream URLs for distributed verification.
- secrets_backend: Method for secrets management (default: encrypted store).
Adjust these to match your environment. Point the systemd service or release script to load the sys.config file via -config /etc/damagebdd/sys.config.
See SECURITY.txt for important operator guidelines.