45c6941b80
A complement to the existing FLOONET_* env config, never a replacement. When FLOONET_DOMAIN is already set (docker compose and the systemd EnvironmentFile both set it) the binary runs headless exactly as before, including validate() fail-fast. Only when nothing is configured AND stdin/stdout is an interactive TTY does it prompt for the essentials (domain, bind address, data dir, pay mode, name transfers), derive base_url and relays from the domain so validate() always passes, write a conventional env file, load it, and continue starting up. A non-TTY with no config stays headless. The env file is written where the service convention consumes it: FLOONET_ENV_FILE if set, else /etc/floonet-authority.env when writable (the systemd default), else ./.env (the docker-compose default). On startup the binary also loads the first existing candidate non-overriding, so a wizard-written file is picked up on this run and subsequent runs while the real systemd/docker environment always wins. Tests in tests/setup.rs cover the headless guarantee (config present never runs the wizard), the prompt flow, env-file rendering/parsing, and non-overriding load.