You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.6 KiB
Markdown

# nostr web client
this is a web interface to [nostr](https://nostr.info/).
a live instance is hosted at https://nostr.ch/
2 years ago
some useful resources:
* JS library used in this project: https://github.com/fiatjaf/nostr-tools
* NIPs: https://github.com/nostr-protocol/nips
* relays registry: https://nostr-registry.netlify.app/
* event inspector: https://nostr.com/
* a working web interface in vue.js: https://astral.ninja/
* https://github.com/aljazceru/awesome-nostr
## dev
nodejs v18.x and npm v8.x are recommended.
after `npm install`, start by running a dev server with:
npm run serve
and point a browser to http://127.0.0.1:8001/
the `serve` command injects a live reload snippet. to build a "production" copy,
execute
npm run build
the build is done using [esbuild](https://esbuild.github.io/), with a config in
[esbuildconf.js](esbuildconf.js). the result is placed in `dist` directory.
## release
1. make sure `version` field in [package.json](package.json) as seen by remote
git on **master** branch matches the tag created in the next step.
2. tag a commit on **master** branch with a `git tag v<vesion>`.
3. push the tag to the remote: `git push --tags`.
the CI then receives a git tag event, executes `npm run build`, creates
a tar.gz with all the files found in `dist` directory and uploads it as a new
release artifact. the release is named after the tag name.
the idea is that nostr web instances are then notified about a new release,
download the tar.gz archive and update their local copies.
this is not yet implemented. at the moment, the CI symply rsync's dist/ with
a remote on https://nostr.ch.