I want to put as much configuration as I can in the web admin UI and store it in the database instead of in a config file. Looking for opinions, feedback, or input on how simple we can make it or things you like or don’t like about various options.
Things we can’t put in the admin web UI.
- The wiki path: You can’t store the path to the database in the database itself.
- Private keys: The password master key and SSL certs and keys have to be controlled by the server owner.
- Listeners: This always depends on the server environment, but we can use sane defaults like localhost and
PORT
env. - URL path prefix: Generally you won’t be changing this unless you’re already doing advanced JavaScript stuff. And it’s guaranteed to break web access if you make a mistake, requiring a CLI intervention to reverse it, so it might as well just stay in the CLI.
- This should probably be set per listener? If you need a prefix, you probably need it because it’s behind a parent application or reverse proxy on a specific port.
All of these can be CLI options.
In “posix standard”:
mws --wiki wiki --passwordkey localpass.key \
listen --prefix /dev --host localhost --port 8080 \
listen --host localhost --port 8443 --key test/test.key --cert test/test.cert
This would completely replace any run file, as all other config would be administrated through the web interface. What do you all think? Is this a good idea?
Or in TiddlyWiki style, which uses --
for subcommands and then splits the options on the first =
character.
mws wiki=wiki passwordkey=localpass.key \
--listen prefix=/dev host=localhost port=8080 \
--listen host=localhost port=8443 key=test/test.key cert=test/test.cert
Things that could go in an installer UI (and setup command)
- Initial Database selection and setup (stored in the wiki folder)