Lure is an improved fork of lr, a small process that sets the currently playing track on Last.fm, ListenBrainz (and other future platforms, PRs welcome!) as Revolt user status.
Warning
Version 1 contains big configuration changes. If you were on previous versions, check configuration section.
Important
Lure is tested on Linux and Windows, and is expected to work on macOS too.
cargo install --git https://github.com/catuhana/lure
Or if you'd want to use an container image (Docker, Podman, etc.), you can pull the image from GitHub Container Registry.
docker pull ghcr.io/catuhana/lure:latest
Tip
Container images support AMD64 and ARM64 architectures.
Important
Reading the configuration first is highly recommended.
To run lure, run:
lure start
Or using a container management tool:
docker/podman run -v $(pwd)/config.yaml:/app/config.yaml:ro lure:latest
Or on NixOS:
{
inputs = {
+ lure = {
+ url = "github:catuhana/lure";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
modules = [
+ lure.nixosModules.default
+ {
+ # Check `module.nix` file for all available options.
+ services.lure = {
+ enable = true;
+ useService = "listenbrainz";
+
+ services.listenbrainz.username = "<username>";
+
+ revolt.session_token = ./<path>;
+ };
+ }
];
}
Tip
By default, lure logs useful information to the console. If you'd want to see other log levels, use the LURE_LOG
environment variable. Check EnvFilter
documentation from tracing-subscriber
for more information.
export LURE_LOG="lure=trace" # log trace level logs only from lure
export LURE_LOG="trace" # log trace level logs from every library used that supports it
# for container management tools, use `-e LURE_LOG=` option
Lure uses a YAML configuration file and environment variables for configuration. Check the sample configuration file as a reference, as it contains important information for every option (including environment variables).
To generate an example configuration file, run:
lure config generate # prints to the stdout
lure config generate >config.yaml # creates a file
If you're using any container management tools, you can either mount the host configuration file to the container or use environment variables. The volume for the app and its configuration file is /app
. Refer to the run section for example.
Lure currently has two service features and, they're enabled by default: LastFM and ListenBrainz. PRs for adding new platforms is very welcome.
Tip
If you'd like to only enable the service you're using, you can pass --no-default-features
and --features services-<platform>
to the install command above, <platform>
being the lowercase platform string. To see all exact feature names, see Cargo.toml