GitHub Release Monitor

Get told when your favourite GitHub, GitLab, Codeberg and Forgejo projects ship a release

  • ghcr.io/hsinghhira/github-release-monitor:latest
  • v2.6.1
  • Updated 30 Oct 2026
  • port 6182
  • amd64 · arm64
  • Developer
  • 439 stars

Screenshots

GitHub Release Monitor screenshot 1: HomeGitHub Release Monitor screenshot 2: Repository settingsGitHub Release Monitor screenshot 3: SettingsGitHub Release Monitor screenshot 4: Test page

Open the app

Web App

http://localhost:6182/

Test Page

http://localhost:6182/en/test

About GitHub Release Monitor

GitHub Release Monitor watches the repositories you pick and tells you by email or Apprise (Discord, Telegram, Slack and 70 more) as soon as a new release comes out. No more checking by hand. Every install makes its own secret keys on first start.

Features

  • Watches GitHub, GitLab, Codeberg and self-hosted Forgejo repositories
  • Email and Apprise notifications, one per release or grouped
  • Pick stable, pre-release or draft releases, for all repositories or one at a time
  • Include and exclude rules for tags, and alpha, beta or rc choices
  • Import and export your list as JSON
  • A test page to check the GitHub connection, email and Apprise
  • Passkeys, two-factor sign-in, dark mode and 19 languages

How to use

  1. Open the app log and copy the setup token.
  2. Open http://[ZIMAOS-IP-ADDRESS]:6182 and make your account with the setup token.
  3. Add the repositories you want to watch, like https://github.com/owner/repo.
  4. Open Settings to pick which releases you want and how often to check.
  5. Set up email or Apprise to get notifications, then try them on the Test page.

Before you install

Set GITHUB_ACCESS_TOKEN to a GitHub token with no scopes; without it GitHub only allows 60 checks an hour. You can leave BETTER_AUTH_URL as it is: sign-in works from http://[ZIMAOS-IP-ADDRESS]:6182 on your home network. Change localhost to your ZimaOS IP for working links in emails. The app is ready in about half a minute. Then open the app log, copy the code after "Setup token:" and use it to make your account. Email, Apprise and the other settings are in the Variables tab; add them in the app settings.

The settings in the first table are already in the app settings. To use any other one, open the app settings, add the variable with your value, save, and the app restarts with it. A setting you leave out uses its default.

In the app settings

VariableDefault valueDescription
TZ$TZYour time zone, used for check times, logs and emails. It is filled in from your ZimaOS time zone. Leave it unless you need another.
BETTER_AUTH_URLhttp://localhost:6182The address you open the app at. Sign-in already works from http://[ZIMAOS-IP-ADDRESS]:6182 on your home network with localhost here. Change it for working links in emails, like http://192.168.1.20:6182, or to your https address behind a reverse proxy.
GITHUB_ACCESS_TOKEN—Recommended. A GitHub personal access token with no scopes. It raises GitHub's limit from 60 to 5000 checks an hour.

Server

VariableDefault valueDescription
HTTPSfalseSet to true when you open the app through https (a reverse proxy). IceStore keeps it false so sign-in works over plain http.
GRM_TRUST_LANtrueIceStore setting. Set to false to only allow sign-in from BETTER_AUTH_URL, not from every home-network address on port 6182.
BETTER_AUTH_TRUSTED_ORIGINS—More addresses people may sign in from, comma-separated, like https://releases.example.com.

Sign-in

VariableDefault valueDescription
AUTHENTICATION_METHODBasicBasic (sign-in needed), AllowUnauthenticated (anyone can look, sign-in to change things) or External (no sign-in, only behind another login like Authelia or Authentik).
AUTH_ENABLE_SIGNUPfalseSet to true to let other people make their own accounts.
AUTH_ENABLE_PASSKEYtrueSet to false to turn off passkey sign-in.
AUTH_MAX_LOGIN_ATTEMPTS5Wrong passwords allowed before a short lockout.
AUTH_LOGIN_LOCKOUT_SECONDS900How long the lockout lasts, in seconds.
AUTH_LOGIN_WINDOW_SECONDS900The time window wrong passwords are counted in, in seconds.
AUTH_TRUST_PROXY_HEADERStrueSet to false when the app is not behind a reverse proxy, so visitors can't fake their address.
AUTH_TRUSTED_PROXY_HOPS1How many reverse proxies are in front of the app.
AUTH_PASSWORD_RESET_TOKEN_TTL_SECONDS900How long a password reset link works, in seconds (60 to 86400).
BETTER_AUTH_SECRET—Your own sign-in key, 32 characters or more. Leave it out: each install makes its own on first start and keeps it in the data folder as .better_auth_secret. Changing it signs everyone out.
AUTH_SETUP_TOKEN—Your own one-time token for making the first account, 32 characters or more. Leave it out: one is made on first start and shown in the app log.

