Global configuration¶
This section describes the location and contents of Zotonic’s global configuration files.
Config file locations¶
Zotonic depends on two global config files, called zotonic.config
and erlang.config
. On startup, Zotonic looks in the following
places for these files:
$HOME/.zotonic/(nodename)/
$HOME/.zotonic/(version)/
$HOME/.zotonic/
/etc/zotonic/(nodename)/
/etc/zotonic/(version)/
/etc/zotonic/
Where (nodename) is the name of the Zotonic Erlang node, which defaults to zotonic001 (and can be set with $NODENAME environment variable). Using the node name in the configuration path comes in handy when you want to run multiple Zotonic instances simultaneously.
(version) is the minor version number of Zotonic, e.g. 0.11
for all Zotonic 0.11.x
variants. This way, you can have separate
configuration files for different versions of Zotonic which are
running simultaneously.
When the Zotonic startup script finds a config file in one of the directories, it stops looking, so files in the other directories are ignored.
In the course of Zotonic starting up, it will print the locations of the global config files that it is using:
17:03:54.766 [info] Zotonic started
17:03:54.766 [info] ===============
17:03:54.766 [info] Config files used:
17:03:54.768 [info] - /home/user/.zotonic/0.11/erlang.config
17:03:54.768 [info] - /home/user/.zotonic/zotonic001/zotonic.config
The zotonic.config file¶
When installed for the first time, the zotonic.config
file is well
annoted with comments about what each setting does. When in doubt,
consult the stock zotonic.config
file for explanation about all
config settings.
In the zotonic.config
file you will find the password for the
zotonic_status
site where you can manage the server.
Zotonic configurations can also be fetched in the Erlang shell.
For example, view the zotonic_status
password:
z_config:get(password).
user_sites_dir, user_modules_dir and user_ebin_dir¶
Since version 0.11, Zotonic keeps sites and modules that are external to Zotonic, e.g. installed by website developers, outside the Zotonic source tree.
The directory under which Zotonic expects to find all sites is called
the User sites directory. This is configured with the config
parameter user_sites_dir
. This directory defaults to
user/sites
, relative to Zotonic’s installation directory.
The directory under which Zotonic expects to find all external
modules, e.g. those installed with zotonic modules install
mod_....
, is called the User modules directory. This is configured
with the config parameter user_modules_dir
. This directory
defaults to user/modules
, relative to Zotonic’s installation
directory.
Optionally it is possible to change the location of the compiled
erlang code in the user sites and module directories. The default location
for these files is ebin
in Zotonic’s installation directory. This is
configured with the user_ebin_dir
config parameter. This makes it possible
to separate the beam files of user defined code from Zotonic’s beam files.
deps¶
The zotonic.config
file can hold extra dependencies which are to
be installed as part of a user’s installation. These deps are
formatted similar to how they would be listed in a rebar.config
file:
{deps,
[
{jsx, "1.4", {git, "git://github.com/talentdeficit/jsx", {tag, "v1.4"}}}
]},
On compile time, these deps are added to the list of the standard deps
from Zotonic’s rebar.config
file, and cloned and compiled in the
same way.
The erlang.config file¶
The erlang.config
file contains application environment variables
for the Erlang applications that Zotonic depends on. Here you can
configure for instance the paths for the log files (in the lager
section), emqtt ports, et cetera.