apt-get install archiveopteryx (on Debian)
pkg install archiveopteryx (on FreeBSD)
|http://archiveopteryx.org/installation explains what to do in other cases.|
to create a username and password.
aox add user name password address@domain
You can use deliver(8) to inject some mail you already have.
This command injects all the messages from a berkeley mbox file:
formail -s deliver yourname@domain < mbox
The mail you just delivered is in your inbox, and you can read it with any IMAP or POP3 client.
The normal way to deliver mail from your MTA into Archiveopteryx is via LMTP. By default, Archiveopteryx listens on 127.0.0.1 port 2026.
Archiveopteryx consists of a number of frontend servers, each of which uses backend servers:
Each server is described more fully in its own man page: logd(8), postgres(1) and archiveopteryx(8) for the frontend server, which serves IMAP, POP3, LMTP and/or SMTP and perhaps webmail.
RDBMS The RDBMS is where all the mail is stored. At present only PostgreSQL is supported. logd The log server is an internal server which filters log entries so useful messages are logged while noise is suppressed.
The servers use TCP to communicate internally, so they can be distributed across a server cluster. Generally, one host will run the database backend, one host (perhaps the same) will run logd(8) and as many as required will run frontends.
The man pages for each server explain the use and configuration of each. See archiveopteryx.conf(5) for more about configuring Archiveopteryx in general.
All Archiveopteryx servers run in chroot directories.
The user-facing servers run in a special jail directory. They have neither read nor write access to this directory.
logd(8) runs chrooted to another directories. All of the servers close all open files at startup and drop root privileges. By default they run as user aox, group aox, although these names can be changed using archiveopteryx.conf(5).
The servers check that they lose prvileges as expected, and refuse to start if theyre too privileged.
Note that logd(8) must have permission to create the logfile.
Archiveopteryx does not store mail in the RFC-822 format. It parses each message upon delivery, and stores a normalized representation, optimized for fast and reliable search and categorization.
This offers the following advantages, among others:
Performance One example: Each address is stored exactly once, as Unicode and with RFC-2047 encoding undone. Finding all messages sent from/to a given name is extremely fast, because only a single SQL SELECT is necessary, and it accesses just two small tables. Long-term Stability Archiveopteryx handles todays common syntax problems and stores the correct form in the database. Because of that, the mail reader which looks at old mail in the year 2020 will not need to be bug compatible with todays version of Microsoft Outlook. Scalability and Flexibility Only the database size limits Archiveopteryxs capacity. Many other servers limit individual folders to 2GB (or less), or cannot support more than a few thousand subfolders/messages in a folder. With Archiveopteryx, you dont need to invent workarounds for such artificial limitations. Robustness Because mail is stored normalized and parsed, large attachments are generally stored only once, and mail parsing exploits are rendered harmless before reaching the MUA. A movie clip sent to a hundred recipients is not a problem, because its stored just once.
Archiveopteryx is available under the PostgreSQL License.
The configurable file and directory names in this build are as follows:
These variables can be changed only by editing the file Jamsettings and recompiling Archiveopteryx. Jamsettings also contains some variables used only during compilation and/or installation, and some which provide defaults for archiveopteryx.conf(5) settings.
SBINDIR (where servers live) is /usr/local/sbin. BINDIR (where other executables live) is /usr/local/bin. INITDIR (where the startup script lives) is /usr/local/etc/rc.d. MANDIR (where manpages live) is /usr/local/man. PIDFILEDIR (where pidfiles live) is /var/run/aox. LIBDIR (where supporting files live) is /usr/local/libexec/aox. JAILDIR (the working directory of the user-facing servers) is /var/db/aox/jail, and can be overridden using the jail-directory variable in archiveopteryx.conf(5). CONFIGDIR (where the configuration files live) is /usr/local/etc/archiveopteryx. LOGFILE (the full name of the logfile) is syslog/mail, and can be overridden using the logfile variable in archiveopteryx.conf(5).
/usr/local/etc/archiveopteryx/archiveopteryx.conf contains the Archiveopteryx configuration. /usr/local/libexec/aox/automatic-key.pem contains a private key and self-signed certificate used by openssl(3).
The Archiveopteryx Developers, firstname.lastname@example.org.
This man page covers Archiveopteryx version 3.2.0, released 2014-03-10, http://archiveopteryx.org/3.2.0