Sign in with GitHub or Google

VariableDefault valueDescription
AUTH_GITHUB_CLIENT_ID—The client ID of a GitHub OAuth app, to sign in with GitHub.
AUTH_GITHUB_CLIENT_SECRET—The client secret of that GitHub OAuth app.
AUTH_GOOGLE_CLIENT_ID—The client ID of a Google OAuth client, to sign in with Google.
AUTH_GOOGLE_CLIENT_SECRET—The client secret of that Google OAuth client.
AUTH_TRUST_SOCIAL_LINKINGtrueSet to false so GitHub or Google sign-ins are not linked to accounts by email by themselves.

Git hosts

VariableDefault valueDescription
GITLAB_ADDITIONAL_HOSTS—Other GitLab servers besides gitlab.com, comma-separated, like gitlab.example.com.
GITLAB_ACCESS_TOKENS—GitLab tokens for private repositories, as host=token pairs, comma-separated.
GITLAB_DEPLOY_TOKENS—GitLab deploy tokens, as host=username:token pairs, comma-separated.
CODEBERG_ACCESS_TOKEN—A Codeberg token, for private repositories.
FORGEJO_ADDITIONAL_BASE_URLS—Your Forgejo servers, comma-separated, like http://192.168.1.20:3000.
FORGEJO_ACCESS_TOKENS—Forgejo tokens for private repositories, as base-url=token pairs, comma-separated.

Email (SMTP)

VariableDefault valueDescription
MAIL_HOST—Your SMTP server, for release emails and password resets.
MAIL_PORT—The SMTP port, like 587 or 465.
MAIL_USERNAME—The SMTP user name.
MAIL_PASSWORD—The SMTP password or app password.
MAIL_FROM_ADDRESS—The address emails are sent from.
MAIL_FROM_NAMEGitHub Release MonitorThe name emails are sent from.
MAIL_TO_ADDRESS—The address that gets the release emails.
MAIL_TLS_REJECT_UNAUTHORIZEDtrueSet to false to accept a mail server with a self-signed certificate.

Notifications

VariableDefault valueDescription
APPRISE_URL—Your Apprise server's notify address, like http://192.168.1.20:8000/notify/your_key.

Logs

VariableDefault valueDescription
LOG_LEVELwarnerror, warn, info, debug or silent.
docker-compose.yml
name: github-release-monitor

services:
  github-release-monitor:
    image: ghcr.io/hsinghhira/github-release-monitor:latest
    container_name: github-release-monitor
    restart: unless-stopped
    stop_grace_period: 30s
    network_mode: bridge
    environment:
      - TZ=$TZ
      - BETTER_AUTH_URL=http://localhost:6182
      - GITHUB_ACCESS_TOKEN=
    ports:
      - target: 3000
        published: "6182"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /app/data
        bind:
          create_host_path: true
    healthcheck:
      test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:3000/en/login"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s
    deploy:
      resources:
        limits:
          cpus: "1.00"
          memory: 512M
        reservations:
          cpus: "0.00"
          memory: 96M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/icon.png
    x-casaos:
      id: com.icestore.github-release-monitor
      envs:
        - container: TZ
          description:
            en_US: >-
              Your time zone, used for check times, logs and emails. It is
              filled in from your ZimaOS time zone. Leave it unless you need
              another.
        - container: BETTER_AUTH_URL
          description:
            en_US: >-
              The address you open the app at. Sign-in already works from
              http://[ZIMAOS-IP-ADDRESS]:6182 on your home network with
              localhost here. Change it for working links in emails, like
              http://192.168.1.20:6182, or to your https address behind a
              reverse proxy.
        - container: GITHUB_ACCESS_TOKEN
          description:
            en_US: >-
              Recommended. A GitHub personal access token with no scopes. It
              raises GitHub's limit from 60 to 5000 checks an hour.
      ports:
        - container: "3000"
          description:
            en_US: GitHub Release Monitor web app, published on host as 6182
      volumes:
        - container: /app/data
          description:
            en_US: >-
              Your watched repositories, settings and sign-in database
              (auth.db), plus .better_auth_secret and .auth_setup_token, this
              install's own keys made on first start. Back this folder up.

