Instead of maintaining a complicated config.ini file and its parsers/validators, use database to store/load configuration parameters. A a side effect, this will require writing : - a database seed with default values - an initial setup wizard