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.
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.
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:
mail_server
: The address of the mail server to use (the default
value is NULL
meaning to use the default mail server guessing by the
Mail::Internet Perl module).mail_sending_method
is NOT set to mail_command
.
mail_server_port:
The port on the mail server to use (the default
value is NULL
meaning to use the default mail server port by the
Mail::Internet Perl module).mail_sending_method
is NOT set to mail_command
.
mail_sending_method
: The method to use to send mail. The default
value is NULL
meaning to use the default method used by the
Mail::Internet Perl module. Other possible values: the word default
,
Mail::Internet
and mail_command
.
mail_command
: The command to pipe the outgoing mail replies into
instead of sending the replies using a mail server. The default value is
NULL
, which silently drops the responses.mail_sending_method = "mail_command"
.cat >> /path/to/your_fileand make sure that the file is writable (and all the directories on the path are traversable) by the mail server's user.
catMeqaris will substitute the following strings in the command you set in the
mail_command
parameter:
%from%
gets substituted by the value of the From
header in the response
(which is the resource's name and e-mail address),
%to%
gets substituted by the value of the To
header in the response
(which usually is the meeting Organizer),
%cc%
gets substituted by the value of the CC
header in the response
(which usually is the address of the sender of the invitation, which can
be different from the Organizer),
%subject%
gets substituted by the subject of the response e-mail,
%action%
gets substituted by the action Meqaris took - Accepted
or Declined
.
meqaris --set mail_command --value 'some_mail_program --from "%from%" --to "%to%"' meqaris --set mail_sending_method --value mail_command
parser_tmp_dir
: The path to a temporary directory for files with
message parts. Default = /tmp
. NULL
means use the default.
reply_detail_level
: An integer saying how much detailed will the replies be. 0 = the default.
Can't locate X in @INC (you may need to install the X module)then make sure that all the required Perl modules and their dependencies are installed. If you installed them in non-standard locations, you may need to run Meqaris by using the
perl
command and pass the required paths in the
-I
parameter, e.g.
perl -I /path/to/perl/modules /path/to/meqaris --conf /path/to/meqaris.ini
--status
command displays something like:
Configuration file '/path/to/meqaris.ini': OK Data directory: '/path/to/meqaris/data': OK Database connection: ERROR: cannot connect: connection to server at "127.0.0.1", port 5432 failed: Connection refused Is the server running on that host and accepting TCP/IP connections?then check:
meqaris --conf /path/to/meqaris.ini < your_mail.emland examine the output,
EXDATE
values in one line, at least Cyrus IMAP translates them into
multiple, separate entries.EXDATE
entries are allowed, not all clients support this.