From 4a3a0de198573fdbe7337c7bf55c1ac635b00ec2 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sun, 5 Dec 2021 16:28:12 -0500 Subject: [PATCH] Bump version --- Makefile | 9 ++- README.md | 182 ++---------------------------------------------- docs/install.md | 18 ++--- 3 files changed, 24 insertions(+), 185 deletions(-) diff --git a/Makefile b/Makefile index 988dc779..4b7cd777 100644 --- a/Makefile +++ b/Makefile @@ -116,7 +116,14 @@ clean: .PHONY # Releasing targets -release: build-deps +release-check-tags: + $(eval LATEST_TAG := $(shell git describe --abbrev=0 --tags | cut -c2-)) + if grep -q $(LATEST_TAG) docs/install.md; then\ + echo "ERROR: Must update docs/install.md with latest tag first.";\ + exit 1;\ + fi + +release: build-deps release-check-tags goreleaser release --rm-dist --debug release-snapshot: build-deps diff --git a/README.md b/README.md index bc2129dc..93eed30f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![ntfy](server/static/img/ntfy.png) -# ntfy.sh | simple HTTP-based pub-sub +# ntfy.sh | Send push notifications to your phone or desktop via PUT/POST [![Release](https://img.shields.io/github/release/binwiederhier/ntfy.svg?color=success&style=flat-square)](https://github.com/binwiederhier/ntfy/releases/latest) [![Slack channel](https://img.shields.io/badge/slack-@gophers/binwiederhier-success.svg?logo=slack)](https://gophers.slack.com/archives/C01JMTPGF2Q) @@ -19,181 +19,13 @@ too.

