Meqaris - Administrator's manual


The command line

Meqaris is a command-line-driven application. You configure the system by issuing commands on the command-line and use the application by providing parameters on the command line and e-mail input through the standard input.

To get simple help on the command line, run

	meqaris --help

Meqaris uses an INI file to hold the primary configuration, like database access settings, and a PostgreSQL database to hold the meeting resources (rooms and equipment), the booked meetings/events and some of the configuration.

To override the default configuration file path, use the --conf parameter, passing the path to the configuration file:

	meqaris --conf /path/to/meqaris.ini

You can pass this parameter to each of the commands Meqaris supports.

To check if the configuration file is correct, you can run the

	meqaris --status

command. It should eventually display something similar to:

	Configuration file '/path/to/meqaris.ini': OK
	Data directory: '/path/to/meqaris/data': OK
	Database connection: OK
	Database version: OK

On ANSI-enabled terminals, the statuses will be shown in colour. You can set the environment variable ANSI_COLORS_DISABLED to disable this, e.g.

	ANSI_COLORS_DISABLED=1 meqaris --status

Each database modification action causes Meqaris to check if the database version is the version expected by the application. If not, the required database upgrade scripts are run. You can also perform the database upgrade manually by running the

	meqaris --upgrade-db

command and checking the status afterwards.

To begin booking meeting resources, you need to create those resources in the Meqaris system. To do that, use the --create parameter (and remember to properly quote or escape the parameters):

	meqaris --create 'Room 100' --description 'Room 100, first floor'
		--email 'room100@yourdomain'

	meqaris --create 'Projector HD 1' --description 'Mobile HD projector'
		--email 'hdproj1@yourdomain'

	meqaris --create 'Teleconference set X-2'
		--description 'Teleconference set: TV + speaker + microphone'
		--email 'telco_set_x2@yourdomain'

The name (after the --create parameter) is required. The description is optional and is just for users. The e-mail address is also required, otherwise the resource wouldn't "know" that the invitation is meant for it.

If you plan to have real operating system-level users for your resources, you can still bind them to Meqaris using the .forward file for Postfix, or the .procmailrc file for Procmail that should work for all incoming mail, to pass the mail to the Meqaris system.

Once resources are added, you can start booking them - just send your invitations with the resources' configured e-mail addresses just like you would send invitations to other meeting participants. See the User's manual on how to do that.

To later modify the resource, if needed, use the --update parameter, passing the name of the resource to modify and the new values:

	meqaris --update 'Teleconference set X-2'
		--name 'Teleconference set X-3'
		--description 'Teleconference set: HDTV + 2 speakers + mic'
		--email 'telco_set_x3@yourdomain'

To temporarily disable a resource from being booked, run

	meqaris --disable 'Room 100'

To re-enable a temporarily-disabled resource to be allowed to be booked again, run

	meqaris --enable 'Room 100'

To permanently delete a resource, run

	meqaris --delete 'Room 100'

After this, you need to re-create the resource in order to use it again. Resources which have meetings booked (even past) cannot be deleted right now.

To modify a setting in the Meqaris database, run

	meqaris --set <name> --value <new_value>

e.g.

	meqaris --set mail_server --value 127.0.0.1

To set the value to NULL (which is NOT the same as an empty string), run just

	meqaris --set <name>

To use CalDAV with Meqaris, you begin by adding CalDAV servers (calendar locations). To do that, use the --add-caldav-server parameter (and remember to properly quote or escape the parameters):

	meqaris --add-caldav-server 'http://some-url/some/calendar/location'
		--name 'Some CalDAV server'

The URL (after the --add-caldav-server parameter) and name are required. If the server requires authentication, you can pass the --user, --password and --realm (if needed) parameters:

	meqaris --add-caldav-server 'http://some-url'
		--name 'Some CalDAV server'
		--user some-user --password users-password

To later modify the server, if needed, use the --update-caldav-server parameter, passing the name of the server to modify and the new values:

	meqaris --update-caldav-server 'CalDAV1'
		--name 'CalDAV2'
		--url 'http://caldav2/some/calendar/location'
		--user caldav2-user
		--password 'caldav2-password'
		--realm caldav2

Once CalDAV servers are added, you can assign resources to them so that Meqaris knows which servers to notify when an invitation for a particular resource is processed.

To assign an existing resource to a CalDAV server, use the --add-caldav-resource parameter:

	meqaris --add-caldav-resource 'Some CalDAV server'
		--name 'Resource name'

You can assign multiple CalDAV servers to one resource and multiple resources to one CalDAV server.

To un-assign an existing resource from a CalDAV server, use the --delete-caldav-resource parameter:

	meqaris --delete-caldav-resource 'Some CalDAV server'
		--name 'Resource name'

To delete a CalDAV server and un-assign all existing resources from it, use the --delete-caldav-server parameter:

	meqaris --delete-caldav-server 'Some CalDAV server'

To completely delete the Meqaris data and database structures in the database, run

	meqaris --destroy-db

The database structures will be re-created by Meqaris upon receiving the first invitation or the first command that modifies the database (except --destroy-db), which includes running

	meqaris --upgrade-db

Finally,

	meqaris --license
	meqaris --licence

displays Meqaris license information, and

	meqaris --version

displays Meqaris version information.

You can use the provided scripts/mkdump.sh script to make a database backup, which can later be restored using the scripts/restoredb.sh script.


The configuration file

Meqaris uses an INI file to hold the primary configuration. The file's default syntax is

	[meqaris]
	dbtype=postgresql
	datadir=/var/lib/meqaris
	log4perl_config_location=/var/lib/meqaris/meqaris-log4perl.cfg
	lock_dir=/var/lock

	[postgresql]
	username=meqaris
	password=meqaris-pass
	dbname=meqaris
	host=127.0.0.1
	port=5432
	connect_timeout=30

The dbtype parameter in the [meqaris] section holds the type of the database and the name of the database settings' section.

The datadir parameter in the [meqaris] section tells where the Meqaris' data files (SQL files) are.

The log4perl_config_location parameter in the [meqaris] section gives the location of the configuration file for Log::Log4perl.

The lock_dir parameter in the [meqaris] section gives the location of the directory to put lock files in. Lock files prevent two or more Meqaris processes from accessing crucial code at the same time, to avoid e.g. running two database upgrades at the same time (one of which is bound to fail).
The directory must be writable by your mail server's user (and its parent directories must be traversable by your mail server's user).

The username parameter in the [postgresql] section gives the database username for the database.

The password parameter in the [postgresql] section gives the database password for the provided username for the database.

The dbname parameter in the [postgresql] section gives the name of the database to connect to.

The host parameter in the [postgresql] section gives the hostname or an IP address of the database to connect to. It can also be the path to the directory containing the local PostgreSQL socket for local connections, e.g. /run/postgresql/ in some versions, /tmp in other.

The port parameter in the [postgresql] section gives the port number of the database to connect to.

The connect_timeout parameter in the [postgresql] section specifies the database connection timeout, in seconds.


Configuration in the database

Meqaris uses also a database table to hold some of its configuration.

To modify a setting in the Meqaris database, use the --set command, along with --value (if needed), as described above.

Currently, the following user-modifiable parameters are supported:


Troubleshooting