Το δικό σας relay γραμματοκιβωτίου
Τελευταία ενημέρωση: 3 Οκτωβρίου 2026
Η αλληλογραφία του Herkos ταξιδεύει σε σφραγισμένους φακέλους (gift wraps NIP-59) και περιμένει στα relay της λίστας relay ιδιωτικών μηνυμάτων σας μέχρι να την παραλάβει η εφαρμογή σας. Τα περισσότερα δημόσια relay δίνουν αυτούς τους φακέλους σε όποιον τους ζητήσει. Κανείς δεν μπορεί να τους ανοίξει, αλλά οποιοσδήποτε μπορεί να μετρήσει ποιος λαμβάνει αλληλογραφία και πότε, και το relay μπορεί να τους διαγράψει όποτε θέλει.
Ένα δικό σας relay που ρωτά ποιος διαβάζει (NIP-42) δίνει τους φακέλους σας σε εσάς και σε κανέναν άλλον, και τους κρατά για όσο αποφασίσετε. Αυτή η σελίδα εξηγεί πώς να το στήσετε σε τρία βήματα, συν ένα νυχτερινό αντίγραφο ασφαλείας. Χρειάζεται περίπου δεκαπέντε λεπτά αν έχετε ήδη διακομιστή.
Ποιο relay να χρησιμοποιήσετε
Εκτελέσαμε και τους δύο υποψηφίους στις 24 Σεπτεμβρίου 2026 και ελέγξαμε τι κάνουν πραγματικά με την αλληλογραφία, όχι τι διαφημίζουν.
| nogringo/nostr-relay | HAVEN 1.2.2 | |
|---|---|---|
| Ποιος μπορεί να διαβάσει τους φακέλους σας | Μόνο εσείς, αφού ταυτοποιηθείτε | /chat: οποιοσδήποτε στο δίκτυο εμπιστοσύνης σας, αφού ταυτοποιηθεί. /inbox: οποιοσδήποτε, χωρίς ταυτοποίηση |
| Ποιος μπορεί να σας παραδώσει αλληλογραφία | Κάθε αποστολέας που ταυτοποιείται | Μόνο το δίκτυο εμπιστοσύνης σας |
| Διαγραφή αλληλογραφίας που λάβατε | Ναι | Όχι |
| Γρήγορος επανασυγχρονισμός (NIP-77) | Ναι | Όχι |
| Άδεια | MIT | MIT |
Χρησιμοποιήστε το nogringo/nostr-relay ως γραμματοκιβώτιο. Είναι αυτό που κάνει ό,τι χρειάζεται η αλληλογραφία: οποιοσδήποτε μπορεί να σας γράψει, και μόνο εσείς μπορείτε να διαβάσετε. Το HAVEN είναι καλό εργαλείο για άλλα πράγματα (προσωπικά εξερχόμενα, πολυμέσα, ιδιωτικές σημειώσεις), αλλά ως γραμματοκιβώτιο θα απέρριπτε αλληλογραφία από όποιον δεν ακολουθείτε, συμπεριλαμβανομένης της γέφυρας που μεταφέρει το συνηθισμένο email.
Τι χρειάζεστε
- Ένα μηχάνημα που είναι πάντα αναμμένο και προσβάσιμο από το διαδίκτυο: ένα μικρό VPS (περίπου 4-6 € τον μήνα) ή έναν υπολογιστή στο σπίτι.
- Έναν τομέα ή υποτομέα που δείχνει σε αυτό, για παράδειγμα
relay.example.com. - Docker και έναν reverse proxy που παρέχει HTTPS. Τα παραδείγματα χρησιμοποιούν το Caddy, που αποκτά το πιστοποιητικό μόνο του.
Βήμα 1: εκτελέστε το relay
git clone https://github.com/nogringo/nostr-relay
cd nostr-relay
cp .env.example .env
Επεξεργαστείτε το .env: δώστε ένα όνομα στο relay (RELAY_NAME) και ορίστε το RELAY_URLS στη
δημόσια διεύθυνσή του, wss://relay.example.com.
Έπειτα ανοίξτε το docker-compose.yml και αλλάξτε τη γραμμή της θύρας σε
"127.0.0.1:3334:3334". Το relay εμπιστεύεται τη διεύθυνση που του προωθεί ο proxy
όταν ελέγχει ποιος ταυτοποιείται, οπότε πρέπει να είναι προσβάσιμο μόνο μέσω του
proxy. Εκκινήστε το:
docker compose up -d
Βήμα 2: βάλτε HTTPS μπροστά
Με το Caddy, ολόκληρη η ρύθμιση (/etc/caddy/Caddyfile) είναι:
relay.example.com {
reverse_proxy 127.0.0.1:3334
}
Επαναφορτώστε το Caddy (sudo systemctl reload caddy). Αν ανοίξετε το
https://relay.example.com σε ένα πρόγραμμα περιήγησης, θα πρέπει πλέον να απαντά.
Βήμα 3: ενημερώστε το Herkos
- Στο Herkos, ανοίξτε Ρυθμίσεις → Δίκτυο και διακομιστές → Το δικό σας relay και πατήστε
Έλεγχος relay. Εισαγάγετε
wss://relay.example.com. - Το Herkos συνδέεται και το δοκιμάζει: ζητά την αλληλογραφία κάποιου άλλου και αφήνει έναν δοκιμαστικό φάκελο από έναν άγνωστο (τον οποίο μετά διαγράφει). Θα πρέπει να δείτε Μόνο εσείς μπορείτε να διαβάσετε την αλληλογραφία σας εδώ και Δέχεται αλληλογραφία από οποιονδήποτε αποστολέα.
- Πατήστε Ορισμός ως πρώτου relay ιδιωτικών μηνυμάτων και Αποθήκευση στο πάνω μέρος.
Κρατήστε επίσης ένα δημόσιο relay στη λίστα, δεύτερο: αν ο διακομιστής σας είναι εκτός λειτουργίας, η αλληλογραφία
έχει πάλι κάπου να περιμένει. Το relay.damus.io είναι καλή δεύτερη επιλογή, γιατί κι αυτό
ρωτά ποιος διαβάζει.
Βήμα 4: αντίγραφο ασφαλείας κάθε νύχτα
Το Herkos κρατά το δικό του αντίγραφο της αλληλογραφίας που έχει παραλάβει, αλλά ένας φάκελος που έφτασε ενώ η εφαρμογή σας ήταν κλειστή υπάρχει μόνο στον διακομιστή σας μέχρι να ανοίξετε το Herkos. Ένα νυχτερινό αντίγραφο καλύπτει αυτό το κενό και σας επιτρέπει να ξαναστήσετε τον διακομιστή αν πεθάνει ο δίσκος ή αν ο πάροχος κλείσει τον λογαριασμό σας.
Το relay κρατά τα πάντα σε μία βάση δεδομένων LMDB μέσα στον τόμο Docker
nostr-relay_relay-db (το όνομα ξεκινά με τον φάκελο στον οποίο κάνατε clone· ελέγξτε
το με docker volume ls). Ένα αρχείο LMDB που αντιγράφεται ενώ το relay γράφει σε
αυτό μπορεί να μην ανοίγει, οπότε το σενάριο σταματά το relay για τα λίγα δευτερόλεπτα που διαρκεί ένα τοπικό αντίγραφο,
το ξεκινά ξανά και μόνο τότε μεταφορτώνει το αντίγραφο. Όσο είναι σταματημένο,
η αλληλογραφία περιμένει στο δημόσιο relay που κρατήσατε δεύτερο στη λίστα σας.
Το αντίγραφο φεύγει από τον διακομιστή με το restic, που το κρυπτογραφεί πριν φύγει. Χρησιμοποιήστε ένα μέρος σε διαφορετικό πάροχο από τον διακομιστή: έναν λογαριασμό SFTP (ένα storage box, έναν υπολογιστή στο σπίτι) ή έναν κάδο συμβατό με S3.
-
Εγκαταστήστε τα εργαλεία και δημιουργήστε το αποθετήριο. Κρατήστε τον κωδικό πρόσβασης και στον διαχειριστή κωδικών πρόσβασης: χωρίς αυτόν τα αντίγραφα δεν μπορούν να διαβαστούν, και αν υπάρχει μόνο στον διακομιστή, χάνεται μαζί με τον διακομιστή. Για SFTP, ο root χρειάζεται επίσης ένα κλειδί SSH που να δέχεται το μηχάνημα των αντιγράφων ασφαλείας (
sudo ssh-keygen -t ed25519, και μετά προσθέστε εκεί το/root/.ssh/id_ed25519.pub).sudo apt install restic rsync sudo sh -c 'openssl rand -base64 32 > /root/.restic-password' sudo sh -c 'cat > /root/.restic-env' <<'END' export RESTIC_REPOSITORY=sftp:backup@backup.example.com:/relay export RESTIC_PASSWORD_FILE=/root/.restic-password END sudo chmod 600 /root/.restic-password /root/.restic-env sudo sh -c '. /root/.restic-env && restic init' -
Αποθηκεύστε αυτό ως
/usr/local/bin/backup-relayκαι κάντε το εκτελέσιμο (sudo chmod 700 /usr/local/bin/backup-relay). Αλλάξτε τοRELAY_DIRαν δεν κάνατε clone στο/root/nostr-relay. Κρατά τις τελευταίες 14 ημέρες, 8 εβδομάδες και 12 μήνες: έναν χρόνο πίσω, με μέγεθος κοντά σε αυτό της βάσης δεδομένων.#!/bin/sh set -eu . /root/.restic-env RELAY_DIR=/root/nostr-relay COPY=/var/backups/relay-db VOLUME=$(docker volume inspect --format '{{ .Mountpoint }}' nostr-relay_relay-db) mkdir -p "$COPY" cd "$RELAY_DIR" docker compose stop relay trap 'docker compose start relay' EXIT rsync -a --delete "$VOLUME/" "$COPY/" docker compose start relay trap - EXIT restic backup "$COPY" --tag relay restic forget --tag relay --keep-daily 14 --keep-weekly 8 --keep-monthly 12 --prune -
Εκτελέστε το μία φορά χειροκίνητα (
sudo /usr/local/bin/backup-relay) και μετά προγραμματίστε το μεsudo crontab -e. Η δεύτερη γραμμή διαβάζει ξανά το ένα δέκατο των αποθηκευμένων δεδομένων κάθε μήνα, κάθε φορά διαφορετικό δέκατο, για να αποδείξει ότι τα αντίγραφα ανοίγουν ακόμη. Ρίχνετε πού και πού μια ματιά στο/var/log/backup-relay.log: μια γραμμή μεFatalσημαίνει ότι το αντίγραφο εκείνης της νύχτας απέτυχε.15 4 * * * /usr/local/bin/backup-relay >> /var/log/backup-relay.log 2>&1 45 5 1 * * . /root/.restic-env && restic check --read-data-subset=10% >> /var/log/backup-relay.log 2>&1
Για επαναφορά (νέος διακομιστής ή μετά από βλάβη δίσκου): στήστε ξανά το relay
(βήματα 1 έως 3) και επαναλάβετε τα σημεία 1 και 2 αυτού του βήματος με το ίδιο αποθετήριο,
αλλά γράψτε τον κωδικό πρόσβασης που φυλάξατε στο /root/.restic-password αντί να
δημιουργήσετε νέο, και παραλείψτε το restic init. Έπειτα αντιγράψτε το πιο πρόσφατο αντίγραφο ασφαλείας στον
τόμο του relay:
sudo sh -c '. /root/.restic-env && restic restore latest --tag relay --target /'
cd /root/nostr-relay && sudo docker compose stop relay
sudo rsync -a --delete /var/backups/relay-db/ "$(sudo docker volume inspect --format '{{ .Mountpoint }}' nostr-relay_relay-db)/"
sudo docker compose start relay
Μία φορά τον χρόνο, κάντε αυτή την επαναφορά σε ένα εφεδρικό μηχάνημα και ελέγξτε ότι το relay ξεκινά με την αλληλογραφία σας μέσα: είναι η μόνη δοκιμή που αποδεικνύει ολόκληρη την αλυσίδα, μαζί με τον κωδικό πρόσβασης.
Καλό να ξέρετε
- Είναι relay γενικής χρήσης. Εκτός από την αλληλογραφία σας, δέχεται δημόσιες σημειώσεις από οποιονδήποτε, οπότε άλλοι θα μπορούσαν να αποθηκεύουν πράγματα στον διακομιστή σας. Δεν έχει ακόμη ρύθμιση για να τις απορρίπτει.
- Η αλληλογραφία από συνηθισμένο email φτάνει μέσω μιας γέφυρας, η οποία πρέπει να ταυτοποιείται όταν το ζητά το relay σας. Αν το συνηθισμένο email σταματήσει να φτάνει μετά την αλλαγή, το δημόσιο relay που κρατήσατε στη λίστα θα συνεχίσει να το λαμβάνει.
- Κρατάτε αντίγραφα ασφαλείας των δεδομένων (βήμα 4). Οι φάκελοι βρίσκονται στον τόμο Docker
relay-db, και η αλληλογραφία που η εφαρμογή σας δεν έχει παραλάβει ακόμη υπάρχει μόνο εκεί. - Η διεύθυνση IP σας. Το relay βλέπει τη διεύθυνση κάθε εφαρμογής που συνδέεται σε αυτό, όπως κάθε relay. Στον δικό σας διακομιστή, ο μόνος που τις βλέπει είστε εσείς.