These setup files provide the text-only configurations for DMZ. *It should not contain private data.* # Dependencies - `recutils` - (optional) `graph-easy` (the package may be called `perl-graph-easy`) # Aspirations - Each service should reside in its own directory. - Everything should be automated, including: - backups, - turning the backup back into a service, - configuring the service to run, - Makefile (or similar) wherever practical, - Idempotency. - All secrets stored elsewhere (probably in the `dmzadmin` repo) - Any maintenance scripts. - Configurations should reside in shadow-directories, e.g. a backup `soft-serve`'s `config.yaml` should reside in this repo under `splint.rs/soft-serve/etc/soft/config.yaml`. # Network Database I have a half-baked plan to finally make use of plain-text databases, and it's already half-working. Try these commands: Ask what types of _rec_ords it contains: ## Database ```sh recinf network.rec ``` ### Select queries Select with `recsel`, then specify the database (.rec) and type of record (like table in db). - `--include-descriptors` or `-d` - `--type` or `-t` - `--expression` or `-e` - `--quick` or `-q` ```sh recsel network.rec --type router recsel network.rec -d -t lxc ``` User `-q` for a `--quick` selection, or `-e` for more precise selections. ```sh recsel network.rec --type lxc --quick wiki recsel network.rec -t lxc -q nginx recsel network.rec -t lxc -e "name ~ 'nginx'" recsel network.rec -t lxc -e "name = 'nginx12'" ``` ### Insert queries Insert a new record with `recins`. ```sh recins network.rec -t lxc -r "name: bob" -r "service: bob" -r "host: moxx" ``` ### Update queries If you can select something, you can also set its fields with `recset`. Use `-f` to set the `--field`, and `-a` to `--add`, or `-s` to `--set`. ```sh recset network.rec -t lxc -e "name = 'nginx12'" -f proxies -a soft-serve recsel network.rec -t lxc -e "name = 'nginx11'" -p proxies[0] recset network.rec -t lxc -e" name = 'nginx11'" -f proxies[0] -s wiki9 ```