# ntfy

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

- Replaces: [Pushover](https://openlogs.fyi/alternatives/pushover)
- Summary: Paid push-notification services, such as Pushover.
- Stack: Go (language), SQLite (database)
- Deployment: docker_compose
- License: Apache-2.0 OR GPL-2.0-only (osi) [source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/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](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/README.md), read 2026-10-21)
- 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.
- Requirements: not stated
- Repository: [binwiederhier/ntfy](https://github.com/binwiederhier/ntfy)

## Install

1. Docker with the Compose plugin ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml))

   ```text
   A host with Docker and the Docker Compose plugin.
   ```

2. Save the compose file as docker-compose.yml ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml))

   ```yaml
   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
   ```

3. Fix the user line ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml))

   ```text
   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 ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml))

   ```bash
   docker compose up -d
   ```

5. Check that it answers ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml))

   ```text
   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

- The user line is a placeholder: The compose file sets "user: UID:GID". That is not a valid value until it is replaced or removed. ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml), checked 2026-10-21)
- State lives in two host folders and port 80 is used: The compose file mounts /var/cache/ntfy and /etc/ntfy from the host and publishes host port 80. Both folders must exist and be writable by the container user. ([source](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml), checked 2026-10-21)

### 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. ([source](https://ntfy.sh/docs/install/), checked 2026-10-21)

### Signals

Computed from a GitHub snapshot taken 2026-10-21.

- Open issues and pull requests: 353
- Stars: 34951, forks: 1666
- Last push: 2026-10-20 (1 days ago)
- Latest release: v2.32.0 on 2026-10-18 (3 days ago)

## Sources

- [Repository: https://github.com/binwiederhier/ntfy](https://github.com/binwiederhier/ntfy)
- [License: https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/README.md#license](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/README.md#license)
- [Business model: https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/README.md](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/README.md)
- [Compose file: https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml](https://github.com/binwiederhier/ntfy/blob/5e11f4fc344202eb4c9310bf67f17ca121815290/docker-compose.yml)
- [Note: https://ntfy.sh/docs/install/](https://ntfy.sh/docs/install/)

---
Canonical: https://openlogs.fyi/tools/ntfy  
Last updated: 2026-10-22