-## Usage +## **[Documentation](https://ntfy.sh/docs/)** -### Publishing messages - -Publishing messages can be done via PUT or POST using. Topics are created on the fly by subscribing or publishing to them. -Because there is no sign-up, **the topic is essentially a password**, so pick something that's not easily guessable. - -Here's an example showing how to publish a message using `curl`: - -``` -curl -d "long process is done" ntfy.sh/mytopic -``` - -Here's an example in JS with `fetch()` (see [full example](examples)): - -``` -fetch('https://ntfy.sh/mytopic', { - method: 'POST', // PUT works too - body: 'Hello from the other side.' -}) -``` - -### Subscribe to a topic -You can create and subscribe to a topic either in this web UI, or in your own app by subscribing to an -[EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource), a JSON feed, or raw feed. - -#### Subscribe via web -If you subscribe to a topic via this web UI in the field below, messages published to any subscribed topic -will show up as **desktop notification**. - -You can try this easily on **[ntfy.sh](https://ntfy.sh)**. - -#### Subscribe via phone -You can use the [Ntfy Android App](https://play.google.com/store/apps/details?id=io.heckel.ntfy) to receive -notifications directly on your phone. Just like the server, this app is also [open source](https://github.com/binwiederhier/ntfy-android). - -#### Subscribe via your app, or via the CLI -Using [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) in JS, you can consume -notifications like this (see [full example](examples)): - -```javascript -const eventSource = new EventSource('https://ntfy.sh/mytopic/sse');
-eventSource.onmessage = (e) => {
- // Do something with e.data
-}; -``` - -You can also use the same `/sse` endpoint via `curl` or any other HTTP library: - -``` -$ curl -s ntfy.sh/mytopic/sse -event: open -data: {"id":"weSj9RtNkj","time":1635528898,"event":"open","topic":"mytopic"} - -data: {"id":"p0M5y6gcCY","time":1635528909,"event":"message","topic":"mytopic","message":"Hi!"} - -event: keepalive -data: {"id":"VNxNIg5fpt","time":1635528928,"event":"keepalive","topic":"test"} -``` - -To consume JSON instead, use the `/json` endpoint, which prints one message per line: - -``` -$ curl -s ntfy.sh/mytopic/json -{"id":"SLiKI64DOt","time":1635528757,"event":"open","topic":"mytopic"} -{"id":"hwQ2YpKdmg","time":1635528741,"event":"message","topic":"mytopic","message":"Hi!"} -{"id":"DGUDShMCsc","time":1635528787,"event":"keepalive","topic":"mytopic"} -``` - -Or use the `/raw` endpoint if you need something super simple (empty lines are keepalive messages): - -``` -$ curl -s ntfy.sh/mytopic/raw - -This is a notification -``` - -#### Message buffering and polling -Messages are buffered in memory for a few hours to account for network interruptions of subscribers. -You can read back what you missed by using the `since=...` query parameter. It takes either a -duration (e.g. `10m` or `30s`) or a Unix timestamp (e.g. `1635528757`): - -``` -$ curl -s "ntfy.sh/mytopic/json?since=10m" -# Same output as above, but includes messages from up to 10 minutes ago -``` - -You can also just poll for messages if you don't like the long-standing connection using the `poll=1` -query parameter. The connection will end after all available messages have been read. This parameter has to be -combined with `since=`. - -``` -$ curl -s "ntfy.sh/mytopic/json?poll=1&since=10m" -# Returns messages from up to 10 minutes ago and ends the connection -``` - -## Examples -There are a few usage examples in the [examples](examples) directory. I'm sure there are tons of other ways to use it. - -## Installation -Please check out the [releases page](https://github.com/binwiederhier/ntfy/releases) for binaries and -deb/rpm packages. - -1. Install ntfy using one of the methods described below -2. Then (optionally) edit `/etc/ntfy/config.yml` -3. Then just run it with `ntfy` (or `systemctl start ntfy` when using the deb/rpm). - -### Binaries and packages -**Debian/Ubuntu** (*from a repository*)**:** -```bash -curl -sSL https://archive.heckel.io/apt/pubkey.txt | sudo apt-key add - -sudo apt install apt-transport-https -sudo sh -c "echo 'deb [arch=amd64] https://archive.heckel.io/apt debian main' > /etc/apt/sources.list.d/archive.heckel.io.list" -sudo apt update -sudo apt install ntfy -``` - -**Debian/Ubuntu** (*manual install*)**:** -```bash -wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_amd64.deb -dpkg -i ntfy_1.5.0_amd64.deb -``` - -**Fedora/RHEL/CentOS:** -```bash -rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_amd64.rpm -``` - -**Docker:** -Without cache: -``` -docker run -p 80:80 -it binwiederhier/ntfy -``` - -With cache: -```bash -docker run \ - -v /var/cache/ntfy:/var/cache/ntfy \ - -p 80:80 \ - -it \ - binwiederhier/ntfy \ - --cache-file /var/cache/ntfy/cache.db -``` - -**Go:** -```bash -go get -u heckel.io/ntfy -``` - -**Manual install:** -```bash -# x86_64/amd64 -wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_x86_64.tar.gz - -# armv7 -wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_armv7.tar.gz - -# arm64/v8 -wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_arm64.tar.gz - -# Extract and run -sudo tar -C /usr/bin -zxf ntfy_*.tar.gz ntfy -./ntfy -``` - -## Building -Building `ntfy` is simple. Here's how you do it: - -``` -make build-simple -# Builds to dist/ntfy_linux_amd64/ntfy -``` - -To build releases, I use [GoReleaser](https://goreleaser.com/). If you have that installed, you can run `make build` or -`make build-snapshot`. +[Getting started](https://ntfy.sh/docs/) | +[Android/iOS](https://ntfy.sh/docs/subscribe/phone/) | +[API](https://ntfy.sh/docs/publish/) | +[Install / Self-hosting](https://ntfy.sh/docs/install/) | +[Building](https://ntfy.sh/docs/develop/) ## Contributing I welcome any and all contributions. Just create a PR or an issue. diff --git a/docs/install.md b/docs/install.md index 66c6e1c8..d929ed10 100644 --- a/docs/install.md +++ b/docs/install.md @@ -20,21 +20,21 @@ deb/rpm packages. === "x86_64/amd64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_x86_64.tar.gz + wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_x86_64.tar.gz sudo tar -C /usr/bin -zxf ntfy_*.tar.gz ntfy sudo ./ntfy ``` === "armv7/armhf" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_armv7.tar.gz + wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_armv7.tar.gz sudo tar -C /usr/bin -zxf ntfy_*.tar.gz ntfy sudo ./ntfy ``` === "arm64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_arm64.tar.gz + wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_arm64.tar.gz sudo tar -C /usr/bin -zxf ntfy_*.tar.gz ntfy sudo ./ntfy ``` @@ -82,7 +82,7 @@ Manually installing the .deb file: === "x86_64/amd64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_amd64.deb + wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_amd64.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy @@ -90,7 +90,7 @@ Manually installing the .deb file: === "armv7/armhf" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_armv7.deb + wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_armv7.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy @@ -98,7 +98,7 @@ Manually installing the .deb file: === "arm64" ```bash - wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_arm64.deb + wget https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_arm64.deb sudo dpkg -i ntfy_*.deb sudo systemctl enable ntfy sudo systemctl start ntfy @@ -108,21 +108,21 @@ Manually installing the .deb file: === "x86_64/amd64" ```bash - sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_amd64.rpm + sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_amd64.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "armv7/armhf" ```bash - sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_armv7.rpm + sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_armv7.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ``` === "arm64" ```bash - sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.0/ntfy_1.5.0_linux_arm64.rpm + sudo rpm -ivh https://github.com/binwiederhier/ntfy/releases/download/v1.5.1/ntfy_1.5.1_linux_arm64.rpm sudo systemctl enable ntfy sudo systemctl start ntfy ```