OpenLogs

All tools

ntfy

A small server that turns an HTTP request into a push notification on your phone or desktop.

Replaces

Paid push-notification services, such as Pushover.

All open-source alternatives to Pushover

Difficulty

Difficulty: Easy

One container. It mounts /var/cache/ntfy and /etc/ntfy from the host, and the user: UID:GID line is a placeholder that you replace or remove.

Stack

Go (language), SQLite (database)

Deployment

docker_compose

Requirements

Not stated.

License

Apache-2.0 OR GPL-2.0-only (OSI-approved open source)

Read from github.com/binwiederhier/ntfy/blob/5e11f4f/README.md#license

Business model

Unknown

The README says the author sells paid plans for the hosted service at ntfy.sh. It does not say whether those plans add features that the open-source server lacks, so the business model stays unknown.

Source: github.com/binwiederhier/ntfy/blob/5e11f4f/README.md, read on .

Repository

binwiederhier/ntfy

GitHub stats

Stars
34,951
Forks
1,666
Open issues and pull requests
353
Last push
2026-10-20
Latest release
v2.32.0
Released
2026-10-18

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as Apache-2.0.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-21.
docker-compose.yml Version 1
services:
  ntfy:
    image: binwiederhier/ntfy
    container_name: ntfy
    command:
      - serve
    environment:
      - TZ=UTC    # optional: Change to your desired timezone
    user: UID:GID # optional: Set custom user/group or uid/gid
    volumes:
      - /var/cache/ntfy:/var/cache/ntfy
      - /etc/ntfy:/etc/ntfy
    ports:
      - 80:80
    restart: unless-stopped

From the app's own repository: github.com/binwiederhier/ntfy/blob/5e11f4f/docker-compose.yml.

docker compose config (Docker Compose v5.1.0) exited 0 on this exact file. That check covers YAML and the compose schema. It does not start the containers. The line user: UID:GID is a placeholder: replace it with real IDs or remove it before you start ntfy.

Install

  1. Docker with the Compose plugin (github.com/binwiederhier/ntfy/blob/5e11f4f/docker-compose.yml)

    A host with Docker and the Docker Compose plugin.

  2. Save the compose file as docker-compose.yml (github.com/binwiederhier/ntfy/blob/5e11f4f/docker-compose.yml)

    Use the compose file shown above.

  3. Fix the user line (github.com/binwiederhier/ntfy/blob/5e11f4f/docker-compose.yml)

    The compose file has the line "user: UID:GID" marked optional. UID:GID is a placeholder, not a valid value. Replace it with a real user and group id, or delete the line.

  4. Start it (github.com/binwiederhier/ntfy/blob/5e11f4f/docker-compose.yml)
    docker compose up -d
  5. Check that it answers (github.com/binwiederhier/ntfy/blob/5e11f4f/docker-compose.yml)

    The compose file publishes host port 80 to container port 80. Open http://localhost/ in a browser.

Compose file check: config_ok on 2026-10-21.

Gotchas and maintenance

Gotchas

Maintenance

  • Install and self-hosting docs are on the project site. The README links the project install and self-hosting documentation for configuration and upgrades. (ntfy.sh/docs/install/, checked 2026-10-21)

Signals

  • Open issues and pull requests: 353
  • Last push: 2026-10-20 (1 days before this page was built)
  • Latest release: v2.32.0 on 2026-10-18 (3 days before this page was built)