x-casaos:
  id: com.icestore.github-release-monitor
  architectures:
    - amd64
    - arm64
  main: github-release-monitor
  author: HSinghHira
  category: Developer
  developer: iamspido
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/screenshot-3.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/github-release-monitor/screenshot-4.png
  title:
    en_US: GitHub Release Monitor
  tagline:
    en_US: Get told when your favourite GitHub, GitLab, Codeberg and Forgejo projects ship a release
  description:
    en_US: >-
      Visit: [https://icestore.hsinghhira.me/app/github-release-monitor/](https://icestore.hsinghhira.me/app/github-release-monitor/) for full details


      GitHub Release Monitor watches the repositories you pick and tells you
      by email or Apprise (Discord, Telegram, Slack and 70 more) as soon as a
      new release comes out. No more checking by hand. Every install makes its
      own secret keys on first start.


      **Features**


      - Watches GitHub, GitLab, Codeberg and self-hosted Forgejo repositories

      - Email and Apprise notifications, one per release or grouped

      - Pick stable, pre-release or draft releases, for all repositories or
        one at a time

      - Include and exclude rules for tags, and alpha, beta or rc choices

      - Import and export your list as JSON

      - A test page to check the GitHub connection, email and Apprise

      - Passkeys, two-factor sign-in, dark mode and 19 languages


      **How to use?**


      1. Open the app log and copy the setup token.

      2. Open http://[ZIMAOS-IP-ADDRESS]:6182 and make your account with the
         setup token.

      3. Add the repositories you want to watch, like
         https://github.com/owner/repo.

      4. Open Settings to pick which releases you want and how often to
         check.

      5. Set up email or Apprise to get notifications, then try them on the
         Test page.
  tips:
    before_install:
      en_US: >-
        1. Set GITHUB_ACCESS_TOKEN to a GitHub token with no scopes. Without
           it GitHub only allows 60 checks an hour.


        2. You can leave BETTER_AUTH_URL as it is. Sign-in works from
           http://[ZIMAOS-IP-ADDRESS]:6182 on your home network. Change
           localhost to your ZimaOS IP if you want working links in emails.


        3. Email, Apprise and other settings are listed on the GitHub Release
           Monitor page at
           https://icestore.hsinghhira.me/app/github-release-monitor/
           (Variables tab). You can add them now or later in the app
           settings.


        4. Start the installation. It is ready in about half a minute.


        5. Open the app log. Find the line "Setup token:" and copy the long
           code after it.


        6. Open http://[ZIMAOS-IP-ADDRESS]:6182, paste the setup token and
           make your account.
  index: /
  port_map: "6182"
  scheme: http
  is_uncontrolled: false
  version: "2.6.1"
  update_at: "2026-10-30"
  release_notes:
    en_US: |-
      - First IceStore release, on port 6182
      - Built on ghcr.io/iamspido/github-release-monitor 2.6.1, plus a start script that makes each install's own BETTER_AUTH_SECRET and setup token
      - No secrets in the compose file: they are made on first start and kept in the data folder
      - Works over plain http, and sign-in works from home-network addresses on port 6182 without setting anything
  repo: "https://github.com/iamspido/github-release-monitor"
  support: "https://github.com/iamspido/github-release-monitor/issues"
  docs: "https://github.com/iamspido/github-release-monitor#readme"

Install GitHub Release Monitor

Something not working with GitHub Release Monitor?

Report it so it gets fixed, or ask for an app that is not here yet.

More Developer apps

See all