Do you often miss out on the latest heavy metal album releases from your favorite bands due to a busy schedule? If so, we have the perfect solution for you! Our project will notify you via RSS time whenever there are new releases. The application works by creating a calendar from Wikipedia heavy metal releases and Encyclopaedia Metallum. It is updated weekly at 12:00 AM on Sunday.
The RSS feature lets you add a customizable feed to your favorite RSS application.
The GIF below shows how to add the main feed to the Feeder Android app.
The interactive calendar displays ALL past and upcoming releases. It's perfect for a wall-mounted tablet connected to your surround sound system while you cook!
Clone the project.
git clone https://github.com/reaper47/heavy-metal-notifier.git
Go to the project directory.
cd heavy-metal-notifier
Build the project.
cargo build
Copy the .env file next to the executable and edit the variables.
cp ./deploy/.env.example ./.env
Run the project.
cargo run
The configuration file sets important variables for the application. Let's go over each of them.
- BASE_URL: The web application's base URL, e.g.
http://localhost:8078
orhttps://domain.com
. - DATABASE_URL: The path to the SQLite3 database called
metal.db
. - IS_PROD: Whether the application is in production. Either
true
orfalse
. If set totrue
, HTTP GET requests will be sent during the creation and updating of the calendar to Bandcamp for every artist, to know whether they have a page. - RUST_LOG: Controls the level of logging output from a Rust application. Can remain as default.
- SERVICE_PORT: The port number on which the web application should listen for incoming HTTP requests. Can remain as default.
- SMTP_HOST: The SMTP server host, e.g.
smtp.gmail.com
. - SMTP_USERNAME: Your SMTP server username.
- SMTP_PASSWORD: Your SMTP server password. Please create an app password if you use gmail.
- SMTP_EMAIL_ADMIN: The administrator's email address. Typically the email address of the one who set up the server. It may be the same as
SMTP_USERNAME
.
The project can be self-hosted with Docker or as a service.
A Docker image called reaper99/heavy-metal-notifier
is produced nightly and on every release.
You first have to fetch it.
docker pull reaper99/heavy-metal-notifier:latest
Then, run the image. You must pass your .env
file to the container.
docker run -v path/to/.env:/app/.env -p 3000:7125 -d reaper99/heavy-metal:latest
Access http://localhost:3000
in your web browser to access the website.
You can use Docker Compose to run the container. First, you need to modify the ports and the path to your local config.json in the compose.yml.
Then, start the application.
docker-compose up -d
Access the app through your browser at http://localhost:3000
.
If you are using Windows and you intend to access the app on other devices within your home network, please ensure
to Allow the connection
of the Docker Desktop Backend
inbound Windows Defender Firewall rule.
First download and extract the latest release.
Then, copy the .env file next to the executable and edit the variables.
Next, copy the service example file and edit the variables to run the app automatically on boot.
sudo cp ./deploy/metal-releases.service /etc/systemd/system/
Finally, start the service on boot.
sudo systemctl start heavy-metal-notifier.service
sudo systemctl enable heavy-metal-notifier.service
Contributions are always welcome! Please open a pull request or email us at metal.releases.666@gmail.com.
I am grateful for any support that helps me continue to develop this project. Your sponsorship will help me pay for the SendGrid paid plan to increase the limit of users. The free plan currently used allows sending a maximum of 100 emails per day. This means the application can have a maximum of 100 users because one email per user is sent whenever there are new heavy metal album releases.
You can sponsor me on GitHub Sponsors or Buy Me a Coffee.
Your support is greatly appreciated!