.github/workflows | ||
src | ||
static | ||
.envrc | ||
.gitignore | ||
.mise.toml | ||
.pre-commit-config.yaml | ||
build.zig | ||
build.zig.zon | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
PLAN.md | ||
README.md |
Zetviel
A web-based email client for notmuch, written in Zig.
As some background, I've had some issues with the very usable netviel. I wanted to address those issues, but also simplify the deployment. And, I like Zig, so I decided this was small enough I'd just re-write the thing to make my own.
Features
- REST API for notmuch queries
- Thread and message viewing
- Attachment handling
- Security headers for safe browsing
- Configurable port
Building
If you have notmuch installed (libnotmuch-dev on a debian-based system),
zig build
is all you need. If you are using nix, you can nix develop
, which
will install the necessary notmuch header/library, and the build system will
detect and use that. Again, zig build
will work in that instance, but you must
nix develop
first.
Usage
# Start server on default port (5000)
zetviel
# Start server on custom port
zetviel --port 8080
# Show help
zetviel --help
# Show version
zetviel --version
Configuration
NOTMUCH_PATH
environment variable: Path to notmuch database (default:mail
)--port
: HTTP server port (default: 5000)
API Endpoints
GET /api/query/<query>
- Search threads using notmuch query syntaxGET /api/thread/<thread_id>
- Get messages in a threadGET /api/message/<message_id>
- Get message details with contentGET /api/attachment/<message_id>/<num>
- Get attachment metadata
Security
WARNING: Zetviel is intended for local use only. It binds to 127.0.0.1 and should not be exposed to the internet without additional security measures.