Как создать зеркало в Tor с доменом .onion?

Привет! Я использую стандартную установку Docker Discourse на Ubuntu и хочу настроить зеркало форума в сети Tor с адресом .onion.

Я установил Tor на сервере, и теперь у меня есть адрес myonionsite.onion.

# установка
apt install -y tor

# раскомментируйте в /etc/tor/torrc
HiddenServiceDir /var/lib/tor/myonionsite/
HiddenServicePort 80 127.0.0.1:8080
HiddenServiceVersion 3

# перезапуск
systemctl restart tor
systemctl enable tor

cat /var/lib/tor/myonionsite/hostname

Однако по этому адресу отображается страница по умолчанию nginx, а не мое сообщество.

Нужна помощь :pleading_face: :pray:

Существует шаблон TOR для Discourse:

Он был обновлен последний раз 6 лет назад, поэтому я не уверен, что он всё ещё работает, но если работает, это поможет вам начать. Изучите шаблон, чтобы понять, как он функционирует.

Вам нужно включить этот шаблон в ваш app.yml и определить ссылку DISCOURSE_ONION (которая является вашим .onion-адресом).

Дальнейшее обсуждение: Template for serving through an .onion address with Docker

Не работает или я что-то делаю не так…

Мои шаги:

  1. apt install tor

  2. отредактировать файл /etc/tor/torrc

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080
HiddenServiceVersion 3
  1. перезапустить
systemctl restart tor
systemctl enable tor
  1. проверить мой onion-домен
cat /var/lib/tor/hidden_service/hostname
  1. перейти в cd /var/discourse/ и отредактировать app.yml
    добавить шаблоны web.onion.template.yml
    добавить DISCOURSE_ONION примерно так:
DISCOURSE_HOSTNAME example.com
DISCOURSE_ONION example.onion
  1. ./launcher rebuild app

После этих настроек форум недоступен ни в clearnet, ни в Tor. Может, мне нужно изменить пост? :pensive:

Возможно, мне нужно установить новый nginx? 1. apt install nginx tor

Привет, друг, ты нашёл решение для правильной настройки TOR?

Файл web.onion.template.yml требует некоторых обновлений для корректной работы.

Пожалуйста, примените этот патч.

Кроме того, вам, вероятно, также нужно изменить параметр HiddenServicePort на 80 127.0.0.1:80 вместо 80 127.0.0.1:8080.

Как это сделать, если мы не открываем Discourse напрямую, а используем прокси, например Nginx?

Использование IP-адреса контейнера должно сработать? (:

Может ли Discourse теоретически обслуживать один и тот же инстанс под двумя доменами? (.com и .onion)

Например, может ли он генерировать ссылки в зависимости от того, с какого домена осуществляется доступ? Какой домен будет считаться «основным» (например, для ссылок в электронных письмах)? И так далее.