Install
Binary and systemd
Build it with cargo build --release (Rust 1.94 or newer), or take it from
the container image. Then:
export POSTKEEP_PUBLIC_URL=https://mail.example.com
export POSTKEEP_MASTER_KEY_FILE=/etc/postkeep/master.key
export POSTKEEP_DATABASE_URL=sqlite:///var/lib/postkeep/postkeep.db
postkeep servedeploy/systemd/postkeep.service
is a hardened systemd unit. It runs as a dynamic user, passes the master key
as a systemd credential and keeps the database in
/var/lib/postkeep.
The unit’s header documents the install:
sudo install -m 0755 postkeep /usr/local/bin/
sudo install -d -m 0700 /etc/postkeep
postkeep generate-key | sudo tee /etc/postkeep/master.key >/dev/null
sudo chmod 0600 /etc/postkeep/master.key
echo 'POSTKEEP_PUBLIC_URL=https://mail.example.com' | sudo tee /etc/postkeep/env
sudo cp postkeep.service /etc/systemd/system/
sudo systemctl daemon-reload && sudo systemctl enable --now postkeepThe unit itself sets POSTKEEP_BIND=127.0.0.1:8080,
POSTKEEP_DATABASE_URL=sqlite:///var/lib/postkeep/postkeep.db,
EnvironmentFile=/etc/postkeep/env,
LoadCredential=master_key:/etc/postkeep/master.key and
POSTKEEP_MASTER_KEY_FILE=%d/master_key. DynamicUser=yes and
StateDirectory=postkeep.