Run the doctor
perch doctor --config /etc/perch/perch.yamlperch doctor checks SQLite integrity and FTS5, TLS certificate files, DNS,
S3 connectivity, and mxRaven listeners. Run it as the same user that runs
perch serve.
Mail clients cannot connect
- Check the listener addresses in
perch.yaml. - Plaintext is only allowed on loopback. Use TLS or STARTTLS from other hosts.
- For the quickstart defaults, IMAP is
127.0.0.1:1143and submission is127.0.0.1:1587. - If you generated a self-signed certificate, the client must trust it or you must explicitly allow the certificate.
- Off-loopback connections always require TLS.
perch mail cannot connect
- For an explicit loopback address, add
--plaintextor--smtp-plaintext. - Config-derived loopback listeners select plaintext automatically.
- For remote servers, use
imaps://host/smtps://hostorimap://host/smtp://hostfor STARTTLS. - Use
--ca-filefor a private CA and--insecureonly for testing.
Authentication fails
perch mailuses the account password, not the mxRaven API key.perch account passwdchanges the local account password.- Check
authlimitlogs if logins are being throttled. - For submission, the
Fromaddress must be an account address, alias, or authorized plus-address.
Messages are delivered but not visible locally
- In S3 mode, check
perch reconcileand the S3 prefix/key template. - The key template must start with
storage.s3.prefix. perch gc --s3-deleteremoves objects for deleted messages.- Check
perch outbound listfor submission status and SMTP errors.
S3 errors
- Verify the endpoint, region, bucket, access key, and secret.
secret_key_envnames the environment variable; systemd reads it fromEnvironmentFile.- Run
perch reconcileto force a scan. - Check that mxRaven’s
S3_STORErule writes to the same bucket and prefix.
systemd service exits
- Run
journalctl -u perch -f. ExecReloadsends SIGHUP. Only keep it whentls.cert_fileandtls.key_fileare configured; otherwise SIGHUP terminates the process.ProtectHome/ProtectSystemmust allow the configureddata_dir.- The service user must be able to read the config and write the data dir.
Versions and releases
perch version
gh release view --repo synqronlabs/perchManpages are installed with release archives; perch <command> --help always
reflects the installed binary.