selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Klaxon logo

Self-host Klaxon

v0.7.0

Website change monitoring for journalists

BetaOpen SourceMIT
Updated5 days ago
LanguageSCSS
Setup difficultyAdvanced
Stars
683
Ports
3000 (HTTP web server), 5000 (Development server)
Requires
PostgreSQL
Install with Heroku

What is Klaxon?

Klaxon is a free, open-source web monitoring tool built by The Marshall Project's newsroom for journalists and researchers. It lets users bookmark specific sections of web pages and get notified by email, Slack, or Discord when those sections change. The software is designed for newsrooms to track updates on government disclosure logs, court records, and other public web pages. It runs as a Ruby on Rails application with PostgreSQL database and can be deployed on Heroku (with SendGrid for email), via Docker, or on a Linux server using Capistrano. The project includes a browser bookmarklet for selecting page elements to monitor, a web dashboard for managing watched pages and users, and integrations for Slack and Discord webhook notifications. While the original self-hosted version remains open source, the maintainers now recommend a hosted Klaxon Cloud version built into DocumentCloud for individual users.

Should you self-host Klaxon?

Klaxon scores 49/100 on selfhost.directory (how scoring works) and ranks #3 of 3 in News Aggregators. It has 683 GitHub stars.

It shipped 1 stable release in the past year. The latest, v0.7.0, came out on 9 March 2026.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in SCSS.

Its closest alternative on selfhost.directory is AIHOT (64/100, 8 786 stars). It scores higher overall, so compare the two before you pick. See Klaxon vs AIHOT side by side.

Features

  • Bookmarklet for easy page selection
  • Change History
  • Discord Notifications
  • Domain-restricted user signup
  • Element-level bookmarking
  • Email notifications
  • Heroku one-click deploy
  • Multi-user support
  • Scheduled checks
  • Slack notifications
  • Web Dashboard
  • Website change monitoring

Klaxon README

How to install Klaxon

Install Klaxon with Heroku

Environment variables
ADMIN_EMAILS, SENDGRID_USERNAME, SENDGRID_PASSWORD, MAILER_FROM_ADDRESS, APPROVED_USER_DOMAINS (optional)

Deploy

It will take you to a page to configure your new app in Heroku's dashboard. First, give your app a name in the first box. While this is technically optional, this will also double as the URL for your Klaxon instance, so think carefully about it for a moment. Try maybe an abbreviation for your newsroom with a hyphen and the word klaxon, like "wp-klaxon" or "sl-klaxon". This will become a URL as https://sl-klaxon.herokuapp.com/

Scroll down to the admin_emails field and add a comma-separated list of email addresses of your newsroom's Klaxon administrators. These administrators will be able to create accounts for users in your organization as well as configure the Slack and Discord integrations.

Click the big purple "Deploy" button. If you haven't given Heroku your credit card yet it will ask you for your information now. After that, give Heroku a few minutes for the app to build.

When you see this message:

...you're almost done.

Click on the button that says "Manage App". This takes you behind the scenes of the various components powering your Klaxon. On this resources screen, click on the link for "Heroku Scheduler," which will take you a new screen where you must add the very important piece. The scheduler is what runs every 10 minutes to actually check all the sites and pages you're watching. Click the long, purple "Add new job" button. In the text box next to the dollar sign, type the words "rake check:all" with the colon and without the quotes. Under "Frequency" change it from "Daily" to "Every 10 minutes". Click the purple "Save" button and your scheduler item should look like this:

Sendgrid now requires additional steps to confirm that you are not a spammer. Your new Sendgrid account is created in a "suspended" state. To get it unsuspended you have to contact Sendgrid support. You can do this by clicking the Sendgrid logo on the Resources tab.

If clicking on the logo takes you to an error page do not worry. This has been known to happen as Sendgrid's system has undergone redesigns. Instead go to Sendgrid's page to ask for support. Be sure to use the same email address associated with your Heroku account and provide the url of your Klaxon instance. When they ask for "Business impact," choose "P3 General - You have a question about Sendgrid or how to use its products".

This step is a nuisance, but important. You will not be able to get an email to log in to Klaxon until you are cleared by Sendgrid. This usually happens pretty quickly.

Unfortunately you are not yet done configuring Sendgrid. There are more steps to set up your account.

  1. From the Heroku application page, click on the "Resources" tab, and click the link to the Sendgrid plugin, this will take you to the Sendgrid website.
  2. In the left hand column choose Settings -> API Keys. Click the blue "Create an API Key" button in the top right corner.
  3. In the form that appears fill in the API key name (doesn't matter what you name it), make sure the "Full Access" option is selected, and click "Create & View".
  4. Click the API key to copy it to your clipboard. Then navigate back to Heroku.
  5. In the "Settings" tab of your Heroku app click the "Reveal Config Vars" button.
  6. Change the SENDGRID_PASSWORD variable to the API Key by clicking the pencil icon next to it, pasting it in, and saving it.
  7. Change the SENDGRID_USERNAME variable to the string "apikey" in the same manner.

Next you'll need to set up a "Verified Sender" account in Sendgrid using an email address that you have access to. In your Sendgrid dashboard, click "Sender Authentication" and choose "Verify Single Sender".

When you've completed this process in Sendgrid, you'll need to set the MAILER_FROM_ADDRESS variable as you did above to your verified sender email address.

Finally, now, you should be done setting up your Sendgrid account.

At the top of the scheduler page, click the link that is the name of your app ("sl-klaxon"). This will take you to back to Klaxon's dashboard. Then click the button in the upper right that says "Open app," and this should take you to your Klaxon's login screen on the web.

Type the admin email address that you gave the Heroku dashboard earlier into the text box and hit the "Login" button. You'll then be redirected to a page that says an email has been sent to you. Check your inbox. This may take a minute or two to arrive.

In the email, click the "Go to Dashboard" button. You're now authenticated in the system and can access your Klaxon.

Requires Heroku account, credit card, and SendGrid setup

How to configure Klaxon

  • ADMIN_EMAILSComma-separated list of admin email addresses

    Comma-separated list of admin email addresses

  • APPROVED_USER_DOMAINSComma-separated list of allowed email domains for new users

    Comma-separated list of allowed email domains for new users

  • BUNDLE_DEPLOYMENT1Bundler deployment mode

    Bundler deployment mode

  • BUNDLE_PATH/usr/local/bundleBundler path

    Bundler path

  • BUNDLE_WITHOUTdevelopment:testBundler groups to exclude

    Bundler groups to exclude

  • DATABASE_URLPostgreSQL connection URL

    PostgreSQL connection URL

  • DB_POOL5Database connection pool size

    Database connection pool size

  • HOSTHost for development (e.g., localhost:5000)

    Host for development (e.g., localhost:5000)

  • MAILER_FROM_ADDRESSVerified sender email address for outgoing emails

    Verified sender email address for outgoing emails

  • PORT3000Port for the web server

    Port for the web server

  • RAILS_ENVproductionRails environment

    Rails environment

  • RAILS_MAX_THREADS3Maximum threads for Puma

    Maximum threads for Puma

  • SECRET_KEY_BASEA secret key for verifying the integrity of signed cookies and JWTs

    A secret key for verifying the integrity of signed cookies and JWTs

  • SENDGRID_PASSWORDSendGrid API key

    SendGrid API key

  • SENDGRID_USERNAMESendGrid username (set to 'apikey')

    SendGrid username (set to 'apikey')

  • WEB_CONCURRENCYNumber of Puma workers

    Number of Puma workers

Klaxon releases & version history

More in News Aggregators

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…