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¶
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¶
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.