Direkt zum Hauptinhalt

Cheat Sheet - Wichtigste Befehle (Übersicht)

bffh Daemon (bffhd) Befehlsübersicht (-h, --help)

/usr/bin/bffhd --help
USAGE:
    bffhd [OPTIONS]

OPTIONS:
    -c, --config <config>            Path to the config file to use
        --check                      Check config for validity
        --dump-db <FILE>             Dump all internal databases
        --dump-users <FILE>          Dump the users db to the given file as TOML
        --force                      force ops that may clobber
    -h, --help                       Print help information
        --load-db <load-db>          Load values into the internal databases
        --load-users <load-users>    Load users into the internal databases
        --log-format <log format>    Use an alternative log formatter. Available: Full, Compact,
                                     Pretty [possible values: Full, Compact, Pretty]
        --log-level <log level>      Set the desired log levels.
        --print-default              Print a default config to stdout instead of running
        --quiet                      Decrease logging verbosity
        --tls-key-log [<PATH>...]    log TLS keys into PATH. If no path is specified the value of
                                     the envvar SSLKEYLOGFILE is used.
    -v, --verbose                    Increase logging verbosity
    -V, --version                    Print version information

Logging-Konfiguration (--log-level, --log-format, --quiet, -v, --verbose, --tls-key-log)

Log-spezifische Parameter inklusive Audit Log sind zusammenfassend in Server Logs konfigurieren genauer erklärt.

Zustandsdatenbank exportieren (--dump-db <db.toml file>)

Die BFFH Datenbank muss bei jedem Versionsupgrade exportiert und sauber importiert werden.

Dazu muss --config <Pfad zu bffh.dhall> angegeben werden, damit bffhd weiß, welche Datenbank angefragt werden soll.

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --dump-db <db.toml file>

Soll eine bereits existierende Datei überschrieben werden, nutzen wir zusätzlich den optionalen Parameter --force.

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --dump-db <db.toml file> --force

Zustandsdatenbank importieren (--load-db <db.toml file>)

Dieses Kommando lädt die angegebene *.toml Datei in die Zustandsdatenbank innerhalb bffh.db hinein.

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --load-db <db.toml file>

Benutzerdatenbank exportieren (--dump-users <users.toml file>)

Einmal importiere Nutzerdaten können genauso wieder aus der bffh Datenbank exportiert werden. Dazu muss --config <Pfad zu bffh.dhall> (oder in kurz -c) angegeben werden, damit bffhd weiß, welche Datenbank (db_path) angefragt werden soll. Außerdem muss auch der Ausgabepfad für --dump-users angegeben werden. 

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --dump-users /etc/bffh/users.toml

Soll eine bereits existierende Datei überschrieben werden, nutzen wir zusätzlich den optionalen Parameter --force.

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --dump-users /etc/bffh/users.toml --force

Benutzerdatenbank importieren (--load-users <users.toml file>)

Dieses Kommando lädt die angegebene *.toml Datei in die Benutzerdatenbank innerhalb bffh.db hinein. 

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --load-users <users.toml file>

Es kann auch ein Alias --load verwendet werden, der das gleiche bewirkt:

/usr/bin/bffhd -c /etc/bffh/bffh.dhall --load <users.toml file>

Praxistipps zum smarten Umgang mit der users.toml findest du unter Nutzerdatenbank laden / hashen / prüfen.

Das Laden einer users.toml Datei tauscht alle Nutzer in der internen BFFH-Datenbank aus. Etwaige, nicht gesicherte Nutzer, die per App angelegt wurden, werden somit unwiederbringlich verworfen! Hier ist ein ggf. ein Diff zwischen der dann vorher zu sichernden users.toml (kann per --dump-users erzeugt werden) und der neuen users.toml lohnenswert. Ein geeignetes Diff-Werkzeug ist beispielweise Meld.

Konfigurationsdatei prüfen (--check)

Dieser Parameter prüft die angegebene Konfigurationsdatei auf fehlende oder fehlerhafte Angaben und überprüft generell, ob die *.dhall Datei geparsed werden kann. Sobald eine z.B. eine eckige oder geschweifte Klammer, ein Hochkomma oder normales Komma fehlt, gibt es in der Regel Probleme. Für das Prüfen muss ebenso --config <Pfad zu bffh.dhall> angegeben werden.

Die Ausgabe ist granuliert (Fehler werden mit Zeile und Spalte angezeigt) und sieht zum Beispiel so aus:

failed to parse config:  --> 2:2
  |
2 | 	let mqtt_password = 
  | 	^---
  |
  = expected any_label_or_some or empty_record_literal

Konfigurationsstandard ausgeben (--print-default)

/usr/bin/bffhd --print-default

Dieser Befehl gibt eine minimale Beispielkonfiguration im Dhall-Format aus. Die ausführliche Erläuterung der bffh-Konfiguration findest du hier.

{
actor_connections = [
  {
    _1 = "Testmachine",
    _2 = "Actor"
    }
  ],
actors = {
  Actor = {
    module = "Shelly",
    params = {=} 
  }
  },
auditlog_path = "/var/log/bffh/audit.log", 
certfile = "./bffh.crt", 
db_path = "/run/bffh/database", 
init_connections = [
  { 
    _1 = "Initiator", 
    _2 = "Testmachine"
    }
  ],
initiators = {
  Initiator = {
    module = "TCP-Listen",
    params = {=}
    }
  },
instanceurl = "",
keyfile = "./bffh.key",
listens = [
  {
    address = "127.0.0.1"
  }
],
machines = {=},
mqtt_url = "tcp://localhost:1883",
roles = {=},
spacename = ""
}

Version anzeigen (--version, -V)

/usr/bin/bffhd -V
diflouroborane 0.4.3

Helfer-Skripte

Diverse Helfer-Scripts, die verschiedene Optionen/Parameter automatisieren (z.B. Benutzerdankbank zuverlässig sichern) finden sich in der Script-Sammlung.