zetviel/README.md
2025-10-15 15:28:47 -07:00

63 lines
1.7 KiB
Markdown

Zetviel
-------
A web-based email client for [notmuch](https://notmuchmail.org/), written in Zig.
As some background, I've had some issues with the very usable [netviel](https://github.com/DavidMStraub/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
-----
```sh
# 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 syntax
- `GET /api/thread/<thread_id>` - Get messages in a thread
- `GET /api/message/<message_id>` - Get message details with content
- `GET /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.