Guest User

Untitled

a guest
Jun 17th, 2026
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.52 KB | None | 0 0
  1. # Отчёт для нейросети: Развёртывание и использование Nanoboard на Android (Termux)
  2.  
  3. ## 1. Краткое описание проекта
  4. Nanoboard — экспериментальная децентрализованная имиджборда, в которой посты хранятся внутри PNG‑файлов с использованием стеганографии. Обмен данными происходит путём публикации этих PNG‑контейнеров на любых публичных хостингах картинок (обычных имиджбордах) и последующего скачивания их другими пользователями. Официальный репозиторий: `https://github.com/nanoboard/nanoboard`. Проект не обновлялся с ~2017 года, представляет собой сервер на .NET (Mono) и клиентский веб‑интерфейс.
  5.  
  6. ## 2. Технический стек и архитектура
  7. - **Сервер**: C#, .NET Framework, запускается через Mono (`nanodb.exe`). Исходный код включён в релиз.
  8. - **Хранение**: Посты сохраняются в подпапке `containers/` в виде PNG‑файлов с криптографической подписью (Ed25519, NaCl). Каждый файл — отдельный пост или тред.
  9. - **Транспорт**: Пользователи вручную загружают PNG‑контейнеры на сторонние борды (например, 2ch.hk, imageboards), а Nanoboard периодически скачивает их по указанным URL.
  10. - **Клиент**: Статический веб‑интерфейс (HTML+JS), доступный после запуска сервера по адресу `http://127.0.0.1:7346`.
  11. - **Зависимости**: Mono (или .NET Framework), библиотеки Chaos.NaCl, Newtonsoft.Json.
  12.  
  13. ## 3. Установка и запуск на телефоне с Termux
  14.  
  15. ### Проблема:
  16. Прямая установка Mono в Termux невозможна (пакет отсутствует в репозиториях, сторонний deb‑файл недоступен). Решение: использовать `proot‑distro` для запуска полноценного окружения Ubuntu внутри Termux и установить Mono из стандартных репозиториев Ubuntu.
  17.  
  18. ### Пошаговая инструкция (успешно проверена):
  19. 1. **Установить proot‑distro**:
  20. ```bash
  21. pkg update && pkg upgrade
  22. pkg install proot-distro
  23. ```
  24.  
  25. 1. Установить Ubuntu (25.10, aarch64):
  26. ```bash
  27. proot-distro install ubuntu
  28. ```
  29. 2. Войти в Ubuntu:
  30. ```bash
  31. proot-distro login ubuntu
  32. ```
  33. 3. Установить Mono (внутри Ubuntu):
  34. ```bash
  35. apt update
  36. apt install mono-complete
  37. ```
  38. 4. Скачать и распаковать Nanoboard (архив уже скачан в Termux, переместить в Ubuntu):
  39. ```bash
  40. cp /data/data/com.termux/files/home/nanoboard-restore.zip /root/
  41. cd /root
  42. unzip nanoboard-restore.zip
  43. ```
  44. 5. Запустить сервер:
  45. ```bash
  46. cd /root/nanoboard-restore
  47. mono nanodb.exe
  48. ```
  49. Сервер запускается на порту 7346. Предупреждение о несовместимости версии рантайма некритично.
  50. 6. Открыть интерфейс: в браузере телефона http://127.0.0.1:7346.
  51.  
  52. 4. Использование (базовый функционал)
  53.  
  54. · Создание поста/треда: Заполнить форму на главной, прикрепить картинку (опционально), решить капчу, отправить. Пост сохраняется в containers/<uuid>.png.
  55. · Ответ в тред: Открыть тред, форма внизу, аналогично.
  56. · Настройки (/params): выбор скина (futaba, dark, photon), включение/отключение капчи, управление источниками контейнеров (URL для сканирования).
  57. · Уведомления: страница /notif показывает ответы на ваши посты (если включено).
  58.  
  59. 5. Децентрализованный обмен (как читать чужие посты и публиковать свои)
  60.  
  61. Как прочитать чужой пост из PNG‑контейнера:
  62.  
  63. · Поместить файл контейнера в папку /root/nanoboard-restore/containers/.
  64. · При необходимости переименовать в UUID формат: mv file.png $(uuidgen).png.
  65. · Обновить страницу Nanoboard в браузере — расшифровка произойдёт автоматически.
  66.  
  67. Как опубликовать свой пост:
  68.  
  69. · Ваш пост уже лежит в containers/ как PNG. Скопировать его в общедоступное место телефона:
  70. ```bash
  71. cp /root/nanoboard-restore/containers/<file>.png /sdcard/Download/
  72. ```
  73. · Загрузить этот PNG на любую публичную имиджборду (вручную через браузер или curl).
  74.  
  75. Автоматическая синхронизация:
  76.  
  77. · Через веб‑интерфейс (/params) задаются URL‑адреса страниц, с которых Nanoboard будет периодически скачивать PNG‑файлы (например, ссылки на треды имиджборд). Механизм скачивания встроен в сервер.
  78.  
  79. 6. Проблема: все ранее известные источники контейнеров недоступны
  80.  
  81. Пользователь сообщил, что все ссылки из настроек «Sources» (вероятно, ведущие на конкретные имиджборды) мертвы. Это ожидаемо, так как проект не поддерживается, а публичные точки обмена недолговечны.
  82.  
  83. Возможные пути решения (требуют дальнейшего анализа):
  84.  
  85. · Поиск актуальных форков Nanoboard (например, username1565/nanoboard на GitHub) — возможно, там обновлены ссылки.
  86. · Поиск архивов имиджборд, где ранее обсуждалась Nanoboard, например, треды /stegano/ или /nanoboard/ на 2ch.hk, iichan.hk, синдикатах. Иногда там публиковались «сборки контейнеров» со свежими ссылками.
  87. · Использование общих файлообменников и координация через сторонние каналы (форумы, даркнет), но это уже вне рамок ПО.
  88. · Ручной обмен контейнерами с другими пользователями (peer‑to‑peer).
  89.  
  90. 7. Документация (из исходников и анализа)
  91.  
  92. · Весь исходный код на C# прилагается к релизу в папке nanodb.exe-source/.
  93. · Протокол упаковки: посты сериализуются в JSON, сжимаются GZip, шифруются (Salsa20) и прячутся в PNG‑изображение (стеганография в младших битах). Используется библиотека Chaos.NaCl для Ed25519 подписей.
  94. · Конфигурационный файл: config-3.json (можно менять порт, пути, настройки капчи).
  95. · Сервер предоставляет REST API: обработчики DbApiHandler, SolveCaptchaAndAddPostHandler и др.
  96.  
  97. 8. Итоги
  98.  
  99. Пользователь успешно развернул Nanoboard в Termux через Ubuntu+proot, сервер работает. Следующая задача — найти живые источники контейнеров либо организовать обмен вручную. Необходимо помочь найти актуальные ссылки или альтернативные способы синхронизации.
Add Comment
Please, Sign In to add comment