uv installs to ~/.local/bin which is not in PATH for systemd services,
and keeping uv updated on Ubuntu requires manual steps outside of apt.
Switch to a plain Python venv with pip-tools for dependency locking.
- Replace uv venv/sync with python3 -m venv --system-site-packages
- Generate requirements.txt with pip-compile from pyproject.toml
- Update service ExecStart to use .venv/bin/python directly
- Remove uv.lock and [tool.uv] from pyproject.toml
- Update README to document venv+pip-tools workflow
Run as the current user instead of a dedicated system user, using
systemd user service in ~/.config/systemd/user/. This avoids needing
root for setup and keeps uv and the project in the user's home
directory. Rename service file to matrix-paperless-ingest.service.
Bot that monitors a Matrix room for PDF and JPEG files and uploads
them to Paperless-ngx. Supports E2E encrypted attachments via inline
AES keys, historical catchup on startup, exponential backoff retries
with a permanent give-up after max attempts, file format validation
via magic bytes, Uptime Kuma heartbeat monitoring, and email alerts
on errors via SMTP SSL.