Awesome
RSSNOTES
rssnotes is a nostr relay that functions as an rss to nostr bridge by creating nostr profiles and notes for RSS feeds. rssnotes is a read only relay. rssnotes is a fork of rsslay.
Features
- Convert RSS feeds into Nostr profiles.
- Creates a pubkey, npubkey and QR code for each RSS feed profile that you can use to follow the RSS feed on nostr.
- The rssnotes relay also has its own pubkey. The rssnotes relay pubkey automatically follows all of the rss feed profiles. So if you login to nostr as the rssnotes relay you will see all of your RSS feeds.
- Option to import and export multiple RSS feeds at once using an opml file.
- Option to automatically remove old notes.
- Search bar
- Relay logs exposed on the /log path.
- Using khatru
Screenshot
Run the relay using docker compose
Prerequisites:
- Docker
- Docker Compose - preinstalled on many systems nowadays
- Create a new
rssnotes
folder and cd into it.
mkdir rssnotes
cd rssnotes
- Create two folders:
db
andqrcodes
.
mkdir db
mkdir qrcodes
- Create four files:
docker-compose.yml
,.env
,seedrelays.json
andlogfile.log
.
touch docker-compose.yml
touch .env
touch seedrelays.json
touch logfile.log
-
Copy and paste the contents from the sample.docker-compose.yml file into your
docker-compose.yml
file. Save and exit the file. -
Copy and paste the contents of the sample.env file into your
.env
file. -
Modify the contents of your
.env
file. Add values for the following REQUIRED environment variables.
- RELAY_PRIVKEY --- Use a nostr key generator to create a new set of nostr private and public keys for the relay. DO NOT USE your own existing nostr keys. The relay will use these keys to follow all of your rss feeds and for other background tasks.
- RELAY_PUBKEY --- acquired from the new private key created above.
- RANDOM_SECRET --- This is used to generate the nostr public/private keys for the rss feeds. This should be a randomly generated string at least 20 characters long.
- RELAY_URL --- the URL of your relay ex.: myrssrelay.com. This is only used for display on the relay's main page. It does not affect your relays actual URL.
-
The remaining variables in the
.env
file are optional. Save and exit the.env
file. -
Copy and paste the contents from the sample.seedrelays.json file into your
seedrelays.json
file. Save and exit the file. -
Run
docker-compose up -d
while in therssnotes
directory. This will start the rssnotes container in the background. Go to http://localhost:3334 in your browser.
Run the relay as a service
- Clone the repo and cd into the repo folder.
git clone https://github.com/trinidz/rssnotes
cd rssnotes
-
Download the correct rssnotes released binary for your system into the rssnotes folder.
-
Rename downloaded the binary:
# The binary format is simillar to rssnotes-rx.x.x-ostype-arch. Change the downloaded binary name to rssnotes.
mv rssnotes-rx.x.x-ostype-arch rssnotes
# Make sure the binary is executable
chmod +x rssnotes
- Copy and rename the other necessary files:
cp sample.env .env
cp sample.seedrelays.json seedrelays.json
- Open the
.env
file and add values for the following REQUIRED environment variables.
- RELAY_PRIVKEY --- Use a nostr key generator to create a new set of nostr private and public keys for the relay. DO NOT USE your own existing nostr keys. The relay will use these keys to follow all of your rss feeds and for other background tasks.
- RELAY_PUBKEY --- acquired from the new private key created above.
- RANDOM_SECRET --- This is used to generate the nostr public/private keys for the rss feeds. This should be a randomly generated string at least 20 characters long.
- RELAY_URL --- the URL of your relay ex.: myrssrelay.com. This is only used for display on the relay's main page. It does not affect your relays actual URL.
-
The remaining variables in the
.env
file are optional. -
Create a systemd service file:
sudo nano /etc/systemd/system/rssnotes.service
- Add the following contents:
[Unit]
Description=RSSNotes Relay Service
After=network.target
[Service]
User=myuser
Group=myuser
ExecStart=/home/myuser/rssnotes/rssnotes
WorkingDirectory=/home/myuser/rssnotes
Restart=always
MemoryLimit=2G
[Install]
WantedBy=multi-user.target
-
Replace /home/myuser/ with the actual paths where the files are stored.
-
Reload systemd to recognize the new service:
sudo systemctl daemon-reload
- Start the service:
sudo systemctl start rssnotes
- Enable the service to start on boot:
sudo systemctl enable rssnotes
- Go to http://localhost:3334 in your browser.