This commit is contained in:
ennmichael
2023-03-20 21:23:03 +01:00
parent 1a4fb162ed
commit 09950fd547
20 changed files with 312 additions and 94 deletions

View File

@ -0,0 +1 @@
node_modules/

View File

@ -0,0 +1 @@
node_modules/

View File

@ -0,0 +1,12 @@
FROM scsibug/nostr-rs-relay
USER root
RUN apt-get update && apt-get install -y curl nodejs npm
RUN npm i -g yarn
EXPOSE 8000
COPY . .
USER $APP_USER
RUN yarn
CMD ["/bin/bash", "-c", "while :; do yarn app /bin/bash -c 'rm -rf /usr/src/app/db/* && ./nostr-rs-relay --db /usr/src/app/db --config ./config.toml'; done;"]

View File

@ -0,0 +1,11 @@
[info]
relay_url = "wss://nostr.example.com/"
name = "nostr-rs-relay"
description = "nostr-rs-relay description"
contact = "mailto:contact@example.com"
favicon = "favicon.ico"
[authorization]
nip42_auth = true
# This seems to have no effect.
nip42_dms = true

View File

@ -0,0 +1,26 @@
/**
* Allows the relay to be shut down with an HTTP request, after which
* docker-compose will restart it. This allows each test to have a clean
* slate. The drawback is that the tests can't run in parallel, so the
* test suite is very slow. A better option would be to have this relay
* server manage the relay completely: star/stop isolated relay instances
* with HTTP requests and allow multiple instances to run at the same
* time so that the tests can be parallelized.
*/
import http from "node:http"
import { spawn } from "node:child_process"
const child = spawn(process.argv[2], process.argv.slice(3), {
stdio: "inherit",
})
const server = http.createServer((_, res) => {
if (!child.kill(9)) {
console.error("killing the subprocess failed")
}
res.end()
process.exit(1)
})
server.listen(8000)

View File

@ -0,0 +1,14 @@
{
"name": "relay",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"app": "ts-node index.ts"
},
"dependencies": {
"@types/node": "^18.15.0",
"ts-node": "^10.9.1",
"typescript": "^4.9.5"
}
}

View File

@ -0,0 +1,4 @@
# An nginx server to return a .well-known/nostr.json file for testing.
FROM nginx
RUN mkdir /usr/share/nginx/html/.well-known
COPY nostr.json /usr/share/nginx/html/.well-known/nostr.json

View File

@ -0,0 +1,10 @@
{
"names": {
"bob": "be4be3c0c4f2d18f11215087d7d18fad2c9e0269fc50e19d526bdfb11a522a64"
},
"relays": {
"be4be3c0c4f2d18f11215087d7d18fad2c9e0269fc50e19d526bdfb11a522a64": [
"ws://example.com"
]
}
}