20 Comments
User's avatar
Sebastian's avatar

Are there plans for a recurring payment plan / method?

Expand full comment
imp0stor's avatar

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
konn sou's avatar

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

Expand full comment
blacktomcat's avatar

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
21Sats's avatar

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
Jawsh's avatar

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

Expand full comment
blacktomcat's avatar

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
foo's avatar

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

Expand full comment
André Neves's avatar

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

Expand full comment
Jawsh's avatar

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
Dario's avatar

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
tranbert's avatar

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
blacktomcat's avatar

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
tranbert's avatar

nope...

no " no [ no {

Expand full comment
blacktomcat's avatar

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
blacktomcat's avatar

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
tranbert's avatar

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
Pete's avatar

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