static web mail archive generator
Go to file
Omar Polo a3bb069cae msearchd: add a strict Content-Security-Policy
reminded by bentley@, thanks!
2023-09-14 15:43:29 +00:00
.mblaze typo; resolve filter-ignore from $PATH 2023-05-07 11:57:02 +00:00
keys keys for 0.3 2023-09-11 10:13:42 +00:00
msearchd msearchd: add a strict Content-Security-Policy 2023-09-14 15:43:29 +00:00
templates typo + better phrasing 2023-09-03 20:04:00 +00:00
.gitignore ignore more patterns 2023-05-06 10:30:08 +00:00
CHANGES CHANGES for 0.2 2023-09-11 10:14:03 +00:00
Makefile bump version 2023-09-11 10:29:37 +00:00
README tweak README 2023-09-03 13:44:05 +00:00 forgot to rename package 2023-05-07 10:33:04 +00:00
TODO TODO: remove date format item 2023-05-07 10:38:39 +00:00
configure rename project: gotmarc -> smarc 2023-05-07 07:22:27 +00:00
filter-ignore exports (some) parts of the email 2022-08-24 10:33:53 +00:00
mexp rename project: gotmarc -> smarc 2023-05-07 07:22:27 +00:00
mkindex rename project: gotmarc -> smarc 2023-05-07 07:22:27 +00:00
pe rename project: gotmarc -> smarc 2023-05-07 07:22:27 +00:00
smarc use UTC for times in listings 2023-05-07 10:38:18 +00:00
smarc.1 rename project: gotmarc -> smarc 2023-05-07 07:22:27 +00:00
smarc.7 reccommended -> recommended 2023-09-11 10:09:33 +00:00
smingest fmt 2023-07-01 10:00:04 +00:00
smingest.1 rename project: gotmarc -> smarc 2023-05-07 07:22:27 +00:00
style.css msearchd: show excerpt of search results 2023-09-03 18:58:26 +00:00


SMARC -- static web mail archive generator

A collection of scripts to generate a static mail archive from a
Maildir; originally intended to provide a public web interface for the
Game of Trees mailing list, now flexible enough to be used for other

The static site generator depends on perl and mblaze, the web search
component on libevent and sqlite3.

How it works

smarc(1) incrementally generate a set of static files from a maildir,
smingest(1) and msearchd(8) are used to populate an sqlite3 database to
provide a web-based full text search on all the mails.

smarc(7) documents the steps needed for a first setup, how to operate it
and tips for maintaining multiple archives.


To compile it, run

	$ ./configure
	$ make
	# make install

Several parameters can be passed to the `configure' script to customize
the build:

 --mandir or MANDIR			Where to install man pages
 --perllib or PERLLIB			Where to install the perl module
 --prefix or PREFIX			Where to install, /usr/local
 --realsysconfdir or REALSYSCONFDIR	"Real" sysconfdir
 --sharedir or SHAREDIR			$PREFIX/share by default
 --sysconfdir or SYSCONFDIR		/etc
 --wwwuser or WWWUSER			Name of the user used by msearchd

and also:

 CC		The C compiler
 CFLAGS		Flags for the C compiler
 LDFLAGS	Flags for the linker
 PKG_CONFIG	pkg-config program, use `no' or empty to disable usage

The variables can also be set in the environment for the configure
script to pick them up.

The difference between REALSYSCONFDIR and SYSCONFDIR is to accomodate
the packaging on some systems.  For example, on OpenBSD SYSCONFDIR is
pointed at /usr/local/share/examples and the port then copies the files
in /etc, to allow the user to freely change some files and keep edits
across package updates.

smarc always installs in SYSCONFDIR but at runtime looks into


smarc, smingest and msearchd are released in the public domain.  The
configure script loosely based on oconfigure and is released under the
terms of ISC license.  Some OpenBSD-compats are included to build on
multiple platforms, these are released under a BSD-style license.
See the first lines of each file for the copyright owners.