Typical File Paths ================== Here we'll describe some typical locations and filenames for config. App-Wide -------- Every app will need at least one config file. The convention is to name this file ``rattail.conf`` and place it directly in your app dir, e.g. ``/srv/envs/poser/app/rattail.conf`` Many apps will benefit from having multiple config files, primarily for the sake of organization and "separation of concerns". A robust app with several features then might have the following, all in its app dir: ``rattail.conf`` is considered the "core" config file for the app, which means that no matter how you run the app, this file should be (in)directly referenced somehow, so that it affects the runtime behavior. ``quiet.conf`` is meant to be used for ad-hoc app commands which you run from the console. It is a thin wrapper around ``rattail.conf`` and merely tries to cut down on some of the output (logging) "noise" from commands. ``cron.conf`` is also a thin wrapper, which cuts down on command output "noise" and uses a custom logging file. ``web.conf`` is meant to be used by the standard web app only; it defines the config needed to run the web app and uses a custom logging file. ``webapi.conf`` is meant to be used by the web API only; it defines the config needed to run the web API and uses a custom logging file. ``datasync.conf`` is meant to be used only by the ``datasync`` commands; it defines the config needed to run datasync and uses a custom logging file. ``filemon.conf`` is meant to be used only by the ``filemon`` commands; it defines the config needed to run filemon and uses a custom logging file. ``bouncer.conf`` is meant to be used only by the ``bouncer`` commands; it defines the config needed to run bouncer and uses a custom logging file. ``mailmon.conf`` is meant to be used only by the ``mailmon`` commands; it defines the config needed to run mailmon and uses a custom logging file. .. _machine-wide-config: Machine-Wide ------------ If you have several apps running on a given machine, you may wish to share some "common" config among all the apps. If so you can make a "machine-wide" config file to store that common config. The convention here is to place the file at ``/etc/rattail/rattail.conf`` although you could do whatever you like. .. _site-wide-config: Site-Wide --------- This is similar to the machine-wide scenario, but if you have multiple *machines* which run apps, you may wish to share the common config in such a way that all machines could access it. We call this a "site-wide" config file. How exactly you go about making this file available is beyond our scope here, but a hint is to use Samba/CIFS. True location of the file would be anywhere you like, on whichever machine you elected to be the provider of this common config.