Hermes is a service that connects webhooks to Modrinth project releases. In addition, it has a RSS, Atom, and JSON feeds for Modrinth projects. The Hermes backend uses NodeJS and is connected to a PostgreSQL database. The frontend uses vanilla JS with server-side EJS for templating.
Webhooks currently aren't working. If you want to receive discord updates, you can use a discord RSS bot with the feed, https://hermes-webhooks.herokuapp.com/api/v1/feed/rss/lithium, replacing
lithium
with your mod slug or id
- Get your Modrinth project ID or slug.
- Make a feed URL using the structure
<hermes-instance>/api/v1/feed/:format/:project_id_or_slug
.
Supported formats:rss
,atom
,json
.
Here's a feed URL example for Lithium
https://hermes-webhooks.herokuapp.com/api/v1/feed/rss/lithium
Status | Uptime | URL | Version |
---|---|---|---|
https://hermes-webhooks.herokuapp.com/ | master (unstable) |
Make a copy of this file called docker-compose.yml
and replace example.com
with the domain you will be using. In the same directory as that file run:
docker-compose up -d
Now go use Hermes at http://localhost:8050/! (Or http://<server-ip>:8050/
and https://<domain>/
depending on your configuration.)
Make your Heroku app stay online. To run your app without a bedtime, add your credit card to your Heroku account. (Heroku won't charge you for anything.)
First, run a PostgreSQL container:
docker run --name hermes-postgres -e POSTGRES_PASSWORD=secretpassword -e POSTGRES_USER=username -e POSTGRES_DB=hermes -p 5432:5432/tcp -d --restart unless-stopped postgres
Next, run the Hermes container: (Replace example.com
with the domain where hermes will be)
docker run --name hermes -e DATABASE_URL='postgres://username:secretpassword@localhost:5432/hermes' -e DOMAIN='example.com' -p 8050:8060/tcp --restart unless-stopped ghcr.io/venashial/hermes:latest
You'll either want to change the port from 6000 to 80, and port forward that OR use something like Nginx to reverse proxy the
Clone the repo, install dependencies, and run npm start
. In addition, run an instance of Postgres.
Required environment variables:
DOMAIN ('example.com'
)
DATABASE_URL ('postgres://user:password@examplepostgres.com/databasename'
)
Optional:
USE_DATABASE_SSL (true
)
Requires
node
to be installed
# install dependencies
$ npm install
# set up database
$ npm run migrate:latest
# serve with hot reload at localhost:3000
$ npm run dev
- API tests
- Frontend rewrite in Svelte
- Add Jest tests
- Add curseforge links
- Client side form errors
- Modrinth project name preview
- Discord/json message preview
Pull requests are welcome.
Hermes is not affiliated with Modrinth.