Thanks for the detailed write-up. Has something changed in the meantime? Because when I try pihole-FTL --config webserver.port ..., it shows a "usage" information, just as if webserver.port isn't a valid configuration key:
Why are you trying to set an empty string as the web server port? Without a port you won't be able to access the web interface.
If you still want this command to succeed and remove all ports (even after my explanation above), you need to remove -f from your command. There is no -f option for --config.
My idea was to run pihole-FTL with webserver disabled, for testing purposes; I had tried with some port values in there but that had similarly failed.
As for point 1 - it was just for test purposes; but I could imagine use cases for disabling the web interface - e.g. disabling it to minimize potential attack surfaces.
Thanks for the second point - that made me re-think my initial assumption - that I had to start pihole-FTL with those options as arguments, in order for them to be effective in this run of the program.
As I understand it now, the pihole-FTL --config ... command changes the pihole-FTL configuration permanently (and these changes either are picked up by a running instance of pihole-FTL or at least after a restart).
I'm just used to configure permanent things directly in config files rather than through commands, and mostly doing non-permanent things via command line switches, that's why I immediately thought in those directions.
So, everything good now, and thanks for getting back to me so quickly!
As you noticed, --config argument is used to read or change pihole.toml. It is just like editing the file directly.
This option can't be used in conjunction with other FTL options.