20 Comments

Are there plans for a recurring payment plan / method?

Expand full comment

The thing that eluded me was that I had to generate my own secret, I found the solution in the following command: `openssl rand -hex 128`

Expand full comment

Thanks a lot ! My nostr relay : https://relay.reeve.cn/invoices is working now 😄

Expand full comment

How is it possible to define blacklisted pubkeys? Just asking because banning spammers in the future may be necessary....

Recurring payment plan would also be nice.

Expand full comment

My new nostr.21sats.net relay is running. 👌🏼

I had some issues with the redirect part. I don’t know why, but with the x-forwarded-for part does the landing page not work. I commented it out 🤷🏼‍♂️

server {

server_name subdomain.domain.com;

location / {

## proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $host;

proxy_pass http://127.0.0.1:8008;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

}

Expand full comment

Was interested in using this guide to run a node until ZEBEDEE wanted ID. Waiting for an alternative.

Expand full comment

Has anybody already tried the upgrade guide (as there is a new nostr-version)?

I have problems executing this command: docker network rm nostr-ts-relay

--> Error response from daemon: network nostr-ts-relay not found

I am executing this command as su - nostream in the folder nostream. But can't find it also anywhere else.

Expand full comment

Is there another way to setup payments without zbd? I dont want to share my identity.

Expand full comment

DM me on Nostr I'll send you an invite code

Expand full comment

Does an invite code from you enable using zbd without needing to share identity? I'm having this same issue wanting to setup a paid relay without exposing my identity. Looking at LNbits as an alternative payment but unsure how to implement their API. I've DM you on Nostr as well.

Expand full comment

Guys don't forget to whitelist the IP address of zebedee in the remoteIpHeader field of the nostream settings if you are running kubernetes with an ingress.

Basically the IP address of Zebedee will be taken from the header in the field "network.remoteIpHeader", which is "x-forwarded-for" by default.

In "paymentsProcessors.zebedee.ipWhitelist" you should have the IP addresses of zebedee.

Expand full comment

ho, and a typo :

"

# You may need to add a `env_file` property to docker-compose.yml

env_live

- local.env"

env_file you meant ?

Expand full comment

Where exactly in the docker-compose.yml do I have to integrate

env_file:

- local.env

?

Everytime it says "ZEBEDEE_API_KEY must be set." when I start the script. The API key in the evn-file itself has to be between two "", am I right?

Expand full comment

nope...

no " no [ no {

Expand full comment

Thx - but unfortunately it also does not work.....

My docker-compose.yml looks the following (i set the env_file parameter in the #Redis section at the end (env_file: /root/local.env) - maybe that should be somewhere else?) :

services:

nostream:

build: .

container_name: nostream

environment:

SECRET: changeme

RELAY_PORT: 8008

# Master

NOSTR_CONFIG_DIR: /home/node/.nostr

DB_HOST: nostream-db

DB_PORT: 5432

DB_USER: nostr_ts_relay

DB_PASSWORD: nostr_ts_relay

DB_NAME: nostr_ts_relay

DB_MIN_POOL_SIZE: 16

DB_MAX_POOL_SIZE: 64

DB_ACQUIRE_CONNECTION_TIMEOUT: 60000

# Read Replica

READ_REPLICA_ENABLED: 'false'

RR_DB_HOST: db

RR_DB_PORT: 5432

RR_DB_USER: nostr_ts_relay

RR_DB_PASSWORD: nostr_ts_relay

RR_DB_NAME: nostr_ts_relay

RR_DB_MIN_POOL_SIZE: 16

RR_DB_MAX_POOL_SIZE: 64

RR_DB_ACQUIRE_CONNECTION_TIMEOUT: 10000

# Redis

REDIS_HOST: nostream-cache

REDIS_PORT: 6379

REDIS_USER: default

REDIS_PASSWORD: nostr_ts_relay

TOR_HOST: tor_proxy

TOR_CONTROL_PORT: 9051

TOR_PASSWORD: nostr_ts_relay

HIDDEN_SERVICE_PORT: 80

env_file: /root/local.env

# Enable DEBUG for troubleshooting. Examples:

# DEBUG: "primary:*"

# DEBUG: "worker:*"

# DEBUG: "knex:query"

user: node:node

volumes:

- ${PWD}/.nostr:/home/node/.nostr

ports:

- 8008:8008

depends_on:

nostream-cache:

condition: service_healthy

nostream-db:

condition: service_healthy

nostream-migrate:

condition: service_completed_successfully

restart: on-failure

networks:

default:

nostream-db:

image: postgres

container_name: nostream-db

environment:

POSTGRES_DB: nostr_ts_relay

POSTGRES_USER: nostr_ts_relay

POSTGRES_PASSWORD: nostr_ts_relay

volumes:

- ${PWD}/.nostr/data:/var/lib/postgresql/data

- ${PWD}/.nostr/db-logs:/var/log/postgresql

- ${PWD}/postgresql.conf:/postgresql.conf

ports:

- 15432:5432

networks:

default:

command: postgres -c 'config_file=/postgresql.conf'

restart: always

healthcheck:

test: ["CMD-SHELL", "pg_isready -U nostr_ts_relay"]

interval: 5s

timeout: 5s

retries: 5

start_period: 360s

nostream-cache:

image: redis:7.0.5-alpine3.16

container_name: nostream-cache

volumes:

- cache:/data

command: redis-server --loglevel warning --requirepass nostr_ts_relay

networks:

default:

restart: always

healthcheck:

test: [ "CMD", "redis-cli", "ping", "|", "grep", "PONG" ]

interval: 1s

timeout: 5s

retries: 5

nostream-migrate:

image: node:18-alpine3.16

container_name: nostream-migrate

environment:

DB_HOST: nostream-db

DB_PORT: 5432

DB_USER: nostr_ts_relay

DB_PASSWORD: nostr_ts_relay

DB_NAME: nostr_ts_relay

entrypoint:

- sh

- -c

- 'cd code && npm install --no-save --quiet knex@2.4.0 pg@8.8.0 && npx knex migrate:latest'

volumes:

- ./migrations:/code/migrations

- ./knexfile.js:/code/knexfile.js

depends_on:

nostream-db:

condition: service_healthy

networks:

default:

ipv4_address: 10.10.10.254

networks:

default:

name: nostream

ipam:

driver: default

config:

- subnet: 10.10.10.0/24

volumes:

cache:

As user root i saved the configfile local.env, with the following in it:

ZEBEDEE_API_KEY=TB********

SECRET=f**************

Do you have an idea what the problem is here?

Expand full comment

Thank you very much mate, this worked!

Seems that it must be in the user-section (maybe this is clear for docker users, for me as beginner not so) - would be good to consider this in more detail in the description.

Expand full comment

Hi, thanks for the tuto, it's perfect, my new nostr.gromeul.eu is up and running...

Just one thing :

when I first start the relay after "su - nostream" I had to do a "cd nostream" before

./scripts/start

as we are in nostream ~home and git clone create a /home/nostream/nostream dir.

Expand full comment

Can you tell me how you have your A records setup? Do you have two A records? One for nostr.gromeul.eu and one for gromeul.eu ? I'm having trouble getting certbox to work.

Expand full comment

Only one to nostr.gromeul.eu.

Expand full comment