Development notes

This section will provide some useful hints and tips for developing Argus.

Applying settings and switching between them

As elaborated in Site-specific settings, there are two ways to define settings in Argus:

  1. with environment variables

  2. using a file.

For development, a simple and good practice is to define environment variables in a file. This file serves as a “wrapper” to call with a defined set of environment variables, and simplifies the development process.

You may find it useful to have several files for different purposes, for instance to invoke different databases. The files can be named, and or similar.

The limitation of environment variables is that they can only contain numbers, Boolean values (0/1) and strings. Use the file to define settings that require more complex values, such as conditional expressions, Python dicts and tuples.

Settings in the file will override environment variables. Note that the extra settings-file and argus have to be in the python path. We therefore recommend keeping your files in the same directory as

Settings can be tested in and moved to the other settings files later.


Tip: If you copy the entire logging-setup from “” to remember to set disable_existing_loggers to True. Otherwise, logentries will appear twice.


Do not check your or files into version control, since they contain passwords and sensitive data.

Debugging tips

To test/debug notifications as a whole, use the email subsystem (Media: Email in a NotificationProfile). Set EMAIL_HOST to localhost, EMAIL_PORT to 1025, and run a dummy mailserver:

$ python -m smtpd -n -c DebuggingServer localhost:1025

Sent notifications will then be dumped to the console on the dummy server.