finga
b9ce12c9f1
Cargo update and bump following dependencies: - toml (0.6 -> 0.7) - tower-http (0.3 -> 0.4) |
||
---|---|---|
.cargo | ||
migrations | ||
service | ||
src | ||
.gitignore | ||
.woodpecker.yml | ||
Cargo.lock | ||
Cargo.toml | ||
config.toml | ||
diesel.toml | ||
README.md |
remindrs
Send an email at a given time. The basic purpose of remindrs is to send a reminder email containing a certain title and message.
Setup
There are two basic steps to install remindrs. First it is recomended to prepare the Database. Then build the binary or build and install the Debian package.
Database
Prepare an empty Postgres database preferably together with an separate user. The database schema creation and updates are done automatically for each change.
Building
Remindrs can be built in two ways. By using the classic Rust toolchain
to build a binary. Or by using
cargo-deb
to build a
Debian package.
For both ways a Postgres database is mandatory.
With the Rust toolchain
In order to build just the remindrs binary with the standard Rust toolchain build it with cargo:
cargo build
Debian package
In order to build the remindrs Debian package use
cargo-deb
:
cargo deb
The generated Debian package also installs a systemd service unit, but does not enable it by default in order to prepare the configuration first.
Configuraion
When remindrs is started it tries to load the configuration either
from the path passed as the command line argument -c
/--config
, or
by the default paths. Those are ./config.toml
,
$XDG_CONFIG_HOME/remindrs/config.toml
or
$HOME/.config/remindrs/config.toml
if $XDG_CONFIG_HOME
is not set,
and finally /etc/remindrs/config.toml
.
To configure remindrs the following configuration options are available.
Note that all options that are commented out have the given parameter as a default value and are not mandatory.
[database]
# host = "localhost"
# port = 5432
# name = "remindrs"
# user = "remindrs"
pass = "remindrs"
# [server]
# address = "::1"
# port = 8080
# [email]
# from = "remindrs@localhost"
Usage
The configuration is mostly done via the configuration file. When remindrs is running the only way to interact with it is via the API.
Command line arguments
The binary supports only a small set of command line arguments.
Usage: remindrs [OPTIONS]
Options:
-c, --config <FILE> Use a custom config file
-l, --log-level <LEVEL> Set a log level [default: INFO]
-h, --help Print help
-V, --version Print version
API
In order to create a reminder send a POST
request to the API
endpoint.
This may be done for example with curl
like the following:
curl -X POST localhost:8080/v1/reminder \
-H 'Content-Type: application/json' \
-d '{"planned":"2023-02-02T14:16:00.000000000+07:00", "title":"test title", "message":"test message", "receiver":"user@localhost"}'