Skip to content

fiatjaf/njump

Folders and files

NameName
Last commit message
Last commit date
Feb 18, 2024
Dec 26, 2023
Apr 8, 2024
Jun 16, 2024
Oct 21, 2024
Jan 17, 2024
Sep 29, 2024
Oct 27, 2023
Feb 9, 2025
Oct 10, 2023
Sep 22, 2024
Aug 3, 2024
Jul 25, 2024
Jul 25, 2024
Jan 28, 2025
Feb 23, 2025
Apr 2, 2025
Jan 16, 2025
Feb 17, 2025
Feb 25, 2025
Apr 3, 2025
Jan 16, 2025
Mar 31, 2025
Mar 31, 2025
Mar 30, 2025
Mar 31, 2025
Mar 31, 2025
Feb 23, 2025
Aug 29, 2024
Mar 30, 2025
Mar 30, 2025
Apr 3, 2025
Jan 21, 2025
Mar 31, 2025
Oct 12, 2024
Oct 17, 2024
Nov 25, 2024
Nov 25, 2024
Jan 23, 2025
Sep 26, 2024
Mar 31, 2025
Feb 23, 2025
Feb 23, 2025
Feb 25, 2025
Nov 25, 2024
Feb 23, 2025
Feb 25, 2025
Mar 18, 2025
Feb 23, 2025
Oct 17, 2024
Oct 19, 2024
Sep 27, 2024
Mar 31, 2025
Mar 18, 2025
Apr 2, 2025
Mar 31, 2025
Oct 19, 2024
Oct 7, 2024
Aug 29, 2024
Mar 31, 2025
Aug 2, 2024
Oct 7, 2024
Aug 3, 2024
Apr 2, 2025
Aug 2, 2024
Feb 25, 2025
Feb 25, 2025
Jan 23, 2025
Jan 28, 2025
Oct 7, 2024
Oct 7, 2024
Dec 29, 2023
Jan 7, 2024
Sep 16, 2024
Apr 2, 2025
Apr 1, 2025
Apr 2, 2025
Feb 23, 2025
Sep 16, 2024

Repository files navigation

njump

njump is a HTTP Nostr static gateway that allows you to browse profiles, notes and relays; it is an easy way to preview a resource and then open it with your preferred client. The typical use of njump is to share a resource outside the Nostr world, where the Nostr: schema is not (yet) working.

njump has some special features to effectively share notes on platforms that offer links preview, like Twitter and Telegram.

njump currently lives under njump.me, you can reach it appending a Nostr NIP-19 entity (npub, nevent, nprofile, naddr, etc.) or a NIP-05 address after the domain, e.g. njump.me/nevent1xxxxxx...xxx or njump.me/xxxx@zzzzz.com

For more information about njump's philosophy and its use, read the presentation on the homepage.

Supported Kinds

kind description NIP
0 Metadata 1
1 Short Text Note 1
6 Repost 18
1063 File Metadata 94
1311 Live Chat Message 53
30023 Long-form Content 23
30024 Draft Long-form Content 23
30311 Live Event 53
30818 Wiki article 54
31922 Date-Based Calendar Event 52
31923 Time-Based Calendar Event 52

Running

Running locally

The easiest way to start is to run the development server with just (if you have it installed) or with TAILWIND_DEBUG=true go run .. You can also check the contents of justfile to see other useful scripts.

For live-reload you can use air and start it with air -c .air.toml -- this will run it without the local cache, which can be annoying if you're not specifically debugging the part of the code that loads content, so you may want to run it with air -c .air.toml --build.cmd 'go build -o ./tmp/main .'. These run modes will recompile the Tailwind bundle on every restart and they assume you have the tailwind CLI installed globally.

Running from a precompiled binary

You can grab one from the releases, unpack and run it.

Docker

To build and run in a Docker container:

docker build -t njump .
docker run -e DOMAIN=njump.mydomain.com -p 2999:2999 njump

Environment variables

These are the defaults that you can change by setting environment variables in your system before running:

PORT="2999"
DOMAIN="njump.me"
DISK_CACHE_PATH="/tmp/njump-internal"
EVENT_STORE_PATH="/tmp/njump-db"
TAILWIND_DEBUG=
RELAY_CONFIG_PATH=
TRUSTED_PUBKEYS=npub1...,npub1...

RELAY_CONFIG_PATH is path to json file to update relay configuration. You can set relay list like below:

{
  "everything": [
    "wss://relay.nostr.band",
    "wss://nostr.lol"
  ]
}

See relay-config.json.sample for example.

For example, when running from a precompiled binary you can do something like PORT=5000 ./njump.