Update install instructions
This commit is contained in:
parent
1e0b032d03
commit
6b2954c48c
|
@ -41,4 +41,5 @@ You can find a more complete changelog [here](./ROADMAP.md).
|
||||||
- Clone the project repository: `git clone https://github.com/staab/coracle.git`
|
- Clone the project repository: `git clone https://github.com/staab/coracle.git`
|
||||||
- Navitage to the project directory: `cd coracle`
|
- Navitage to the project directory: `cd coracle`
|
||||||
- Install dependencies: `npm install`
|
- Install dependencies: `npm install`
|
||||||
|
- Add an env file from the template: `cp env.template env.local`
|
||||||
- Start the development server: `npm run dev`
|
- Start the development server: `npm run dev`
|
||||||
|
|
69
ROADMAP.md
69
ROADMAP.md
|
@ -1,19 +1,48 @@
|
||||||
# Current
|
# Current
|
||||||
|
|
||||||
|
- [ ] Search by nip05 alias
|
||||||
|
- nevent1qqsdt4ux9c0zvd6hzpwnzznjsmd7a337mpxdspu9wd4fq8drvqejdmqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsffemjp
|
||||||
|
- [ ] Fix feeds
|
||||||
- [ ] Hash pubkey so we can track usage by unique user
|
- [ ] Hash pubkey so we can track usage by unique user
|
||||||
- [ ] Try adding boxes/separation on feeds based on user feedback
|
- [ ] Try adding boxes/separation on feeds based on user feedback
|
||||||
- [ ] Strip zero width spaces from compose
|
- [ ] Strip zero width spaces from compose
|
||||||
- [ ] Fix iOS/safari/firefox
|
- [ ] Fix iOS/safari/firefox
|
||||||
- [ ] Make the note relays button modal make sense, one relay with no explanation is not good
|
- [ ] Add dynamic title tag
|
||||||
|
- [ ] Show more link on long notes (rather than just an ellipsis)
|
||||||
|
- [ ] Show popover on delayed hover rather than click (on mobile, keep it click)
|
||||||
|
- [ ] QR code component that sizes input to qr code width to make it tidy
|
||||||
|
|
||||||
# Image uploads
|
# Image uploads
|
||||||
|
|
||||||
- Default will charge via lightning and have a tos, others can self-host and skip that.
|
- [ ] Add LN invoices
|
||||||
|
- [ ] Build UI
|
||||||
|
- Put sql stuff in a library, use it in dufflepud and image service
|
||||||
|
- [ ] Post announcement on SN, TG
|
||||||
|
- [ ] Contact other client authors, self-hostable, or just use my instance
|
||||||
- https://github.com/ElementsProject/lightning-charge
|
- https://github.com/ElementsProject/lightning-charge
|
||||||
- https://github.com/nostr-protocol/nips/pull/250
|
- https://github.com/nostr-protocol/nips/pull/250
|
||||||
- https://github.com/brandonsavage/Upload
|
|
||||||
- https://github.com/seaweedfs/seaweedfs
|
# Coracle website
|
||||||
- https://github.com/cubefs/cubefs
|
|
||||||
|
- [ ] Simple intro to coracle
|
||||||
|
- [ ] Add nip05 to coracle
|
||||||
|
- [ ] After ~10 sessions prompt them to verify and update their nip05
|
||||||
|
- [ ] Maybe only if they don't have a nip05 yet
|
||||||
|
|
||||||
|
# Others
|
||||||
|
|
||||||
|
- Tool for finding relays with light usage so people can spread out
|
||||||
|
- Graph view? Query db with COUNT? Hardware specs on relay info endpoint?
|
||||||
|
- "adoptarelay.com"
|
||||||
|
- Add suggested relays based on follows or topics
|
||||||
|
- Recommendations
|
||||||
|
- Indexer/multiplexer
|
||||||
|
- relay.coracle.social
|
||||||
|
- Improve overall design
|
||||||
|
- Stripped down easy version of coracle
|
||||||
|
- Extract library?
|
||||||
|
- Parameterize color scheme
|
||||||
|
- Deploy to special domains with relays built in
|
||||||
|
|
||||||
# Custom views
|
# Custom views
|
||||||
|
|
||||||
|
@ -23,14 +52,13 @@
|
||||||
|
|
||||||
# More
|
# More
|
||||||
|
|
||||||
|
- [ ] https://media.nostr.band/
|
||||||
|
- [ ] Make the note relays button modal make sense, one relay with no explanation is not good
|
||||||
- [ ] Linkify invoices
|
- [ ] Linkify invoices
|
||||||
- [ ] Linkify bech32 entities w/ NIP 21 https://github.com/nostr-protocol/nips/blob/master/21.md
|
- [ ] Linkify bech32 entities w/ NIP 21 https://github.com/nostr-protocol/nips/blob/master/21.md
|
||||||
- [ ] Person zaps
|
- [ ] Person zaps
|
||||||
- [ ] Add dynamic title tag
|
|
||||||
- [ ] Collapsible thread view
|
- [ ] Collapsible thread view
|
||||||
- [ ] Split inbox into replies + everything else
|
- [ ] Split notifications into replies + everything else, or add filters
|
||||||
- [ ] Show more link on long notes
|
|
||||||
- [ ] Show popover on delayed hover rather than click (on mobile, keep it click)
|
|
||||||
- [ ] Light mode
|
- [ ] Light mode
|
||||||
- [ ] Mute threads http://localhost:5173/nevent1qqsyz8x6r0cu7l6vwlcjhf8qhxyjtdykvuervkc3t3mfggse4qtwt0gpyfmhxue69uhkummnw3ezumrfvfjhyarpwdc8y6tddaexg6t4d5hxxmmdnhxvea
|
- [ ] Mute threads http://localhost:5173/nevent1qqsyz8x6r0cu7l6vwlcjhf8qhxyjtdykvuervkc3t3mfggse4qtwt0gpyfmhxue69uhkummnw3ezumrfvfjhyarpwdc8y6tddaexg6t4d5hxxmmdnhxvea
|
||||||
- [ ] Add webtorrent support
|
- [ ] Add webtorrent support
|
||||||
|
@ -47,24 +75,14 @@
|
||||||
- Find the best implementation https://github.com/nostr-protocol/nips/search?q=poll&type=issues
|
- Find the best implementation https://github.com/nostr-protocol/nips/search?q=poll&type=issues
|
||||||
- Comment on all three nip drafts which one I implemented
|
- Comment on all three nip drafts which one I implemented
|
||||||
- [ ] Micro app DSL
|
- [ ] Micro app DSL
|
||||||
- [ ] Sort feeds by created date on profile page?
|
|
||||||
- [ ] Implement https://media.nostr.band/
|
|
||||||
- [ ] Groups - may need a new NIP, or maybe use topics
|
- [ ] Groups - may need a new NIP, or maybe use topics
|
||||||
- [ ] Support https://github.com/nostr-protocol/nips/pull/211 as a bech32 entity
|
- [ ] Support https://github.com/nostr-protocol/nips/pull/211 as a bech32 entity
|
||||||
- [ ] Add new DM button to dms list
|
- [ ] Add "new DM" button to dms list
|
||||||
- [ ] Add suggested relays based on follows or topics
|
|
||||||
- [ ] Support relay auth
|
- [ ] Support relay auth
|
||||||
- [ ] Following indicator on person info
|
|
||||||
- [ ] Share button for notes, shows qr code and nevent
|
- [ ] Share button for notes, shows qr code and nevent
|
||||||
- [ ] If a user has no write relays (or is not logged in), open a modal
|
|
||||||
- [ ] open web+nostr links like snort
|
- [ ] open web+nostr links like snort
|
||||||
- [ ] Channels
|
- [ ] Ability to leave/mute DM conversation
|
||||||
- [ ] Separate chat and DMs
|
- [ ] Add notifications for chat messages
|
||||||
- [ ] Don't waste space caching rooms, load those lazily
|
|
||||||
- [ ] Damus has chats divided into DMs and requests
|
|
||||||
- [ ] Ability to leave/mute DM conversation
|
|
||||||
- [ ] Add petnames for channels
|
|
||||||
- [ ] Add notifications for chat messages
|
|
||||||
- [ ] Add encrypted settings storage using nostr events
|
- [ ] Add encrypted settings storage using nostr events
|
||||||
- [ ] Save DM/chat read status in encrypted note
|
- [ ] Save DM/chat read status in encrypted note
|
||||||
- [ ] Relay recommendations based on follows/followers
|
- [ ] Relay recommendations based on follows/followers
|
||||||
|
@ -74,10 +92,9 @@
|
||||||
- https://github.com/nbd-wtf/nostr-tools/blob/master/nip26.ts
|
- https://github.com/nbd-wtf/nostr-tools/blob/master/nip26.ts
|
||||||
- [ ] Add keyword mutes
|
- [ ] Add keyword mutes
|
||||||
- [ ] Attachments (a tag w/content type and url)
|
- [ ] Attachments (a tag w/content type and url)
|
||||||
- [ ] Sign in as user with one click to view things from their pubkey's perspective - do this with multiple accounts
|
- [ ] Sign in as user with one click to view things from their pubkey's perspective
|
||||||
- nevent1qqsyyxtrhpsqeqaqgucd6uzpyh8eq2hkfgr0yzr7ku7tgyl5cn9jw5qpz3mhxue69uhhyetvv9ujumn0wd68ytnzvuq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7l564wx
|
- nevent1qqsyyxtrhpsqeqaqgucd6uzpyh8eq2hkfgr0yzr7ku7tgyl5cn9jw5qpz3mhxue69uhhyetvv9ujumn0wd68ytnzvuq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7l564wx
|
||||||
- [ ] Search by nip05 alias
|
- [ ] Multiple accounts
|
||||||
- nevent1qqsdt4ux9c0zvd6hzpwnzznjsmd7a337mpxdspu9wd4fq8drvqejdmqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsffemjp
|
|
||||||
- [ ] Show options on note detail for retrieving replies
|
- [ ] Show options on note detail for retrieving replies
|
||||||
- Replies from user's network
|
- Replies from user's network
|
||||||
- All replies from author's + user's read relays, including spam
|
- All replies from author's + user's read relays, including spam
|
||||||
|
@ -87,7 +104,7 @@
|
||||||
- [ ] Release to android
|
- [ ] Release to android
|
||||||
- https://svelte-native.technology/docs
|
- https://svelte-native.technology/docs
|
||||||
- https://ionic.io/blog/capacitor-everything-youve-ever-wanted-to-know
|
- https://ionic.io/blog/capacitor-everything-youve-ever-wanted-to-know
|
||||||
- Or just wrap it
|
- Or just wrap it in an apk
|
||||||
- [ ] When publishing fails, enqueue and retry
|
- [ ] When publishing fails, enqueue and retry
|
||||||
- Track which relays the events should be published to, and which ones have succeeded
|
- Track which relays the events should be published to, and which ones have succeeded
|
||||||
- Maybe notify and ask user which events to re-publish.
|
- Maybe notify and ask user which events to re-publish.
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
VITE_DUFFLEPUD_URL=https://dufflepud.onrender.com
|
||||||
|
VITE_SHOW_DEBUG_ROUTE=false
|
|
@ -22,7 +22,7 @@
|
||||||
"js-lnurl": "^0.5.1",
|
"js-lnurl": "^0.5.1",
|
||||||
"localforage": "^1.10.0",
|
"localforage": "^1.10.0",
|
||||||
"localforage-memoryStorageDriver": "^0.9.2",
|
"localforage-memoryStorageDriver": "^0.9.2",
|
||||||
"nostr-tools": "^1.4.1",
|
"nostr-tools": "^1.7.4",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"qr-scanner": "^1.4.2",
|
"qr-scanner": "^1.4.2",
|
||||||
"qrcode": "^1.5.1",
|
"qrcode": "^1.5.1",
|
||||||
|
@ -6076,9 +6076,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nostr-tools": {
|
"node_modules/nostr-tools": {
|
||||||
"version": "1.4.1",
|
"version": "1.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.7.4.tgz",
|
||||||
"integrity": "sha512-pFAbVNtRMfW5ducUmk0f20IZv4a6pXYchBQKuA6D3x6sg83KoWipuiAie/gfOgrkoCsBLV14DmpWsVmo3N7WXQ==",
|
"integrity": "sha512-YowDJ+S3UW9KCYPDZfZXXMITrJSMjiCmFOK5HohyKkg+w6EipFUTkFRBPRA2BTLXO/qw8gukKXfL0B7Dv3jtcQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@noble/hashes": "1.0.0",
|
"@noble/hashes": "1.0.0",
|
||||||
"@noble/secp256k1": "^1.7.1",
|
"@noble/secp256k1": "^1.7.1",
|
||||||
|
@ -13095,9 +13095,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"nostr-tools": {
|
"nostr-tools": {
|
||||||
"version": "1.4.1",
|
"version": "1.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.7.4.tgz",
|
||||||
"integrity": "sha512-pFAbVNtRMfW5ducUmk0f20IZv4a6pXYchBQKuA6D3x6sg83KoWipuiAie/gfOgrkoCsBLV14DmpWsVmo3N7WXQ==",
|
"integrity": "sha512-YowDJ+S3UW9KCYPDZfZXXMITrJSMjiCmFOK5HohyKkg+w6EipFUTkFRBPRA2BTLXO/qw8gukKXfL0B7Dv3jtcQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@noble/hashes": "1.0.0",
|
"@noble/hashes": "1.0.0",
|
||||||
"@noble/secp256k1": "^1.7.1",
|
"@noble/secp256k1": "^1.7.1",
|
||||||
|
|
|
@ -1,15 +1,13 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type {ProfilePointer} from 'nostr-tools/nip19'
|
|
||||||
import QrScanner from 'qr-scanner'
|
import QrScanner from 'qr-scanner'
|
||||||
import {onDestroy} from 'svelte'
|
import {onDestroy} from 'svelte'
|
||||||
import {navigate} from 'svelte-routing'
|
import {navigate} from 'svelte-routing'
|
||||||
import {waitFor} from 'hurdak/lib/hurdak'
|
import {waitFor} from 'hurdak/lib/hurdak'
|
||||||
import {pluck, find} from 'ramda'
|
import {find} from 'ramda'
|
||||||
import {nip05, nip19} from 'nostr-tools'
|
import {nip05, nip19} from 'nostr-tools'
|
||||||
import Input from 'src/partials/Input.svelte'
|
import Input from 'src/partials/Input.svelte'
|
||||||
import Anchor from 'src/partials/Anchor.svelte'
|
import Anchor from 'src/partials/Anchor.svelte'
|
||||||
import Spinner from 'src/partials/Spinner.svelte'
|
import Spinner from 'src/partials/Spinner.svelte'
|
||||||
import {getUserReadRelays} from 'src/agent/relays'
|
|
||||||
import {toast} from "src/app/ui"
|
import {toast} from "src/app/ui"
|
||||||
|
|
||||||
let mode = 'input', video, ready, value, scanner
|
let mode = 'input', video, ready, value, scanner
|
||||||
|
@ -31,12 +29,8 @@
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
let profile = await nip05.queryProfile(input) as ProfilePointer
|
let profile = await nip05.queryProfile(input)
|
||||||
if (profile) {
|
if (profile) {
|
||||||
if (profile.relays.length === 0) {
|
|
||||||
profile.relays = pluck('url', getUserReadRelays())
|
|
||||||
}
|
|
||||||
|
|
||||||
navigate("/" + nip19.nprofileEncode(profile))
|
navigate("/" + nip19.nprofileEncode(profile))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue