This is a rewrite of the version 1 recent-messages service.
See https://recent-messages.robotty.de/ for all kinds of information you might want.
- Install Rust
- On Debian and Ubuntu:
sudo apt install build-essential
, For other operating systems I recommend you just try to proceed with step three and then try to fix the missing compiler programs/system libraries as they pop up git clone https://github.com/robotty/recent-messages2.git && cd recent-messages2
cargo build --release
- The binary application will be ready in
./target/release/recent-messages2
(On Windows with the additional.exe
suffix). The binary is statically linked and so can be moved to other directories or sent to remote machines without need for additional files.
The config.toml
is expected to be in the working directory of the process. Edit it to your use case before first startup:
editor config.toml
The binary can be run with any process manager in the background (systemd etc.), or you can dockerize it. For testing purposes, you can use cargo run --release
.
A sample file for running it as a systemd unit is provided as recent-messages2.service
.
cp ./recent-messages2.service /etc/systemd/system/recent-messages2.service
Now edit the service file to reflect your setup:
sudo editor /etc/systemd/system/recent-messages2.service
And start the service.
sudo systemctl daemon-reload
sudo systemctl enable --now recent-messages2.service
View log output/service status:
sudo journalctl -efu recent-messages2.service
sudo systemctl status recent-messages2.service
Also, wherever you placed the service's working directory, ensure there is a directory called messages
that is writable for the service. Messages will be persisted there between restarts.
Instructions for setting up the static website (like the "official" https://recent-messages.robotty.de/) are found in the README in the ./web
directory of this repo.
There you can also find an example nginx config.
A prometheus metrics endpoint is exposed at /api/v2/metrics
. You can import the grafana-dashboard.json
in the repository as a dashboard template into a Grafana instance.