# Конфигурация Nostr-rs-реле

[info]
# Рекламируемый URL для веб-сокета Nostr.
# URL-адрес_реле = "wss://nostr.example.com/"

# Ретрансляция информации для клиентов.  Введите здесь свое уникальное имя сервера.
name = "DFWebOS Nostr Relay"

# Описание
description = "A Nostr Relay running on DFWebOS"

# Открытый ключ административного контакта
#pubkey = "0c2d168a4ae8ca58c9f1ab237b5df682599c6c7ab74307ea8b05684b60405d41"

# Административный контакт URI
#контакт = "mailto:contact@example.com"

[diagnostics]
# Включить трассировку tokio (для использования с tokio-console)
#tracing = false

[database]
# Ядро базы данных (sqlite/postgres).  По умолчанию используется sqlite.
# Поддержка postgres в настоящее время является экспериментальной.
#engine = "sqlite"

# Каталог для файлов SQLite.  По умолчанию используется текущий каталог.  Может
# также указывается (и переопределяется) с помощью команды "--db dirname"
# линейный вариант.
#data_directory = "."

# Используйте базу данных в памяти вместо 'nostr.db'.
# Требуется движок sqlite.
# Осторожность; это не выдержит перезапуска процесса!
#in_memory = false

# Настройки пула подключений к базе данных для подписчиков:

# Минимальное количество подключений считывателя SQLite
#min_conn = 4

# Максимальное количество подключений считывателя SQLite.  Рекомендую установить это
# приблизительное количество ядер.
#max_conn = 8

# Строка подключения к базе данных.  Требуется для postgres; не используется для
# sqlite.
#connection = "postgresql://postgres:nostr@localhost:7500/nostr"

[network]
# Привязать к этому сетевому адресу
address = "0.0.0.0"

# Слушайте этот порт
port = 8080

# Если он присутствует, прочитайте этот заголовок HTTP для регистрации адресов клиента IP.
# Примеры распространенных прокси Cloudflare:
#удаленный_ip_header = "x-forwarded-for"
#remote_ip_header = "cf-connecting-ip"

# Интервал пинга Websocket в секундах, по умолчанию 5 минут.
#ping_interval = 300

[options]
# Отклонять события с метками времени, превышающими это количество секунд в
# будущее.  Рекомендуется отклонять все, что превышает 30 минут.
# с текущего времени, но по умолчанию разрешена любая дата.
reject_future_seconds = 1800

[limits]
# Ограничение количества событий, создаваемых в секунду, в среднем за одну минуту.  Должно быть
# целое число.  Если не установлено (или установлено значение 0), ограничения нет.  Примечание:
# это касается сервера в целом, а не каждого соединения.
#
# Ограничение создания событий настоятельно рекомендуется, если ваше реле
# публика!
#
#messages_per_sec = 5

# Ограничить количество подписок клиентов, создаваемых в секунду, в среднем за одну
# минута.  Должно быть целое число.  Если не установлено (или установлено значение 0), по умолчанию используется значение
# безлимитный.  Настоятельно рекомендуется установить низкое значение, например
# 10, чтобы обеспечить справедливое обслуживание.
#subscriptions_per_min = 0

# НЕВЫПОЛНЕНО...
# Ограничьте количество одновременных подключений к базе данных, которые может иметь клиент.
# Это не позволяет одному клиенту запускать слишком много дорогостоящих
# запросы к базе данных.  Должно быть целое число.  Если не установлено (или установлено в 0),
# по умолчанию — неограниченно (с учетом ограничений подписки).
#db_conns_per_client = 0

# Ограничьте потоки блокировки, используемые для подключений к базе данных.  По умолчанию 16.
#max_blocking_threads = 16

# Ограничьте максимальный размер сообщения EVENT.  По умолчанию 128 KB.
# Установите значение 0 для неограниченного доступа.
#max_event_bytes = 131072

# Максимальное сообщение WebSocket в байтах.  По умолчанию 128 KB.
#max_ws_message_bytes = 131072

# Максимальный размер кадра WebSocket в байтах.  По умолчанию 128 KB.
#max_ws_frame_bytes = 131072

# Размер широковещательного буфера, в количестве событий.  Это предотвращает медленное
# читателей от потребления памяти.
#broadcast_buffer = 16384

# Размер буфера сохранения событий, в количестве событий.  Это обеспечивает
# противодавление отправителям, если запись происходит медленно.
#event_persist_buffer = 4096

# Черный список видов событий. События такого типа будут отброшены.
#event_kind_blacklist = [
#    70202,
#]

[authorization]
# Адреса открытых ключей в этом массиве занесены в белый список для публикации событий.
# Будут приняты только действительные события этих авторов, если переменная
# установлен.
#pubkey_whitelist = [
#  "35d26e4690cbe1a898af61cc3515661eb5fa763b57bd0b42e45099c8b32fd50f",
#  "887645fef0ce0c3c1218d2f5d8e6132a19304cdc57cd20281d082f38cfea0072",
#]

[verified_users]
# NIP-05 проверка пользователей.  Может быть "enabled", чтобы потребовать NIP-05
# метаданные для авторов событий, "passive" для выполнения проверки, но
# никогда не блокируйте публикацию или "disabled" ничего не делать.
#mode = "disabled"

# Доменные имена, которым будет запрещено публиковать события.
#domain_blacklist = ["wellorder.net"]

# Доменные имена, которым разрешено публиковать события.  Если определено, только
# события NIP-05 проверенных авторов в этих доменах сохраняются.
#домен_белый список = ["example.com"]

# Рассмотрим открытый ключ "verified", если у нас есть успешная проверка.
# из домена NIP-05 в течение этого времени.  Обратите внимание: если
# домен предоставляет успешный ответ, в котором отсутствует учетная запись,
# проверка немедленно отменяется.
#verify_expiration = "1 week"

# Как долго ждать между попытками проверки конкретного автора.
#verify_update_frequency = "24 hours"

# Сколько последовательных неудачных проверок прежде, чем мы откажемся от проверки
# этот автор.
#max_consecutive_failures = 20
