Руководство по Parlons Cloud Portal
Как пользоваться постоянно работающим аккаунтом с телефона и размещать аккаунты для себя и других.
Содержание
- 1. Для чего нужен Portal
- 2. Термины этого руководства
- 3. Установка приложения
- 4. Подключение приложения к аккаунту
- 5. Главный экран
- 6. Чаты
- 7. Контакты
- 8. Кошелёк
- 9. Узел
- 10. Добавление устройств: приглашения владельца
- 11. Размещение аккаунтов друзей: гостевые приглашения
- 12. Инструменты узла: Терминал IDE и панель управления
- 13. Справочник по настройкам
- 14. Уведомления, звонки и постоянное подключение
- 15. Аккаунт в других приложениях Parlons
- 16. Резервные копии, восстановление и перенос
- 17. Решение проблем для владельцев аккаунтов
- 18. Какой хост вам нужен?
- 19. Один аккаунт на своём компьютере: установщики одной командой
- 20. Один аккаунт на VPS: deploy-parlons-cloud.sh
- 21. Много аккаунтов: сервис parlons-tenants
- 22. Создание, приостановка и удаление гостевых аккаунтов
- 23. Приглашения владельца и гостей с сервера
- 24. Локальная веб-панель
- 25. Справочник по параметрам командной строки
- 26. Команда parlons
- 27. Файлы в каталоге данных
- 28. Порты, брандмауэры, TLS и обратные прокси
- 29. Обновление и откат
- 30. Журналы
- 31. Заметки о безопасности для операторов
- 32. Решение проблем для операторов
- 33. Глоссарий
Ваш аккаунт Parlons всегда в сети на компьютере, который никогда не выключается, а управляете вы им с телефона.
В этом руководстве описаны:
- Parlons Cloud для Android («Portal»), версия 0.2.90 (пакет Android
com.eurobuddha.parlons.cloud, Android 9 или новее). - Parlons Cloud — программа-хост, с которой работает приложение, версия 0.11.124 (
parlons-cloud-0.11.124.jar). Она запускает один аккаунт на вашем компьютере или сразу много аккаунтов как сервисparlons-tenants(--tenants <dir>).
Обе программы можно скачать на странице релизов: https://github.com/eurobuddha/maxima/releases.
| Программа | Тег релиза | Файл для скачивания |
|---|---|---|
| Portal (Android) | portal-v0.2.90 | parlons-cloud-portal-0.2.90-release.apk |
| Parlons Cloud (хост) | cloud-v0.11.124 | parlons-cloud-0.11.124.jar |
SHA-256 файла parlons-cloud-0.11.124.jar:
0ae833429b641393f93b427695784b534e8a2a06a7194eba74e57aed4f19b231
Часть A предназначена для тех, кто пользуется аккаунтом через приложение Portal. Часть B — для тех, кто размещает аккаунты. Для каждой задачи приведена пошаговая инструкция. Надписи на экране выделены жирным. Команды для ввода даны в блоках кода.
Сопутствующие руководства: руководство Parlons! — о полном приложении Parlons!, и руководство Parlons Node — о Parlons Node (полном узле Minima со встроенным аккаунтом Parlons).
1Для чего нужен Portal
Аккаунт Parlons — это небольшая программа, которая держит вашу личность в сети. Она хранит ваши контакты и историю чатов, принимает сообщения, пока телефон выключен, и показывает одну и ту же переписку на всех подключённых устройствах. Для неё нужен компьютер, который всегда включён и имеет исходящий доступ в интернет.
Приложение Parlons Cloud для Android (в этом руководстве — Portal) — это окно в такой аккаунт. У него нет собственной личности для чатов. При подключении оно создаёт только собственный ключ устройства и дальше управляет аккаунтом через транспорт Parlons со сквозным шифрованием. Вот как об этом сказано на первом экране приложения:
Ваша личность, чаты и кошелёк находятся на постоянно работающем узле и доступны с любого устройства. Этот телефон подключается к нему как защищённый клиент. Без вашего одноразового кода никто другой подключиться не сможет, а доступ этого телефона можно отозвать в любой момент.
Кто им пользуется
- Те, кто запускает собственный аккаунт на Raspberry Pi, Mac mini, домашнем сервере или VPS (часть B, разделы 19 и 20) и хочет пользоваться им с телефона Android.
- Те, кто запускает Parlons Node (полный узел Minima со встроенным Parlons). Parlons Node тоже содержит аккаунт Parlons, поэтому Portal подключается к нему так же. Владельцы узлов получают в приложении дополнительные инструменты (раздел 12).
- Те, у кого размещённый аккаунт. Кто-то другой держит хост, на котором работает много аккаунтов, по одному на человека (часть B, раздел 21). Оператор хоста даёт вам приглашение, и с его помощью вы подключаетесь к своему аккаунту.
На iPhone ту же работу выполняет приложение Parlons: оно подключается к тем же аккаунтам по тому же приглашению. Полное приложение Parlons! для Android устроено иначе: оно хранит личность на самом телефоне и к аккаунту не подключается (раздел 15).
Что такое аккаунт и что такое гостевой аккаунт (tenant)
| Термин | Что это |
|---|---|
| Аккаунт | Одна личность Parlons (24 слова) с контактами, чатами, подключёнными устройствами, настройками и обычно кошельком. Работает внутри parlons-cloud, Parlons Node или настольного приложения-узла. |
| Аккаунт владельца | Аккаунт того, кто управляет компьютером. На Parlons Node это собственная личность узла. |
| Tenant (гостевой аккаунт) | Один аккаунт на хосте с несколькими аккаунтами. Каждый tenant — это папка <dir>/<name>/ с той же структурой, что и у отдельного аккаунта. У каждого своя личность, устройства, контакты, чаты и резервная копия. |
| Размещённый аккаунт (гость) | Обиходное название tenant, созданного для друга. Гости не имеют доступа к аккаунту владельца, терминалу Minima владельца и управлению хостингом. |
| Аккаунт только для общения | Гость, созданный встроенным хостингом аккаунта владельца (Parlons Node, minimaCore Desktop, minimaDesk или отдельный parlons-cloud с включённым хостингом). В нём есть только чаты, звонки и файлы; кошелёк, терминал узла, размещение NFT и управление хостом отключены. |
Что хост может и чего не может
- Он не может читать ваши сообщения (и чьи-либо ещё) при передаче: всё, что передаётся между устройствами, защищено сквозным шифрованием.
- Он может читать то, что хранится на этом компьютере. Там лежат история чатов и ключи вашего аккаунта, поэтому у оператора к ним такой же доступ, какой был бы у вас на своём компьютере. Выбирайте хост, которому доверяете так же, как тому, кто хранит вашу почту. Или запустите собственный (часть B).
2Термины этого руководства
Полный глоссарий — в конце (раздел 33). Несколько слов, которые нужны сразу:
- Адрес — постоянный адрес вашего аккаунта. Он начинается с
MAX#, длиной в несколько сотен символов и никогда не меняется. Делитесь им: по нему с вами связываются. В этом руководстве адрес никогда не сокращается — не сокращайте его и вы: всегда копируйте целиком. - Код подключения — одноразовый код вида
ABCD-EFGH-JKLM(три группы по четыре символа). Он срабатывает один раз. Новый код заменяет старый. - Приглашение — адрес и код подключения в одной строке: адрес, затем
?code=, затем код. Одного QR-кода приглашения достаточно, чтобы подключить телефон. - Устройство — всё, что подключено к аккаунту (телефон, команда
parlonsв терминале, собственная веб-панель хоста). У каждого свой ключ, и его можно отозвать, не меняя личность аккаунта.
Часть A. Работа с аккаунтом в приложении Portal
3Установка приложения
Как установить приложение
- На телефоне Android откройте https://github.com/eurobuddha/maxima/releases и найдите релиз с тегом
portal-v0.2.90. - Скачайте приложенный к нему APK:
parlons-cloud-portal-0.2.90-release.apk. - Откройте скачанный файл. Если Android попросит, разрешите браузеру или файловому менеджеру устанавливать приложения, затем нажмите Установить.
- Откройте Parlons Cloud. Первый экран называется Parlons в облаке. Чтобы подключить приложение, перейдите к разделу 4.
Приложению нужен Android 9 или новее. Разрешения оно запрашивает, когда они впервые понадобятся: камера (сканирование QR-кодов, видеозвонки, фото), микрофон (голосовые сообщения и звонки), уведомления и работа в фоновом режиме.
Как обновить приложение
- Скачайте новый
parlons-cloud-portal-<version>-release.apkсо страницы релизов. - Откройте его и нажмите Установить. Android установит его поверх старой версии.
- Откройте Parlons Cloud. Подключение сохраняется, поэтому приложение сразу открывает ваш аккаунт.
Как удалить приложение
Приложение не использует облачное резервное копирование Android, поэтому при удалении ключ устройства этого телефона стирается. Сам аккаунт не затрагивается.
- На другом подключённом устройстве откройте Узел → Подключённые устройства и нажмите Отозвать рядом с этим телефоном (раздел 9).
- Удалите Parlons Cloud в настройках приложений Android.
- Чтобы позже снова пользоваться телефоном, установите приложение и подключите его с новым кодом (раздел 10).
4Подключение приложения к аккаунту
Вам нужно приглашение (или адрес и код подключения) из одного из этих мест:
| Где работает ваш аккаунт | Откуда взять приглашение |
|---|---|
| Ваш компьютер, установка одной командой | Выводится в конце установки текстом и QR-кодом (раздел 19). Позже: parlons invite или parlons newcode на этом компьютере. |
Ваш VPS, установка через deploy-parlons-cloud.sh | Выводится скриптом развёртывания (раздел 20). |
| Parlons Node | sudo parlons-pair --admin на сервере (раздел 23). |
| Размещённый аккаунт | Его даёт оператор хоста, или владелец показывает его через Показать приглашение (раздел 11). |
| Аккаунт, которым вы уже пользуетесь на другом устройстве | На том устройстве: Узел → Подключить другое моё устройство (раздел 10). |
Как подключиться по приглашению
- Откройте Parlons Cloud. Первый экран называется Parlons в облаке.
- Сделайте одно из следующего:
- Нажмите Сканировать QR-код подключения и наведите камеру на QR-код приглашения. Приложение заполнит оба поля и покажет Адрес и код подключения отсканированы.
- Или вставьте приглашение целиком в поле Адрес аккаунта или приглашение. При нажатии Подключить устройство код будет перенесён в поле Код подключения.
- Или вставьте в первое поле только адрес, а код (например,
ABCD-EFGH-JKLM) введите в поле Код подключения.
- Нажмите Подключить устройство.
- В строке состояния появится Подключение к сети…, затем Аккаунт найден — подключение….
- Если код верный, приложение сразу откроет ваш аккаунт. Код после этого израсходован. Подтверждение с других устройств не требуется.
Приложение запоминает введённый адрес, так что после неудачной попытки вводить его заново не придётся.
Как подключиться без кода
Этот способ подходит, если у вас есть адрес, но нет кода. Тогда новое устройство должно одобрить другое, уже подключённое устройство.
- Вставьте полный адрес
MAX#в поле Адрес аккаунта или приглашение. - Оставьте поле Код подключения пустым.
- Нажмите Подключить устройство. Аккаунт поставит телефон в список ожидания. Приложение покажет:
Запрос на подключение отправлен. Одобрите его с уже подключённого устройства, затем откройте приложение снова.
и ключ этого устройства.
- На уже подключённом устройстве одобрите новый телефон одним из способов:
- В Portal: Узел → Ожидают подтверждения, затем Разрешить рядом с ключом.
- В терминале командой
parlons:parlons approve <key> - В веб-панели: Устройства, затем Разрешить в разделе Ожидание разрешения.
- Вернитесь на новый телефон, снова откройте Parlons Cloud и ещё раз нажмите Подключить устройство.
Если подключиться не удалось
| Сообщение | Что это значит | Что делать |
|---|---|---|
| Не удалось подключиться: … с текстом Аккаунт в сети? Адрес указан верно? | Аккаунт остановлен, не имеет доступа в интернет или только что запустился. | Проверьте, что адрес полный. Попросите того, кто управляет аккаунтом, проверить, что он работает (раздел 17). Повторите попытку. |
| Не удалось подключить устройство: … | Код неверный, уже использован или заменён более новым. | Получите новое приглашение и подключитесь снова. |
| Введите или отсканируйте адрес аккаунта | Поле адреса пустое. | Вставьте или отсканируйте адрес. |
Как прочитать заметку о настройке сервера
- На первом экране нажмите Впервые здесь? Настройте сервер аккаунта ▸. Откроется короткая заметка о запуске собственного сервера аккаунта. В ней показана команда развёртывания и где найти полное руководство (
cloud/SETUP.mdв репозитории). - Нажмите на любой серый блок, чтобы скопировать его текст. Приложение покажет Скопировано.
- Нажмите Настройка сервера аккаунта ▾, чтобы снова свернуть заметку.
Часть B этого руководства описывает то же самое подробнее.
Как изменить язык приложения
- Откройте список языков:
- На первом экране нажмите Изменить язык вверху.
- После подключения откройте Ещё → Настройки и нажмите верхнюю кнопку с надписью English · 简体中文 · Русский · Українська.
- Выберите нужный язык. Список закроется, и приложение переключит язык. Выбор действует только на этом устройстве.
5Главный экран
После подключения приложение открывается на четырёх вкладках: Чаты, Контакты, Кошелёк и Узел. Переключайтесь между ними касанием или свайпом.
Верхняя панель
- Parlons Cloud и версия приложения.
- Индикатор состояния показывает, может ли приложение связаться с аккаунтом:
- зелёный, в сети · N узлов (или N новых, если есть непрочитанные сообщения): аккаунт доступен;
- Подключение…: приложение ещё пытается подключиться;
- красный, недоступен: аккаунт не ответил.
- Поиск ищет по сообщениям, контактам и группам аккаунта. Поиск выполняется на стороне аккаунта, поэтому охватывает всё, что там хранится, а не только то, что видел этот телефон.
- Тема переключает режимы: светлая → тёмная → системная. Короткое сообщение подтверждает выбор.
- Ещё открывает меню аккаунта:
| Пункт | Что делает |
|---|---|
| Настройки | Открывает экран настроек (раздел 13). |
| Задать имя аккаунта | Переходит на вкладку «Узел» и предлагает ввести новое имя аккаунта. |
| Копировать адрес аккаунта | Копирует полный адрес MAX#. |
| Состояние узла | Переходит на вкладку «Узел». |
| Отключить это устройство | Спрашивает Отключить это устройство?, затем забывает аккаунт на этом телефоне. |
Как искать в аккаунте
- Нажмите Поиск на верхней панели.
- Введите текст в поле Поиск сообщений…. Результаты появятся в разделах Контакты и группы и Сообщения. Совпадений нет. означает, что ничего не найдено.
- Нажмите на результат, чтобы открыть этот чат. Нажмите Назад, чтобы выйти из поиска.
Как сменить тему
- Нажмите Тема на верхней панели. Каждое нажатие переключает на следующий вариант: светлая, тёмная, системная.
- Короткое сообщение, например Тема: тёмная, подтвердит выбор.
Как скопировать адрес аккаунта
- Нажмите Ещё → Копировать адрес аккаунта.
- Приложение покажет Адрес аккаунта скопирован. В буфере обмена — полный адрес
MAX#.
Как отключить этот телефон
- Нажмите Ещё → Отключить это устройство.
- В окне Отключить это устройство? поясняется, что телефон перестанет управлять вашим облачным аккаунтом.
- Нажмите Отключить. Приложение вернётся на первый экран.
- На другом подключённом устройстве отзовите запись этого телефона (раздел 9). Пока вы этого не сделаете, аккаунт по-прежнему считает его подключённым устройством.
Отключить это устройство только удаляет подключение на этом телефоне. Ваш аккаунт и его личность остаются на узле. Другие устройства продолжают работать, а этот телефон можно подключить снова с новым кодом.
6Чаты
На вкладке Чаты перечислены ваши переписки — сначала новые — с числом непрочитанных сообщений.
Пока чатов нет, на вкладке написано: Пока нет переписок. Добавьте собеседника на вкладке «Контакты» и напишите ему.
Как открыть или найти чат
- Откройте вкладку Чаты.
- Чтобы сузить список, введите часть имени в поле поиска вверху.
- Нажмите на чат, чтобы открыть его.
Как создать группу
Сначала нужен хотя бы один контакт. Иначе приложение скажет Сначала добавьте контакты — группе нужны участники.
- На вкладке Чаты нажмите кнопку Новая группа.
- Введите название в поле Название группы.
- Отметьте хотя бы одного участника.
- Нажмите Создать. Приложение покажет Группа создана, и группа появится в списке.
Если нажать Создать без названия или без участников, приложение скажет Введите название группы и выберите хотя бы одного участника.
Как отметить чат прочитанным или очистить его
- На вкладке Чаты нажмите на чат и удерживайте.
- Нажмите Отметить прочитанным (появляется, если есть непрочитанные сообщения). Приложение покажет Отмечено прочитанным.
- Или нажмите Очистить сообщения. Появится окно Очистить этот чат?. Нажмите Очистить для подтверждения. Приложение покажет Чат очищен.
Очистка удаляет сообщения только из вашего аккаунта. Она не отзывает отправленные сообщения и не выводит вас из группы. Отменить её нельзя.
Внутри чата
Подзаголовок гласит в вашем облачном аккаунте: сообщения хранятся в аккаунте, а этот экран лишь показывает их.
Как отправить сообщение
- Введите текст в поле сообщения внизу.
- Нажмите кнопку отправки (когда есть текст, на ней стрелка).
Как отправить голосовое сообщение
- Оставьте поле сообщения пустым. На кнопке отправки появится микрофон.
- Нажмите на микрофон. Откроется окно Голосовое сообщение с таймером и максимальной длительностью.
- Говорите.
- Нажмите Отправить, чтобы отправить запись, или Отмена, чтобы удалить её. Слишком коротко — запишите ещё немного означает, что запись слишком короткая.
Голосовое сообщение можно начать и через Прикрепить → Голосовое сообщение.
Как отправить фото или файл
- Нажмите Прикрепить.
- Выберите вариант:
- Фототека: выберите фото. В окне Отправить фото можно нажать Добавьте подпись…. Нажмите Отправить.
- Приватный файл: откроется выбор файлов Android. Выберите файл, чтобы отправить его в этот чат.
- Передача файлов: откроется список передач файлов в этом чате.
- Чтобы сделать новый снимок, нажмите кнопку камеры рядом с полем сообщения.
Как позвонить контакту
- Откройте личный чат.
- Нажмите Голосовой звонок или Видеозвонок на верхней панели чата.
- Когда приложение впервые попросит, разрешите доступ к микрофону (и к камере для видео).
- Во время звонка используйте Выкл. микр., Динамик, Камера (переключение камеры) и Отбой.
Звонки возможны только один на один. Как ответить на звонок, описано в разделе 14.
Как посмотреть сведения о контакте или группе
- Нажмите кнопку информации на верхней панели чата.
- Для контакта окно показывает его программу, время последней активности, открытый ключ, адреса и адрес для платежей. Копировать ключ копирует ключ полностью.
- Для группы окно Группа показывает участников. Если вы администратор группы, нажмите Изменить состав, отметьте или снимите отметку с контактов и нажмите Сохранить. Приложение покажет Группа обновлена.
Действия с отдельным сообщением
- Нажмите на сообщение и удерживайте.
- Выберите действие:
- Копировать сообщение (или Копировать подпись для фото, Копировать адрес контакта для отправленного адреса).
- Сохранить фото или Поделиться фото для изображения. Сохранено в Фото подтверждает сохранение.
- Копировать идентификатор транзакции для платежа.
- Информация открывает Сведения о сообщении: когда оно отправлено и получено, его статус (Отправка…, Отправлено (принято ретранслятором), Доставлено, Прочитано, Не удалось отправить), а для платежей — идентификатор транзакции.
Галочки означают то же, что и во всех приложениях Parlons:
| Значок | Значение |
|---|---|
| ⋯ | в очереди, ещё не передано узлу |
| ✓ | отправлено: узел принял сообщение |
| ✓✓ | доставлено: устройство получателя подтвердило получение |
| ✓✓ синим | прочитано |
| ✗ | ошибка: ни один узел не принял сообщение; оно остаётся в исходящих |
Как повторно отправить недоставленное сообщение
Если аккаунт не смог связаться с контактом ни по одному известному адресу, у неотправленного сообщения стоит ✗.
- Нажмите на это сообщение. Окно Сообщение не доставлено поясняет, что узел не смог связаться с контактом.
- Нажмите Подключиться снова (или Не сейчас, чтобы оставить как есть). Приложение покажет Повторное подключение… и запросит у каталога текущий адрес контакта.
- Найден новый адрес — скоро повторим отправку означает, что неотправленные сообщения будут отправлены автоматически. Адрес не изменился — возможно, собеседник не в сети означает, что контакт, вероятно, не в сети; сообщения ждут в исходящих.
Оплата контакту в чате
- В личном чате нажмите Прикрепить → Отправить платёж. В окне Отправить платёж: имя написано Оплата из кошелька вашего облачного аккаунта.
- Выберите Minima или MxUSD. MxUSD — токен Minima, привязанный к доллару, ID токена
0x7D39745FBD29049BE29850B55A18BF550E4D442F930F86266E34193D89042A90. - Введите сумму (поле называется Сумма (MINIMA) или Сумма (MxUSD)) и при желании Примечание (необязательно).
- Нажмите Отправить. Приложение покажет Создание платежа на вашем узле….
Платёж создаётся и подписывается на компьютере, где работает ваш аккаунт, а не на телефоне. Аккаунты только для общения платить не могут (раздел 8).
Если у платежа отображается ⚠ не подтверждено — проверьте баланс перед повторной оплатой, проверьте вкладку «Кошелёк», прежде чем отправлять его второй раз.
Для MxUSD нужен актуальный хост. Перед платежом в MxUSD Portal 0.2.90 спрашивает у хоста аккаунта, учитывает ли тот ID токена. Хост, который не может это подтвердить, проигнорировал бы токен и заплатил бы ту же сумму в MINIMA, поэтому приложение отказывается отправлять платёж и показывает:
Не удалось отправить платёж: Хост этого аккаунта слишком старый для отправки MxUSD — обновите его (Parlons Node 0.2.135+, Parlons Cloud 0.11.121+, minimaCore Desktop 0.18.21+)
Ничего не отправляется. Попросите того, кто управляет хостом, обновить его до одной из указанных версий, и повторите попытку. На платежи в Minima это не влияет.
7Контакты
Вкладка Контакты состоит из трёх частей.
Адрес вашего аккаунта. Полный адрес MAX# с кнопками Копировать, Показать QR-код и Поделиться адресом. Поделитесь этим адресом, чтобы с вами могли связаться. Он одинаков на всех ваших устройствах. Пока аккаунт подключается, вместо адреса отображается (определение адреса…).
Ваши контакты. Заголовок Контакты · N, над списком — Поиск контактов. Нажмите на контакт, чтобы увидеть сведения: Программа, Последняя активность (или Сейчас в сети), Открытый ключ, его Адреса и Адрес для платежей (MINIMA), если контакт его опубликовал. Оттуда:
- Сообщение открывает чат.
- Ещё предлагает Переименовать, Переподключиться и Удалить контакт (инструкции ниже).
Добавление контакта. Поле и кнопка Сканировать QR-код в разделе Добавление контакта.
Как поделиться своим адресом
- Откройте Контакты.
- В разделе Адрес вашего аккаунта нажмите одну из кнопок:
- Копировать: приложение покажет Адрес скопирован. Вставьте его в сообщение человеку.
- Показать QR-код: дайте человеку отсканировать QR-код с вашего экрана.
- Поделиться адресом: откроется меню «Поделиться» Android. Выберите приложение для отправки.
Как добавить контакт
- Откройте Контакты и прокрутите до раздела Добавление контакта.
- Внесите адрес человека в поле одним из способов:
- Вставьте полный адрес. Он начинается с
MAX#либо начинается сMxи заканчивается на@host:port. - Нажмите Сканировать QR-код и наведите камеру на QR-код его адреса.
- Вставьте полный адрес. Он начинается с
- Нажмите Добавить. Приложение покажет Добавление…, затем Контакт добавлен.
Добавление контакта — это взаимное представление: ваш аккаунт представляется по адресу человека, а тот отвечает своим адресом. Если добавить не удалось, приложение покажет Не удалось добавить: … с причиной, например аккаунт сейчас недоступен — проверьте, в сети ли собеседник, или снова отсканируйте его адрес. Если введённый текст вообще не адрес, появится Это не похоже на адрес Parlons — он должен начинаться с Mx… или MAX#….
Как переименовать контакт
- Откройте Контакты и нажмите на контакт.
- Нажмите Ещё → Переименовать.
- В окне Переименовать контакт введите новое имя в поле Имя контакта.
- Нажмите Переименовать. Приложение покажет Имя изменено. Имя хранится только в вашем аккаунте.
Как заново подключиться к контакту
- Откройте Контакты и нажмите на контакт.
- Нажмите Ещё → Переподключиться. Приложение покажет повторное подключение….
- Найден новый адрес — подключение восстановлено означает, что найден новый адрес контакта. Адрес не изменился — возможно, собеседник не в сети означает, что ничего не изменилось.
Как удалить контакт
- Откройте Контакты и нажмите на контакт.
- Нажмите Ещё → Удалить контакт.
- Окно спросит Удалить имя? и пояснит: У собеседника останется ваш адрес, и он сможет вам писать. Вы удалите его только из своего списка.
- Нажмите Удалить. Приложение покажет Удалено.
8Кошелёк
Содержимое вкладки Кошелёк зависит от того, к какому аккаунту вы подключены.
Аккаунт только для общения
На вкладке написано Аккаунт только для общения: Этот аккаунт поддерживает чат, звонки и файлы. Кошелёк и управление хостом отключены. Больше здесь ничего нет.
Аккаунт Parlons Cloud (собственный сервер или tenant на хосте parlons-tenants)
У аккаунта собственный кошелёк. Его ключи получаются из сид-фразы аккаунта и хранятся на компьютере, где работает аккаунт. Подписание тоже происходит там.
Что показывает вкладка:
- Общий баланс: MINIMA · кошелёк вашего аккаунта и Доступно N · ключи хранятся на вашем облачном узле.
- Адрес получения: адрес Minima аккаунта с кнопками Копировать и Показать QR-код.
- Токены на этом адресе, у каждого — его ID.
- Ключ подписи: Использовано подписей: N / M. Каждый ключ может подписать ограниченное число раз.
- Отправить, Перенести кошелёк на этот телефон… и История.
Как получить средства
- Откройте Кошелёк.
- В разделе Адрес получения нажмите Копировать (приложение покажет Адрес скопирован) или Показать QR-код.
- Передайте отправителю полный адрес или дайте ему отсканировать QR-код.
Как скопировать ID токена
- Откройте Кошелёк и найдите токен в разделе Токены.
- Нажмите на него. Приложение покажет ID токена скопирован. В буфере обмена — полный ID токена.
Как отправить Minima или MxUSD
- Откройте Кошелёк и нажмите Отправить.
- Введите получателя в поле Адрес Mx… или 0x… или нажмите Сканировать QR-код.
- Выберите Minima или MxUSD.
- Введите сумму (Сумма (MINIMA) или Сумма (MxUSD)) и нажмите Продолжить.
- Прочитайте подтверждение Отправить сумма токен?. В нём показан полный адрес и написано Будет подписана и отправлена в сеть настоящая транзакция. Отменить её нельзя.
- Нажмите Подписать и отправить. В строке состояния появится Подписание на вашем узле…, затем Отправка в сеть через …, затем Отправлено.
Если отправка не удалась, приложение покажет Не удалось отправить: … с причиной. Для MxUSD на хосте, который не может подтвердить поддержку ID токена, причина такая: Хост этого аккаунта слишком старый для отправки MxUSD — обновите его (Parlons Node 0.2.135+, Parlons Cloud 0.11.121+, minimaCore Desktop 0.18.21+). Ничего не отправляется; попросите оператора хоста обновить его (раздел 6).
Как посмотреть прошлый платёж
- Откройте Кошелёк и прокрутите до раздела История. В нём перечислены платежи, которые этот телефон видел, пока был подключён (отправленные и полученные), сначала новые.
- Нажмите на платёж. Окно покажет сумму, другую сторону, время, примечание и идентификатор транзакции.
- Нажмите Копировать ID транзакции, чтобы скопировать полный идентификатор транзакции.
Как задать счётчик использованных подписей
Делайте это, только если этой сид-фразой подписывались транзакции на другом устройстве. Счётчик можно только повышать. Слишком низкое значение грозит повторным использованием одноразового ключа и его раскрытием.
- Откройте Кошелёк и в разделе Ключ подписи нажмите Указать число использованных подписей….
- Введите новое значение в поле Новое число использованных подписей (> текущее) и нажмите Продолжить.
- Прочитайте Повысить до N?. Там предупреждается, что это нельзя отменить.
- Нажмите Повысить счётчик. Приложение покажет Обновление счётчика…, затем Счётчик повышен.
Как перенести кошелёк на этот телефон
Перенести кошелёк на этот телефон… переводит все доступные средства в кошелёк, сид-фраза которого хранится на этом телефоне, в приложении Minima Core. Ваша облачная личность остаётся. Сервер продолжает наблюдать за новым адресом в режиме только для чтения.
- Сначала установите Minima Core: Ещё → Настройки → Minima Core на этом телефоне → Установить Minima Core. Без него приложение покажет Нужен Minima Core.
- В Minima Core откройте «Кошелёк» → «Получить» и скопируйте свой адрес.
- В Parlons Cloud откройте Кошелёк и нажмите Перенести кошелёк на этот телефон….
- Вставьте адрес в поле Адрес Mx… из Minima Core и нажмите Продолжить.
- Прочитайте Перевести все сумма MINIMA?. Там показан полный адрес и сказано, что облако затем будет наблюдать за ним в режиме только для чтения.
- Нажмите Перевести всё и отделить кошелёк. Все доступные средства уйдут на этот адрес одной транзакцией.
Если приложение пишет Сейчас нет доступных для отправки средств — синхронизируйте или дождитесь подтверждений, подождите и повторите попытку.
Аккаунт Parlons Node
Кошелёк аккаунта — это собственный кошелёк Minima узла.
- Баланс · весь кошелёк: MINIMA · доступно для отправки со всех адресов кошелька узла с подтверждённой, заблокированной и неподтверждённой суммами, а также другими токенами узла.
- Открыть кошелёк открывает полный кошелёк: балансы со значками токенов, галерея NFT, отправка (быстрая или с выбором монет), получение с QR-кодом, все монеты, история в блокчейне и создание токенов. Всё выполняется и подписывается на вашем узле.
- Сменить фразу кошелька… переводит кошелёк узла на новую фразу из 24 слов.
Как открыть полный кошелёк узла
- Откройте Кошелёк.
- Нажмите Открыть кошелёк. Откроется полный кошелёк со своими вкладками для балансов, отправки, получения, монет, истории и создания токенов.
Как перевести кошелёк узла на новую фразу
Используйте это, когда ключи подписи узла израсходованы или вам нужна новая сид-фраза. Личность, подключённые устройства и контакты сохраняются. Средства на старой фразе остаются за старой фразой, поэтому сначала переведите их.
- Откройте Кошелёк и нажмите Сменить фразу кошелька….
- Введите новую фразу в поле 24 слова через пробел. Если слов не 24, появится Должно быть 24 слова.
- Нажмите Сменить фразу. Приложение покажет Смена фразы начата — узел перезапустится примерно через минуту; аккаунт прежний, адрес кошелька новый.
- Подождите около минуты. Приложение переподключится само.
Если позже на вкладке появится Последняя смена фразы НЕ выполнена — кошелёк не изменён, за этим следует причина. Используется прежний кошелёк.
Адрес только для наблюдения
Если у аккаунта нет собственного адреса кошелька, вкладка предлагает Кошелёк для наблюдения. Ключи для расходования средств остаются на устройстве; узел может только наблюдать.
- Откройте Кошелёк.
- Введите адрес
Mx…в поле Адрес получения Mx…. - Нажмите Указать адрес для наблюдения. Приложение покажет Сохранение…, затем Адрес для наблюдения сохранён.
- Теперь вкладка показывает баланс этого адреса в режиме только для чтения.
9Узел
Вкладка Узел — пульт управления аккаунтом. Чтобы обновить её, потяните вниз или снова откройте вкладку.
Сверху вниз:
- Ваше имя. Как вы выглядите в списках ваших контактов на всех устройствах. Нажмите Изменить, введите новое имя (например, eurobuddha) и сохраните. Имя видно вашим контактам. Изменение будет сразу отправлено всем контактам.
- Состояние. Всегда включён — в сети (или Узел недоступен) с полями Время работы, Подключённые ретрансляторы и Почтовый ящик сохранён. На старом хосте карточка показывает Обновите узел до parlons-cloud 0.4.1 или новее для просмотра полного состояния.
- Преимущества узла на VPS. Напоминание о том, что аккаунт делает для вас: Всегда включён, Один аккаунт на всех устройствах и является ли он ретранслятором (Ваш узел — ретранслятор с числом участников сети или Ретранслятор выключен).
- Постоянный адрес. Адрес, который не меняется: по нему вы доступны на любом устройстве. Кнопки Копировать и Показать QR-код.
- Размещённые аккаунты (только если этот аккаунт управляет хостом): Управление размещёнными аккаунтами (раздел 11).
- Инструменты узла и Соединения и узлы (только если хост предоставляет консоль узла, как Parlons Node): Открыть терминал и IDE и Открыть панель управления (раздел 12).
- Подключённые устройства (N). Все устройства, которые могут управлять аккаунтом. Этот телефон помечен это устройство, остальные — подключено. Нажмите Отозвать, чтобы отключить устройство. Оно потеряет доступ к вашему аккаунту. Ваша личность не изменится, другие устройства продолжат работать. Это нельзя отменить: для повторного подключения понадобится новый код. Собственная веб-панель хоста тоже показана здесь как локальное устройство; если отозвать её, доступ к панели будет закрыт.
- Ожидают подтверждения (N). Устройства, запросившие подключение без кода (Устройство запрашивает подключение). Нажимайте Разрешить, только если узнаёте ключ.
- Подключить другое моё устройство (раздел 10) с напоминанием о том, что означает подключение устройства.
Если аккаунт не отвечает, вкладка показывает Не удалось подключиться к узлу. и причину.
Как задать имя аккаунта
- Откройте Узел или нажмите Ещё → Задать имя аккаунта.
- В разделе Ваше имя нажмите Изменить.
- Введите новое имя (например, eurobuddha). В окне написано Имя видно вашим контактам. Изменение будет сразу отправлено всем контактам.
- Нажмите Задать. Приложение покажет Имя задано — отправка обновления контактам….
Как скопировать или показать постоянный адрес
- Откройте Узел и найдите Постоянный адрес.
- Нажмите Копировать, чтобы скопировать полный адрес
MAX#, или Показать QR-код, чтобы показать его в виде QR-кода.
Как отозвать подключённое устройство
- Откройте Узел и прокрутите до Подключённые устройства (N).
- Найдите устройство. Этот телефон помечен это устройство.
- Нажмите Отозвать.
- Прочитайте Отозвать доступ устройства? и нажмите Отозвать. Приложение покажет Доступ отозван.
Устройство сразу теряет доступ. Ваша личность не меняется, и другие устройства продолжают работать. Чтобы вернуться, устройству нужен новый код. Если отозвать собственную веб-панель хоста, доступ к панели будет закрыт (раздел 24).
Как одобрить устройство, запросившее подключение
- Откройте Узел и прокрутите до Ожидают подтверждения (N). Каждая запись выглядит как Устройство запрашивает подключение с ключом.
- Сравните ключ с тем, что показывает новое устройство (раздел 4, «Как подключиться без кода»).
- Нажимайте Разрешить, только если ключи совпадают. Приложение покажет Одобрено.
10Добавление устройств: приглашения владельца
Подключённое устройство получает полный контроль над этим аккаунтом: его чатами, контактами и кошельком, если он есть. Отправляйте приглашение только тому, кто должен управлять этим аккаунтом. Чтобы пригласить друга, создайте для него отдельный размещённый аккаунт (раздел 11).
Из Portal
- Откройте Узел и нажмите Подключить другое моё устройство.
- Дальнейшее зависит от хоста:
- Хосты без сервиса пароля администратора (tenant на хосте
parlons-tenantsили гостевой аккаунт): новый код создаётся сразу. - Хосты с сервисом пароля администратора (отдельный аккаунт
parlons-cloud, Parlons Node 0.2.118 или новее и настольные приложения-узлы): приложение показывает окно Пригласить устройство. Введите пароль администратора, чтобы дать другому устройству доступ к этому аккаунту владельца и терминалу Minima. Оставьте поле пустым, чтобы создать отдельный размещённый аккаунт для друга.- Введите пароль администратора и нажмите Продолжить, чтобы создать приглашение владельца.
- Оставьте поле пустым и нажмите Продолжить, чтобы вместо этого открыть управление размещёнными аккаунтами (или, если хостинг не настроен, появится Размещение на этом сервере ещё не включено).
- Хосты без сервиса пароля администратора (tenant на хосте
- Приложение покажет Создан новый код подключения с одноразовым кодом и полным приглашением. Нажмите Копировать приглашение или QR, чтобы показать его QR-кодом для сканирования новым устройством.
Пароль проверяется на сервере и никогда не сохраняется на телефоне. При неверном пароле код не выдаётся. После неудачной попытки подождите пару секунд, прежде чем пробовать снова (Подождите несколько секунд, прежде чем снова вводить пароль администратора). Если пароль администратора ещё не задан, сервер ответит Задайте пароль администратора на странице «Устройства» Parlons в приложении хоста. Для сервера с командной строкой используйте: sudo parlons-pair --set-admin-password (в разделе 23 описано, как задать его на каждом типе хоста).
Без пароля администратора: одобрение
Устройство всегда можно добавить без кода. Для одобрения пароль администратора не нужен.
- На новом устройстве выполните подключение с пустым полем Код подключения (раздел 4, «Как подключиться без кода»).
- На уже подключённом устройстве откройте Узел → Ожидают подтверждения (N).
- Нажмите Разрешить рядом с ключом нового устройства.
- На новом устройстве снова нажмите Подключить устройство.
С сервера
См. раздел 23: sudo parlons-pair --admin на Parlons Node, parlons newcode на аккаунте, установленном одной командой, или Устройства → Новый код подключения в веб-панели на любом хосте с панелью.
Как отключить потерянный или заменённый телефон
Отзыв доступа никак не меняет вашу личность.
- На любом другом подключённом устройстве откройте Узел → Подключённые устройства (N).
- Найдите потерянный телефон и нажмите Отозвать, затем ещё раз Отозвать для подтверждения.
Или в терминале с командой parlons:
- Выведите список устройств с полными ключами:
parlons devices - Отзовите доступ потерянного телефона по его полному ключу:
parlons revoke <key>
11Размещение аккаунтов друзей: гостевые приглашения
Если ваш аккаунт управляет хостом, на вкладке «Узел» есть карточка Размещённые аккаунты: Размещайте аккаунты друзей на этом сервере. У каждого будет свой аккаунт и приглашение без доступа к вашему аккаунту или терминалу Minima. Так владелец создаёт аккаунты для тех, кто не будет запускать свой сервер.
Здесь встречаются два вида хостов:
| Хост | Что получают гости | Кто настраивает |
|---|---|---|
Встроенный хостинг чатов в Parlons Node, minimaCore Desktop, minimaDesk или отдельном аккаунте parlons-cloud | Аккаунты только для общения: чаты, звонки и файлы. Без кошелька, терминала и управления хостом. До десяти аккаунтов. | Владелец включает его в приложении или в панели хоста. |
Сервис parlons-tenants, подключённый к Parlons Node (--manage-from-node, раздел 21) | Полноценные гостевые аккаунты (tenant) со своими чатами и кошельками. Управлять аккаунтом владельца или узлом они не могут. | Его устанавливает оператор сервера. |
Как разместить аккаунт друга
- Откройте Узел → Управление размещёнными аккаунтами. Появится список с заголовком Размещённые аккаунты (N/лимит) или Сервис размещения недоступен.
- Только для встроенного хостинга: в первый раз нажмите Настройки размещения → Включить хостинг. Окно Включить размещение? поясняет: Ваш компьютер будет хранить ключи и сообщения гостевых аккаунтов и должен оставаться включённым. Сначала задайте пароль администратора на странице устройств Parlons в приложении хоста. Нажмите Включить. Хостинг нельзя включить, пока не задан пароль администратора (раздел 23). Через несколько секунд нажмите Обновить (Хостинг запускается. Обновите через несколько секунд.).
- Нажмите Создать аккаунт. В разделе Разместить аккаунт друга введите имя аккаунта (например, alice) и нажмите Создать. Имя — от 1 до 64 символов: буквы, цифры, точки, подчёркивания или дефисы, начинается с буквы или цифры.
- Нажимайте Обновить, пока у аккаунта не появится состояние работает. Состояние меняется с запуск на работает (или повторная попытка, если запустить не удалось).
- Нажмите на аккаунт, затем Показать приглашение. Окно Приглашение для имя показывает полное приглашение. Это приглашение подключает устройство к аккаунту имя. До использования храните его в тайне. Нажмите Копировать приглашение и отправьте его лично или дайте отсканировать.
- Друг устанавливает Parlons Cloud (Android) или Parlons (iPhone), сканирует или вставляет приглашение и нажимает Подключить устройство. Действующий код подключает сразу. Приглашение друга не даёт доступа к вашему аккаунту.
Как приостановить или возобновить размещённый аккаунт
- Откройте Узел → Управление размещёнными аккаунтами.
- Нажмите на аккаунт.
- Нажмите Приостановить работу аккаунта. Окно Приостановить работу имя? сообщает: Аккаунт отключится от сети. Его личность и чаты сохранятся. Нажмите Приостановить.
- Чтобы вернуть его, нажмите на аккаунт, затем Возобновить работу аккаунта. Окно Возобновить работу имя? сообщает: Аккаунт снова подключится на этом сервере. Нажмите Возобновить.
- Нажмите Обновить, чтобы увидеть новое состояние.
Как остановить встроенный хостинг
- Откройте Узел → Управление размещёнными аккаунтами.
- Нажмите Настройки размещения → Остановить хостинг.
- Окно Остановить размещение? сообщает: Все гостевые аккаунты отключатся от сети. Их личности и чаты сохранятся. Нажмите Остановить.
Чтобы снова запустить его, выполните шаг 2 из раздела «Как разместить аккаунт друга».
Приостановленные аккаунты тоже учитываются в лимите. Когда он достигнут, создать ещё один не получится — появится Hosting limit reached (10 accounts) (или другой лимит, установленный на хосте).
Гость может управлять своим аккаунтом и подключать свои другие устройства. Он также может в любой момент создать резервную копию всего аккаунта и перейти на другой хост (раздел 16).
12Инструменты узла: Терминал IDE и панель управления
Эти две карточки появляются, только если аккаунт работает на хосте с консолью узла, то есть на Parlons Node. У обычного аккаунта parlons-cloud их нет; ретрансляторами и каталогом такого аккаунта управляйте через его веб-панель или команду parlons (разделы 24 и 26).
Открыть терминал и IDE
Полная командная строка Minima вашего узла, IDE для скриптов KISS и инструменты ручного создания транзакций. Каждая команда выполняется на узле через этот сопряжённый канал; весь вывод доступен для копирования. На экране Терминал IDE четыре вкладки: Терминал, Скрипты, Транзакции и Журнал. Каждая команда записывается в журнал узла как выполненная подключённым устройством. Команда quit отклоняется; перезапускайте узел с сервера.
Как выполнить команду Minima на узле
- Откройте Узел и в разделе Инструменты узла нажмите Открыть терминал и IDE.
- На вкладке Терминал введите команду в поле команда…, например:
balance - Нажмите Выполнить. Полный вывод появится выше.
- Кнопками Предыдущая команда и Следующая команда можно листать выполненные команды. Удерживайте кнопку избранного, чтобы сохранить команду.
- Чтобы сохранить вывод, откройте меню и выберите Копировать весь вывод, Выбрать и скопировать вывод или Экспорт сеанса…. Очистить терминал очищает экран.
Как читать журнал узла
- В Терминал IDE откройте вкладку Журнал.
- Прокручивайте журнал. Он считывается с вашего узла через подключённый канал.
Открыть панель управления
Узлы, доступность, статистика ретранслятора, MLS, расположение и журнал событий — средства управления VPS. На экране Панель управления узлом есть:
- Состояние: версия, время работы, контакты, сохранённый почтовый ящик, исходящие, публичный ретранслятор и его Проверка ретранслятора (проверен — передаёт сообщения этому узлу, подключён, идёт проверка… или не подключён), Доступен напрямую и Прямой адрес, если он есть.
- Ретрансляция (вы передаёте трафик сети): подключённые клиенты, пересланные сообщения, сохранённые блоки данных, участники сети.
- Узлы: ретрансляторы, к которым подключён аккаунт. Отключить удаляет один из них. Чтобы добавить ретранслятор, введите
host:port(например,relay.example.com:9501) или вставьте текст QR-кода ретранслятора, затем нажмите Добавить и подключиться. Переключатель Аккаунт использует встроенный список ретрансляторов включает или выключает встроенный список; выключить его нельзя, пока у вас нет собственного ретранслятора. - Местоположение (MLS): где определяется ваш постоянный адрес. Закрепить адрес (или Закрепить заново), Открепить, Опубликовать заново и Копировать постоянный адрес. Закреплено — контакты всегда находят вас по неизменному постоянному адресу.
- Журнал событий с кнопками Очистить и Обновить.
Как добавить ретранслятор в аккаунт
- Откройте Узел → Открыть панель управления.
- В разделе Узлы введите
host:port(например,relay.example.com:9501) или вставьте текст QR-кода ретранслятора. - Нажмите Добавить и подключиться. Приложение покажет Подключение…, и ретранслятор появится в списке.
Как отключить ретранслятор
- Откройте Узел → Открыть панель управления.
- В разделе Узлы нажмите Отключить рядом с ретранслятором. Приложение покажет Отключение….
Как включить или выключить встроенный список ретрансляторов
- Откройте Узел → Открыть панель управления.
- В разделе Узлы переключите Аккаунт использует встроенный список ретрансляторов. Чтобы выключить его, сначала добавьте собственный ретранслятор.
Как закрепить постоянный адрес
- Откройте Узел → Открыть панель управления и найдите Местоположение (MLS).
- Нажмите Закрепить адрес (или Закрепить заново, если он уже закреплён). Приложение покажет Постоянный адрес закреплён.
- Копировать постоянный адрес копирует полный адрес.
- Чтобы отменить, нажмите Открепить. Чтобы сразу заново опубликовать запись в каталоге, нажмите Опубликовать заново.
Как читать и очищать журнал событий
- Откройте Узел → Открыть панель управления и прокрутите до Журнал событий.
- Нажмите Обновить, чтобы увидеть новые строки, или Очистить, чтобы очистить журнал.
13Справочник по настройкам
Откройте Ещё → Настройки.
| Раздел | Пункт | Что делает |
|---|---|---|
| (вверху) | Изменить язык | Выбирает язык приложения на этом устройстве. |
| Ваш аккаунт | Отправлять отчёты о прочтении | Показывать контактам, что вы прочитали их сообщения. Настройка хранится на узле и действует на всех устройствах. |
| Конфиденциальность и безопасность | Блокировка приложения | Требовать отпечаток пальца или PIN-код устройства для входа в Parlons Cloud. Сначала в Android нужно настроить отпечаток пальца или блокировку экрана. |
| Разрешить демонстрацию экрана | По умолчанию включено. Выключите, чтобы скрыть заблокированное приложение на снимках и записях экрана. | |
| Уведомления | Звук сообщений | Воспроизводить звук Parlons для новых сообщений. При выключении уведомления и вибрация сохраняются, но звука нет. |
| Настройки входящих звонков | Открывает настройки Android для мелодии, вибрации и полноэкранных оповещений на заблокированном экране. | |
| Ключи и резервные копии | Показать сид-фразу | Показывает 24 слова аккаунта (раздел 16). |
| Создать резервную копию аккаунта… | Записывает зашифрованную резервную копию всего аккаунта в выбранный вами файл (раздел 16). | |
| Импортировать личность или резервную копию… | Заменяет аккаунт на сервере другой личностью (раздел 16; только Parlons Node 0.2.117 или новее). | |
| Minima Core на этом телефоне | Открыть Minima Core / Установить Minima Core | Minima Core запускает на телефоне полный узел Minima. Это место для кошелька, независимого от вашей облачной личности; он нужен для функции Перенести кошелёк на этот телефон…. |
| Это устройство | Начальные ретрансляторы телефона | Где этот телефон сначала ищет ваш аккаунт (см. ниже). |
| Настройки уведомлений | Открывает настройки уведомлений Android для приложения. | |
| Работать в фоновом режиме | Просит Android не применять к приложению оптимизацию батареи. Показывается, только пока исключение ещё не задано. | |
| О приложении | Версия Portal | Установленная версия. |
| Адрес аккаунта | Адрес вашего аккаунта (можно делиться — он не меняется) полностью. |
Как включить или выключить отчёты о прочтении
- Откройте Ещё → Настройки.
- В разделе Ваш аккаунт переключите Отправлять отчёты о прочтении. Настройка хранится в аккаунте, поэтому действует на всех устройствах.
Как заблокировать приложение
- Сначала настройте отпечаток пальца или блокировку экрана в настройках Android. Иначе приложение скажет Сначала настройте отпечаток пальца или блокировку экрана в настройках телефона.
- Откройте Ещё → Настройки.
- В разделе Конфиденциальность и безопасность включите Блокировка приложения.
- Теперь при открытии приложения появится Разблокировать Parlons Cloud. Используйте отпечаток пальца или PIN-код устройства.
Чтобы скрыть заблокированное приложение на снимках и записях экрана, выключите Разрешить демонстрацию экрана в том же разделе.
Как выключить звук сообщений
- Откройте Ещё → Настройки.
- В разделе Уведомления выключите Звук сообщений. О новых сообщениях по-прежнему будут уведомления и вибрация, но без звука.
Как изменить мелодию и оповещения о звонках на заблокированном экране
- Откройте Ещё → Настройки.
- В разделе Уведомления нажмите Настройки входящих звонков. Откроются настройки Android.
- Выберите мелодию и вибрацию и разрешите полноэкранные оповещения на заблокированном экране.
Как сохранить подключение приложения в фоновом режиме
- Откройте Ещё → Настройки и прокрутите до раздела Это устройство.
- Нажмите Работать в фоновом режиме. Android спросит, разрешить ли приложению игнорировать оптимизацию батареи.
- Разрешите. Когда исключение задано, пункт исчезает.
- Чтобы проверить каналы уведомлений, нажмите Настройки уведомлений в том же разделе.
Как открыть или установить Minima Core
- Откройте Ещё → Настройки и найдите Minima Core на этом телефоне.
- Если Minima Core установлен, на карточке написано Minima Core установлен ✓. Нажмите Открыть Minima Core.
- Если нет, нажмите Установить Minima Core, чтобы установить его.
Как задать начальные ретрансляторы телефона
Это ретрансляторы, через которые телефон находит аккаунт (собственные ретрансляторы аккаунта задаются в самом аккаунте, разделы 12 и 24).
- Нажмите Начальные ретрансляторы телефона. В списке у каждого ретранслятора есть пометка встроенный или добавлен вами.
- Чтобы добавить ретранслятор, введите
host:portили вставьте текст QR-кода ретранслятора и нажмите Добавить. Или нажмите Сканировать QR-код ретранслятора. Текст QR-кода ретранслятора начинается сparlons-relay:. - Удалить удаляет ваш собственный ретранслятор. Хотя бы один должен остаться; если удалить последний, снова включится встроенный список.
- Использовать встроенные ретрансляторы (список из приложения) включает или выключает встроенный список. Чтобы выключить его, сначала добавьте собственный ретранслятор.
- Сбросить возвращает встроенный список. Готово закрывает окно.
Изменения вступают в силу при следующем переподключении.
14Уведомления, звонки и постоянное подключение
Приложение поддерживает постоянное зашифрованное соединение с аккаунтом в виде активного сервиса Android, чтобы приходили уведомления о сообщениях и звонках. Его постоянное уведомление гласит Подключено к вашему облачному аккаунту. После перезагрузки телефона приложение само подключается снова, если устройство подключено к аккаунту.
Каналы уведомлений Android:
| Канал | Для чего |
|---|---|
| Сообщения / Сообщения (без звука) | Новые сообщения в облачном аккаунте (второй — когда Звук сообщений выключен). |
| Входящие звонки | Входящие звонки, включая полноэкранные оповещения на заблокированном экране. |
| Подключение к облаку | Постоянное уведомление о соединении. |
| Уведомления о создании токенов | Ход создания NFT из кошелька. |
Вызовы. Голосовые и видеозвонки — только один на один. Звук и видео шифруются между двумя устройствами. В первый раз приложение запрашивает доступ к микрофону (и камере для видео).
Как ответить на звонок
- Входящий звонок отображается как Входящий звонок Parlons (или Входящий видеозвонок Parlons), на заблокированном экране — во весь экран, если Android это разрешает.
- Нажмите Ответить, чтобы принять звонок, или Отклонить, чтобы отказаться.
- Во время звонка используйте Выкл. микр. / Вкл. микр., Динамик / Телефон, Камера (переключение камеры, только видео) и Отбой.
Как позвонить, описано в разделе 6, «Как позвонить контакту».
Если сообщения приходят с опозданием
- Откройте Ещё → Настройки → Это устройство и нажмите Работать в фоновом режиме, если этот пункт виден (раздел 13).
- Убедитесь, что Android разрешает уведомления приложения (Настройки уведомлений в том же разделе).
- Проверьте индикатор состояния. На нём должно быть в сети · N узлов.
- Если на индикаторе недоступен, возможно, остановлен сам аккаунт (раздел 17).
15Аккаунт в других приложениях Parlons
Одним аккаунтом можно управлять из нескольких мест одновременно. Каждое из них — отдельное подключённое устройство со своим ключом.
- iPhone: приложение Parlons (пока недоступно). Когда оно выйдет: отсканируйте или вставьте такое же приглашение; оно подключается к аккаунту так же, как Portal. Каждому следующему устройству нужен свой новый код.
- Браузер на компьютере, где работает аккаунт: веб-панель. Она выглядит как приложение Parlons! (заголовок Parlons!, вкладки «Чаты», «Контакты», «Устройства», «Узел», «Настройки») и работает как локальное устройство аккаунта (раздел 24).
- Терминал: команда
parlons. Устанавливается установщиком одной командой.parlons chats,parlons send <contact key> helloи другие команды из раздела 26 управляют аккаунтом так же, как телефон. - minimaCore Desktop и minimaDesk встраивают ту же панель на свою страницу Parlons для аккаунта, который работает на их узле.
Полное приложение Parlons! для Android — не клиент. Оно хранит собственную личность на телефоне и к аккаунту не подключается. Однако личность можно переносить между ними: резервная копия облачного аккаунта (Создать резервную копию аккаунта…) восстанавливается в приложении Parlons! (личность и контакты). Никогда не запускайте одну и ту же личность в двух местах одновременно (раздел 16).
Как подключить iPhone к тому же аккаунту
Приложение для iPhone пока недоступно. Ниже — шаги на момент его выхода.
- На уже подключённом устройстве откройте Узел → Подключить другое моё устройство и создайте новое приглашение (раздел 10).
- На iPhone откройте приложение Parlons.
- Нажмите Сканировать QR-код аккаунта и отсканируйте приглашение или вставьте его.
- Завершите подключение в приложении на iPhone. Действующий код подключает сразу.
Ваш аккаунт и приложения других людей. Любой, кто пользуется любым приложением Parlons или классическим узлом Minima с Maxima, может добавить ваш адрес MAX# в контакты и написать вам.
16Резервные копии, восстановление и перенос
Ваши 24 слова
Каждый аккаунт — это 24 слова. Адрес аккаунта получается из них, поэтому одни и те же слова в любом месте дают один и тот же адрес. Они же — кошелёк Minima: любой, кто их прочитает, сможет потратить всё, что на них хранится.
Как посмотреть свои 24 слова
- Убедитесь, что никто не видит ваш экран.
- Откройте Ещё → Настройки и в разделе Ключи и резервные копии нажмите Показать сид-фразу.
- Окно Показать сид-фразу? предупреждает: Эта фраза управляет вашей личностью Parlons. Она может отличаться от фразы кошелька сервера. Убедитесь, что никто не смотрит. Фраза передаётся на телефон по зашифрованному каналу. Нажмите Показать.
- Появится Ваши 24 слова. Запишите их на бумаге.
- Нажмите Закрыть. Если вместо этого нажать Копировать, приложение покажет Скопировано — буфер обмена очистится через 60 секунд.
Фраза личности и фраза кошелька могут различаться, например после Сменить фразу кошелька… на Parlons Node или после импорта личности. Храните обе в надёжном месте.
Запишите слова на бумаге и храните её вне сети. Никогда не фотографируйте их, не отправляйте по почте и не вставляйте в чат.
Как создать резервную копию всего аккаунта
- Откройте Ещё → Настройки и в разделе Ключи и резервные копии нажмите Создать резервную копию аккаунта….
- В окне Создать резервную копию аккаунта введите парольную фразу в поле Парольная фраза (не менее 6 символов) и ещё раз в поле Повторите парольную фразу. Если вы её потеряете, восстановить её будет невозможно.
- Нажмите Создать резервную копию.
- Приложение покажет Создание зашифрованной резервной копии…, затем спросит, куда сохранить файл
.pbk. - Сохраните его в надёжном месте. Резервная копия сохранена подтверждает сохранение. (Если слишком долго не выбирать место, приложение покажет Срок хранения резервной копии истёк — экспортируйте снова.)
Копия шифруется вашей парольной фразой до отправки с узла. Она содержит личность, подключённые устройства, настройки, контакты и историю чатов в том же формате .pbk, который читает приложение на телефоне. Медиафайлы и содержимое приватных файлов не включаются. В терминале такой же файл создаётся командой parlons backup <file.pbk>.
Как восстановить аккаунт на своём компьютере
- Создайте резервную копию (см. выше) или используйте уже имеющуюся.
- На компьютере, где будет работать аккаунт, восстановите копию в пустую папку данных с помощью
--restoreдо запуска аккаунта. Точные команды — в разделе 19, «Перенос аккаунта на другой компьютер». - Окончательно остановите старую копию.
Адрес не меняется, поэтому все подключённые устройства переподключатся сами.
Как импортировать личность на Parlons Node из приложения
Для этого нужен Parlons Node 0.2.117 или новее. На других хостах приложение покажет Для импорта из этого приложения обновите Parlons Node до версии 0.2.117 или новее.
- Сначала остановите личность на исходном устройстве или сервере.
- Откройте Ещё → Настройки и в разделе Ключи и резервные копии нажмите Импортировать личность или резервную копию….
- Выберите, что импортировать:
- введите Фраза восстановления; или
- выберите Произвольная фраза (Minima anyphrase) для нестандартной фразы (все пробелы и заглавные буквы сохраняются); или
- нажмите Выбрать резервную копию .pbk…, выберите файл и введите его Пароль резервной копии.
- Нажмите Проверить импорт. Проверьте новый адрес.
- Отметьте Я остановил работу этой личности на исходном устройстве или сервере.
- Нажмите Импортировать и перезапустить. Сервер перезапустится (Сервер перезапускается. Подключение к импортированной личности…), и приложение переподключится (Личность импортирована, соединение установлено).
Это заменяет личность Parlons, контакты и чаты на сервере. Его кошелёк Minima и фраза кошелька не меняются. Предыдущий аккаунт сохраняется на сервере для восстановления. Если соединение прервётся, снова откройте экран и нажмите Продолжить / проверить импорт. Отменить подготовленный импорт отменяет импорт до подтверждения. Ваша фраза никогда не сохраняется на телефоне.
Одна личность — одно место
Запускайте каждую личность одновременно только в одном месте. Две копии запутают ваших контактов и могут повторно использовать ключи кошелька, которые нельзя использовать повторно. Переносите, а не копируйте: окончательно остановите старую копию, прежде чем запускать новую.
Как уйти с хоста
Уйти можно в любой момент. Ваш адрес не меняется, поэтому контакты и подключённые устройства продолжат работать.
- Создайте резервную копию всего аккаунта (см. выше) и сохраните парольную фразу.
- Попросите хост приостановить старую копию (раздел 22, «Приостановка и возобновление»), чтобы личность никогда не работала в двух местах.
- Восстановите копию на своём компьютере и запустите её (раздел 19, «Перенос аккаунта на другой компьютер»).
- Убедитесь, что телефон подключился к новой копии.
- Попросите хост окончательно удалить старую копию.
17Решение проблем для владельцев аккаунтов
| Признак | Что делать |
|---|---|
| Не удалось подключиться: … при подключении или недоступен на индикаторе | Аккаунт не подключён к ретранслятору: он остановлен, нет интернета или он только что запустился. На его компьютере выполните parlons status; на Parlons Node — journalctl -u parlons-node -f; для размещённого аккаунта обратитесь к оператору. |
| Не удалось подключить устройство | Код неверный, уже использован или заменён более новым. Попросите новое приглашение. |
| Запрос на подключение отправлен. Одобрите его с уже подключённого устройства | Вы подключались без кода. Одобрите это устройство с другого подключённого устройства, затем снова откройте приложение. |
| Для приглашения в аккаунт владельца нужен пароль администратора | Хост защищает приглашения владельца. Введите пароль администратора или вместо этого одобрите подключение без кода (раздел 10). |
| Задайте пароль администратора на странице «Устройства» Parlons в приложении хоста… | Пароль администратора ещё никто не задал. См. раздел 23. |
| Размещение на этом сервере ещё не включено / Сервис размещения недоступен | Встроенный хостинг выключен или сервис tenants на хосте остановлен. См. раздел 11 или обратитесь к оператору. |
| В этом аккаунте доступны только чаты, звонки и файлы; кошелёк и управление хостом отключены | Вы в гостевом аккаунте только для общения. |
| Сообщения приходят с опозданием или только при открытом приложении | «Настройки» → «Это устройство» → Работать в фоновом режиме; разрешите уведомления; проверьте индикатор. |
| Галочка не становится двойной | Другое устройство ещё не подтвердило получение. Сообщение ждёт, оно не потеряно. |
| Сообщение не доставлено | Нажмите Подключиться снова в окне или «Контакты» → контакт → «Ещё» → Переподключиться. |
| Кнопка сканирования ничего не делает | Разрешите доступ к камере, когда приложение попросит. |
| Телефон потерян | Отзовите его доступ с другого подключённого устройства (раздел 10). Аккаунт и его история не затрагиваются. |
| Приложение заблокировано после неудачной проверки отпечатка | Разблокировать Parlons Cloud запросит снова; подходит и PIN-код устройства. |
Где искать журналы: «Узел» → Открыть панель управления → Журнал событий (Parlons Node); в остальных случаях обратитесь к тому, кто управляет компьютером (раздел 30).
Часть B. Размещение аккаунтов
18Какой хост вам нужен?
| Что вам нужно | Что использовать | Раздел |
|---|---|---|
| Свой аккаунт на Mac, Linux, Raspberry Pi или компьютере с Windows | Установщик одной командой (get-parlons-cloud.sh / .ps1) | 19 |
| Свой аккаунт на VPS, которым вы управляете с ноутбука, заодно передающий трафик ретранслятора | ops/deploy-parlons-cloud.sh | 20 |
| Аккаунты для нескольких человек на одном сервере с зашифрованными сид-фразами | ops/deploy-parlons-tenants.sh и сервис parlons-tenants | 21 |
| Полный узел Minima со встроенным Parlons | Parlons Node (cloud/NODE-SETUP.md); чтобы размещать друзей, добавьте рядом parlons-tenants | 21, 23 |
| Гостевые аккаунты только для общения внутри вашего аккаунта | Встроенный хостинг (веб-панель или Portal) | 11, 24 |
Любому хосту нужен компьютер, который всегда включён и имеет исходящий доступ в интернет. Отдельному аккаунту не нужны ни домен, ни сертификат TLS, ни обратный прокси. Входящие порты нужны, только если хост также работает как ретранслятор для других.
19Один аккаунт на своём компьютере: установщики одной командой
Как установить на Mac, Linux, Raspberry Pi или VPS
- Откройте терминал на компьютере, где будет работать аккаунт.
- Вставьте эту команду и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | bash - Дождитесь завершения пяти шагов. На последнем экране будут ваш адрес, QR-код приглашения и текст приглашения.
- На телефоне подключите Portal с этим приглашением (раздел 4).
- Сразу создайте резервную копию сид-фразы (см. ниже).
Как установить на Windows 10 или 11
- Откройте PowerShell.
- Вставьте эту команду и нажмите Enter:
irm https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.ps1 | iex - Дождитесь завершения и подключите телефон с выведенным приглашением (раздел 4).
- Создайте резервную копию сид-фразы из
C:\Users\<you>\.parlons\seed.txt(см. ниже).
В самом скрипте для Windows сказано, что авторы ещё не проверяли его на компьютере с Windows. Сообщайте о любых проблемах.
Что делает установщик
Установщик:
- устанавливает Java 11 или новее, если её нет (Homebrew на Mac, apt, dnf, apk или pacman в Linux, winget в Windows), а также
qrencode, где это возможно; - скачивает новейший релиз
parlons-cloudс GitHub и проверяет его контрольную сумму SHA-256; - регистрирует сервис, который переживает перезагрузки: агент launchd на Mac, пользовательский модуль systemd (с linger) или системный модуль в Linux, задачу планировщика с именем Parlons Cloud в Windows;
- запускает аккаунт, подключает этот терминал как первое устройство и создаёт новый код;
- выводит адрес аккаунта, приглашение для телефона (текстом и QR-кодом) и команду
parlons.
В конце вывод выглядит так (адрес и приглашение выводятся полностью):
Your Parlons account is running (Parlons Cloud 0.11.124).
Address (share it; it never changes):
<the full MAX# address>
Pair your phone: open the Parlons Cloud app, tap Scan account QR, point it at this:
<a QR code, drawn in the terminal>
or paste the invite (the code half works once):
<the full invite>
BACK UP YOUR SEED NOW: ~/.parlons/seed.txt - it is your identity AND a wallet.
В тексте установщика написано Scan account QR — это надпись из приложения для iPhone. В Portal для Android кнопка называется Сканировать QR-код подключения.
Параметры
| Параметр | Действие |
|---|---|
… | bash -s -- --no-relay (Windows: .\get-parlons-cloud.ps1 -NoRelay) | Только аккаунт: не работать ретранслятором для других. По умолчанию аккаунт также запускает ретранслятор на TCP-порту 9501. |
… | bash -s -- --update | Скачать новейший релиз и перезапустить. Повторный запуск команды установки делает то же самое. |
… | bash -s -- --uninstall (Windows: -Uninstall) | Остановить и удалить сервис. Данные аккаунта сохраняются. |
PARLONS_DATA=<dir> | Папка данных (по умолчанию ~/.parlons). |
PARLONS_HEAP=<size> | Куча Java (по умолчанию 256m). |
По умолчанию аккаунт запускается с --relay-port 9501 --no-direct: он ретранслирует трафик других на порту 9501, а в Linux установщик открывает 9501 в ufw, если ufw активен. Если порт 9501 недоступен извне, ничего не ломается: аккаунт всё равно работает через сеть ретрансляторов, просто не передаёт чужие сообщения. С --no-relay он вообще не открывает входящих портов. Его веб-панель слушает 127.0.0.1:9587 (раздел 24).
Как сделать ретранслятор доступным для других
- Установите как обычно; ретранслятор включён по умолчанию.
- Убедитесь, что TCP-порт 9501 доступен из интернета: разрешите его в брандмауэре облачного провайдера или пробросьте на домашнем роутере.
- В Linux установщик открывает 9501 в ufw, если ufw активен.
- Проверьте порт с другого компьютера (раздел 28).
Как установить без ретранслятора
curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | bash -s -- --no-relay
В Windows скачайте get-parlons-cloud.ps1 и выполните .\get-parlons-cloud.ps1 -NoRelay.
Как использовать другую папку данных или размер кучи
- Задайте переменную перед
bash:curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | PARLONS_DATA=/srv/parlons PARLONS_HEAP=512m bash - Используйте те же переменные при каждом следующем запуске установщика, чтобы он находил ту же папку.
Как обновить
- Выполните:
parlons updateИли снова выполните команду установки. В Windows снова выполните команду установки.
- Установщик скачает новейший релиз, проверит его SHA-256 и перезапустит аккаунт.
- Убедитесь, что аккаунт снова работает:
parlons status
Как удалить сервис, сохранив данные
- Выполните:
parlons uninstallВ Windows выполните
.\get-parlons-cloud.ps1 -Uninstall. - Сервис остановится и будет удалён. Данные аккаунта останутся в папке данных.
Повседневные задачи
| Mac / Linux | Windows | |
|---|---|---|
| Работает ли? | parlons status | parlons status |
| Смотреть журнал | parlons log | parlons log |
| Остановить / запустить / перезапустить | parlons stop, parlons start, parlons restart | parlons stop, parlons start |
| Обновить | parlons update (или снова выполните команду установки) | снова выполните команду установки |
| Удалить сервис, сохранив данные | parlons uninstall | .\get-parlons-cloud.ps1 -Uninstall |
| Открыть веб-панель | parlons panel | parlons panel |
| Где что хранится | ~/.parlons (данные), ~/.parlons/bin (программа), ~/.parlons-client (собственный ключ устройства терминала) | %USERPROFILE%\.parlons, %USERPROFILE%\.parlons-client |
Чтобы удалить сам аккаунт (личность, чаты, сид-фразу), программа удаления предложит вам вручную удалить папку данных и ~/.parlons-client. Сначала создайте резервную копию: удаление сид-фразы удаляет личность и все средства, которые на ней хранятся.
Резервная копия сид-фразы
~/.parlons/seed.txt (в Windows C:\Users\<you>\.parlons\seed.txt) содержит 24 слова. Установщик никогда их не выводит.
- Убедитесь, что никто не видит ваш экран.
- Выведите слова:
cat ~/.parlons/seed.txtИли в любом подключённом терминале выполните
parlons seed. - Перепишите их на бумагу. Храните её в надёжном месте вне сети.
- Очистите терминал.
Перенос аккаунта на другой компьютер
- На старом компьютере выполните
parlons backup my-account.pbkи задайте парольную фразу. - Скопируйте файл на новый компьютер.
- На новом компьютере восстановите его до запуска установщика в ту папку, которую будет использовать установщик:
mkdir -p ~/.parlons curl -fsSL -o ~/parlons-cloud.jar "$(curl -fsSL https://api.github.com/repos/eurobuddha/maxima/releases | grep -oE 'https://github.com/[^"]+/cloud-v[^"]+/parlons-cloud-[0-9.]+\.jar' | head -1)" java -jar ~/parlons-cloud.jar --data ~/.parlons --restore my-account.pbk curl -fsSL https://raw.githubusercontent.com/eurobuddha/maxima/main/ops/get-parlons-cloud.sh | bash--restoreзапрашивает парольную фразу в консоли и отказывается работать поверх существующей личности. Он выводит, что восстановлено (имя, контакты, счётчики использования ключей, подключённые устройства и записи чатов). - Окончательно остановите старый компьютер: выполните там
parlons uninstall, а его данные храните только как холодную резервную копию.
Подключённые устройства переподключатся сами, потому что адрес тот же.
20Один аккаунт на VPS: deploy-parlons-cloud.sh
Как развернуть аккаунт на VPS
- На своём компьютере получите копию репозитория.
- Соберите jar или положите выпущенный
parlons-cloud-0.11.124.jarвdist/:./gradlew :cloud:fatJar - Убедитесь, что можете подключиться к VPS по SSH как root без запроса пароля.
- Запустите скрипт развёртывания:
ops/deploy-parlons-cloud.sh root@vps.example.com --port 9501 --name "My account" - В конце скрипт выведет адрес аккаунта и одноразовый код подключения. Подключите с ними телефон (раздел 4).
- Один раз прочитайте сид-фразу и сохраните её вне сети:
ssh root@vps.example.com 'cat /var/lib/maxima/seed.txt' - Разрешите порт ретранслятора в брандмауэре облачного провайдера и проверьте его с другого компьютера (раздел 28).
Чтобы обновить позже, снова выполните ту же команду. Установка и обновление — одна и та же операция.
Параметры
--port N (порт ретранслятора, по умолчанию 9501), --name "…" (отображаемое имя), --jar FILE (по умолчанию новейший dist/parlons-cloud-*.jar), --heap 256m, --memmax 1024M, --blob 1024 (хранилище медиа ретранслятора в МБ), --peers h:p,h:p (участники сети для ретранслятора).
Скрипт идемпотентен: установка и обновление выполняются одной командой. По порядку он:
- устанавливает Java без графического интерфейса, если её нет на сервере;
- создаёт непривилегированного пользователя
maximaи/var/lib/maxima(режим 700); - загружает jar в
/opt/maxima, проверяет его SHA-256 и только после этого направляет на него символическую ссылкуparlons-cloud.jar; - записывает защищённый
parlons-cloud.service(в песочнице, с ограничением памяти, фильтрацией seccomp и блокировкой адресов облачных метаданных), который запускает--data /var/lib/maxima --relay-port <port> --no-direct --blobstore <MB>; - открывает порт ретранслятора в ufw или firewalld, если один из них активен;
- запускает сервис и проверяет, что он слушает порт;
- выводит адрес аккаунта и одноразовый код подключения.
Сид-фразу он никогда не выводит. Прочитайте её один раз по SSH, как в шаге 6 выше.
Если скрипт не вывел адрес или код
- Подключитесь к VPS по SSH.
- Найдите адрес в журнале:
journalctl -u parlons-cloud | grep 'permanent address' | tail -1 - Если какое-то устройство уже подключено, начального кода на диске нет. Создайте новый код с подключённого устройства (раздел 10).
Ручная установка (четыре команды, минимальный модуль) описана в cloud/SETUP.md. Учтите: когда аккаунт работает под systemd, его вывод идёт в журнал, и программа намеренно никогда не выводит туда новую сид-фразу. Если хотите увидеть слова при первом запуске, один раз запустите программу в обычном режиме или прочитайте seed.txt позже.
21Много аккаунтов: сервис parlons-tenants
Хост с несколькими аккаунтами держит в одном процессе по одному постоянно работающему аккаунту на каждую папку внутри одного каталога. Он предназначен для тех, кто не будет запускать свой сервер: пользователя iPhone, друга, рецензента. У каждого tenant своя личность, устройства, чаты и резервная копия, и он может уйти в любой момент, забрав зашифрованную копию.
Как установить хост tenants
Нужен постоянно включённый компьютер с Linux (512 МБ ОЗУ хватает примерно на десять аккаунтов) и репозиторий на вашем компьютере.
- На своём компьютере соберите jar (
./gradlew :cloud:fatJar) или положитеparlons-cloud-0.11.124.jarвdist/. - Убедитесь, что можете подключиться к серверу по SSH как root с ключом (скрипт запускает SSH в пакетном режиме и не может ответить на запрос пароля).
- Выполните:
ops/deploy-parlons-tenants.sh root@your.box - Дождитесь, пока скрипт подтвердит, что хост работает и опрашивает папки tenants.
- Скопируйте
/etc/parlons-tenants.envс сервера в надёжное хранилище вне сети, отдельно от резервных копий данных:scp root@your.box:/etc/parlons-tenants.env ./parlons-tenants.env.backup - Создайте первый tenant (раздел 22).
Параметры
| Параметр | По умолчанию | Значение |
|---|---|---|
--jar FILE | новейший dist/parlons-cloud-*.jar, иначе cloud/build/libs/parlons-cloud.jar | Устанавливаемый jar. |
--heap SIZE | 512m | Куча Java (примерно на десять tenants). |
--memmax SIZE | 768M | Ограничение памяти systemd. |
--dir PATH | /var/lib/parlons-tenants | Каталог tenants (обычный абсолютный путь). |
--peers h:p,h:p | нет | Дополнительные ретрансляторы сети как начальные. |
--manage-from-node | выключено | Подключить к этому сервису интерфейс владельца Parlons Node (0.2.118 или новее) на том же сервере (см. ниже). |
Скрипт:
- устанавливает Java без графического интерфейса, если её нет;
- создаёт пользователя
maximaи каталог tenants (режим 700); - загружает jar в
/opt/maxima, проверяет его SHA-256 и направляет на негоparlons-cloud.jar; - один раз записывает файл с парольной фразой разблокировки
/etc/parlons-tenants.env(только для root, случайное значениеPARLONS_UNLOCK=) и защищённыйparlons-tenants.service; - перезапускает сервис и проверяет, что хост работает и опрашивает папки tenants.
Модуль запускает:
/usr/bin/java -Xmx<heap> -jar /opt/maxima/parlons-cloud.jar \
--tenants /var/lib/parlons-tenants --no-relay --no-direct --panel-port 9597 --unlock env
Поэтому по умолчанию хост не открывает входящих портов (он подключается к сети ретрансляторов только исходящими соединениями) и может работать рядом с Parlons Node на том же сервере. Новые tenants создаются с зашифрованными сид-фразами (seed.enc), потому что задана парольная фраза разблокировки.
Сохраните резервную копию /etc/parlons-tenants.env. Каждый seed.enc зашифрован с её помощью. Без неё зашифрованную сид-фразу открыть нельзя.
Вместе с Parlons Node: --manage-from-node
Используйте это, если на сервере уже работает Parlons Node (0.2.118 или новее) и его владелец должен управлять гостями из Portal.
- Убедитесь, что на сервере установлен
parlons-node. Без него скрипт работать откажется. - Выполните:
ops/deploy-parlons-tenants.sh root@your.box --jar dist/parlons-cloud-0.11.124.jar --manage-from-node - Дождитесь перезапуска обоих сервисов.
- В Portal, подключённом к узлу, откройте Узел и убедитесь, что появилась карточка Размещённые аккаунты с пунктом Управление размещёнными аккаунтами.
Скрипт добавляет дополнительный файл /etc/systemd/system/parlons-node.service.d/hosted-accounts.conf (задаёт PARLONS_HOSTED_DIR равным каталогу tenants и разрешает узлу писать туда), затем перезапускает parlons-node. Существующая командная строка и данные узла сохраняются. Если parlons-node не установлен, скрипт работать откажется. После этого владелец может управлять гостями из Portal: Узел → Размещённые аккаунты → Управление размещёнными аккаунтами (раздел 11), а с сервера — командой sudo parlons-pair --guest <name> (раздел 23).
Веб-панели для tenants
deploy-parlons-tenants.sh записывает в модуль --panel-port 9597. Каждый tenant получает собственную веб-панель на loopback-адресе: первый запустившийся занимает 9597, следующий — 9598 и так далее, в порядке запуска. Диапазон начинается выше 9587, потому что Parlons Node на том же сервере уже занимает 127.0.0.1:9587, порт панели по умолчанию.
В старых модулях был --no-panel, поэтому у их tenants панели не было.
Как дать tenants панели в старом модуле
- Перезапустите скрипт развёртывания. Он перезапишет модуль с
--panel-port 9597:ops/deploy-parlons-tenants.sh root@your.box - Или отредактируйте модуль на сервере вручную. Сначала сохраните копию:
cp /etc/systemd/system/parlons-tenants.service /etc/systemd/system/parlons-tenants.service.before-panels systemctl edit --full parlons-tenantsВ
ExecStartзамените--no-panelна--panel-port 9597. Затем:systemctl daemon-reload && systemctl restart parlons-tenants
Как узнать порт панели tenant
- На сервере прочитайте файл
panel.txtэтого tenant:sudo cat /var/lib/parlons-tenants/alice/panel.txt - Используйте этот порт. Не угадывайте: номера выдаются по порядку и не используются повторно, пока работает хост, поэтому tenant, который был приостановлен и возобновлён, получает следующий номер.
Если порт панели занят, панель этого tenant не запускается (в журнале будет web panel could NOT start on 127.0.0.1:<port>). Сам аккаунт продолжает работать. Повторный запуск deploy-parlons-tenants.sh перезаписывает модуль, поэтому все ручные правки теряются и их нужно сделать снова.
Как открыть панель tenant со своего компьютера, описано в разделе 24.
Ёмкость
Каждый tenant подключается примерно к трём ретрансляторам сети с одного IP-адреса хоста, а ретрансляторы ограничивают число незарегистрированных подключений с одного IP (по умолчанию 32). Рассчитывайте примерно на десять tenants на хост. Лимит на создание размещённых аккаунтов по умолчанию — десять, включая приостановленные (изменяется параметром -Dparlons.hosted.limit=<n>).
22Создание, приостановка и удаление гостевых аккаунтов
Создание
Как создать tenant со своего компьютера
- Выберите имя: от 1 до 64 символов — буквы, цифры,
.,_и-, начинается с буквы или цифры. - Выполните:
ops/tenant-new.sh root@your.box aliceДобавьте
--dir <path>, если вы не использовали каталог tenants по умолчанию. - Подождите. Скрипт выполняет на сервере
parlons-cloud --tenant-newот имени пользователяmaxima. Он выводит waiting for hosted account alice to connect… и до 60 секунд ждёт, пока работающий хост запустит новый аккаунт. - Скопируйте выведенное приглашение и отправьте его лично пользователю аккаунта или превратите его в QR-код любым генератором QR-кодов.
Он выводит полностью:
address: <the full MAX# address>
pair code: <XXXX-XXXX-XXXX> (one-time)
invite: <the full invite>
A valid invite pairs immediately. Share it only with this account's user.
Новые аккаунты запускаются в течение пяти секунд; больше ничего не перезапускается.
Как создать tenant прямо на сервере
- Подключитесь к серверу по SSH как root.
- Выполните:
runuser -u maxima -- java -jar /opt/maxima/parlons-cloud.jar --tenant-new /var/lib/parlons-tenants alice - Отправьте выведенное приглашение лично пользователю аккаунта.
Другие способы создать tenant: sudo parlons-pair --guest alice на Parlons Node с --manage-from-node (раздел 23) или Portal владельца (раздел 11).
Приостановка и возобновление
Приостановленные аккаунты сохраняют личность и чаты. Кнопки Приостановить работу аккаунта / Возобновить работу аккаунта в Portal владельца делают то же самое.
Как приостановить tenant
- Подключитесь к серверу по SSH.
- Создайте файл
.stopэтого tenant:touch /var/lib/parlons-tenants/alice/.stop - В течение пяти секунд в журнале появится
tenant alice: stopped (.stop).
Как возобновить tenant
- Удалите файл
.stop:rm /var/lib/parlons-tenants/alice/.stop - В течение пяти секунд в журнале появится
hot-add: alice, и tenant снова запустится.
Новое приглашение для существующего tenant
Текущее приглашение tenant лежит в /var/lib/parlons-tenants/<name>/invite.txt, пока есть действующий код (pair-code.txt). После использования оба файла удаляются.
Как выдать tenant новое приглашение
Используйте один из способов:
- Со своего компьютера. Снова выполните команду создания для существующего имени:
ops/tenant-new.sh root@your.box aliceДля существующей папки она не заменяет личность, а повторно выдаёт действующий код или создаёт новый.
- С собственного устройства tenant. Tenant открывает Узел → Подключить другое моё устройство в своём Portal. У tenants на хосте
parlons-tenantsнет пароля администратора, поэтому код создаётся сразу. - Из Portal владельца (с
--manage-from-node): Узел → Управление размещёнными аккаунтами, нажмите на аккаунт, затем Показать приглашение.
Как прочитать действующее приглашение на сервере
- Подключитесь к серверу по SSH.
- Выполните:
sudo cat /var/lib/parlons-tenants/alice/invite.txtЕсли файла нет, код уже использован. Выдайте новое приглашение (см. выше).
Восстановление tenant из резервной копии
Хост запускает любую новую папку в течение пяти секунд, а папка без сид-фразы получает новую личность. --restore записывает seed.txt в последнюю очередь. Поэтому восстанавливайте во временную папку вне каталога tenants, а затем перемещайте её внутрь.
- Скопируйте файл
.pbkна сервер туда, где его сможет прочитать пользовательmaxima. - Выберите имя tenant, которого ещё нет. Используйте временный путь в той же файловой системе, что и каталог tenants.
- В интерактивном сеансе SSH (
--restoreзапрашивает парольную фразу в консоли) выполните:sudo install -d -o maxima -g maxima -m 700 /var/lib/parlons-restore-alice sudo runuser -u maxima -- java -jar /opt/maxima/parlons-cloud.jar --data /var/lib/parlons-restore-alice --restore /path/alice.pbk - Когда попросят, введите парольную фразу резервной копии. Команда выведет, что восстановлено.
- Переместите папку:
sudo mv /var/lib/parlons-restore-alice /var/lib/parlons-tenants/alice - В течение пяти секунд хост запустит её с восстановленной личностью.
Восстановленный seed.txt хранится открытым текстом (режим 0600). Чтобы зашифровать его, выполните следующую инструкцию.
Шифрование существующих открытых сид-фраз
- Убедитесь, что никто не видит ваш экран, и прочитайте парольную фразу разблокировки. Она понадобится в шаге 3:
sudo grep PARLONS_UNLOCK /etc/parlons-tenants.env - Остановите хост:
systemctl stop parlons-tenants - В интерактивном сеансе SSH запустите шифрование и, когда попросят, введите ту же парольную фразу, что и в
PARLONS_UNLOCK:sudo runuser -u maxima -- java -jar /opt/maxima/parlons-cloud.jar --tenants /var/lib/parlons-tenants --unlock prompt --encrypt-seeds - Снова запустите хост:
systemctl start parlons-tenants
Каждый seed.txt превращается в seed.enc. Каждый проверяется до удаления открытого текста.
Удаление tenant
Команды удаления нет. Папка tenant содержит ключи аккаунта: обращайтесь с ней как с кошельком.
- Приостановите tenant (
touch /var/lib/parlons-tenants/alice/.stop). - Убедитесь, что у человека есть резервная копия или аккаунт ему больше не нужен.
- Переместите папку из каталога tenants:
sudo mv /var/lib/parlons-tenants/alice /var/lib/parlons-removed-alice - Храните её как холодную резервную копию или сотрите, когда будете уверены.
23Приглашения владельца и гостей с сервера
Пароль администратора для подключения
Приглашения владельца (коды, дающие полный контроль над аккаунтом владельца) защищены паролем администратора для подключения на хостах с сервисом пароля: отдельном аккаунте parlons-cloud, Parlons Node 0.2.118 или новее и в настольных приложениях-узлах. Для гостевых приглашений он не нужен.
- Длина — от 10 до 1024 символов.
- Хост хранит только проверочные данные (зашифрованные с помощью scrypt и AES-GCM) в файле
.admin-pairing-passwordв папке данных аккаунта; сам пароль он никогда не хранит. - После каждой попытки хост ждёт две секунды, прежде чем принять следующую.
- Задать или изменить пароль можно только локально: в веб-панели хоста, на странице устройств Parlons в настольных приложениях или в командной строке. Удалённого сброса пароля нет.
- Существующие устройства владельца остаются владельцами, когда вы добавляете пароль.
Как задать пароль администратора на Parlons Node
- Откройте интерактивный сеанс SSH на сервере узла.
- Выполните:
sudo parlons-pair --set-admin-password - На запрос
Admin password (Enter for a guest invitation):введите новый пароль (от 10 до 1024 символов). На запросConfirm admin password:введите его ещё раз. - Команда выведет Admin pairing password saved.
Без интерактивного терминала команда остановится с сообщением Use an interactive SSH terminal (ssh -t) for the admin password.
Как задать пароль администратора в веб-панели
- Откройте веб-панель аккаунта (раздел 24).
- Откройте Устройства и найдите Задать пароль администратора (или Изменить пароль администратора, если пароль уже задан).
- Чтобы изменить существующий пароль, введите его в поле Текущий пароль.
- Введите новый пароль в поле Новый пароль и ещё раз в поле Подтвердите новый пароль. Он должен быть не короче 10 символов.
- Нажмите Сохранить пароль. Панель подтвердит: Пароль администратора сохранён. Теперь можно создать приглашение для устройства владельца.
Как задать пароль администратора в командной строке
- Откройте интерактивный терминал на компьютере, где работает аккаунт.
- Для аккаунта, развёрнутого через
deploy-parlons-cloud.sh, выполните:sudo runuser -u maxima -- java -cp /opt/maxima/parlons-cloud.jar com.eurobuddha.maxima.cloud.AdminPairingPassword set /var/lib/maximaДля аккаунта, установленного одной командой, выполните от своего имени:
java -cp ~/.parlons/bin/parlons-cloud.jar com.eurobuddha.maxima.cloud.AdminPairingPassword set ~/.parlons - Введите пароль дважды. Команда выведет Admin pairing password saved.
В настольных приложениях-узлах задайте пароль на странице устройств Parlons в приложении.
sudo parlons-pair
parlons-pair устанавливается вместе с Parlons Node и показывает то же приглашение, что и вкладка «Узел» в приложении.
| Команда | Что делает |
|---|---|
sudo parlons-pair | Запрашивает пароль администратора. Введите его для приглашения владельца или просто нажмите Enter для гостевого приглашения, затем введите имя гостевого аккаунта. |
sudo parlons-pair --admin | Приглашение владельца. При неверном пароле команда завершается ошибкой и код не выдаёт. |
sudo parlons-pair --guest alice | Создаёт (или использует существующий) размещённый аккаунт alice в каталоге tenants и выводит его приглашение. Нужен сервис размещённых аккаунтов (раздел 21). |
sudo parlons-pair --set-admin-password | Задаёт пароль администратора. |
--data DIR | Каталог данных аккаунта владельца (по умолчанию /var/lib/parlons-node). |
--tenants-dir DIR | Каталог tenants (по умолчанию PARLONS_HOSTED_DIR, иначе /var/lib/parlons-tenants). |
Переопределения через переменные окружения: PARLONS_HOSTED_DIR, PARLONS_NODE_JAR (по умолчанию /opt/maxima/parlons-node.jar), PARLONS_CLOUD_JAR (по умолчанию /opt/maxima/parlons-cloud.jar).
Команда выводит полный адрес MAX#, одноразовый код, QR-код (если установлен qrencode) и полное приглашение. Если неиспользованного кода нет, она так и сообщает; запустите её снова, чтобы получить новый. Израсходованные коды никогда не восстанавливаются из старых журналов или устаревших файлов.
Как создать приглашение владельца на Parlons Node
- Откройте интерактивный сеанс SSH на сервере узла.
- Выполните:
sudo parlons-pair --admin - Введите пароль администратора на запрос
Admin password (Enter for a guest invitation):. При неверном пароле появится Incorrect admin password, и код не будет выдан. - Отсканируйте выведенный QR-код в Portal (Сканировать QR-код подключения) или вставьте полное приглашение (раздел 4).
Как создать гостевое приглашение на Parlons Node
Для этого нужен сервис размещённых аккаунтов (--manage-from-node, раздел 21).
- Откройте сеанс SSH на сервере узла.
- Выполните команду с именем гостевого аккаунта:
sudo parlons-pair --guest alice - Команда создаст размещённый аккаунт
alice(или использует существующий) и выведет его приглашение. - Отправьте приглашение лично этому человеку.
Запуск sudo parlons-pair без параметров запрашивает пароль администратора. Введите его для приглашения владельца. Или просто нажмите Enter, затем введите имя гостя на запрос Hosted account name: для гостевого приглашения.
Откуда ещё берутся приглашения
| Источник | Приглашение владельца | Гостевое приглашение |
|---|---|---|
| Portal, Узел → Подключить другое моё устройство | да (пароль администратора, если он есть на хосте) | оставьте пароль пустым → размещённые аккаунты |
| Portal, Узел → Управление размещёнными аккаунтами → Показать приглашение | нет | да |
| Веб-панель, Устройства → Новый код подключения | да (поле пароля администратора, если он есть на хосте) | нет |
| Веб-панель, Устройства → Размещённые аккаунты → Показать приглашение | нет | да |
ops/tenant-new.sh, --tenant-new | нет | да (собственное приглашение этого tenant) |
Начальный код при первом запуске (pair-code.txt) | да, для самого первого устройства | не применимо |
Как создать приглашение владельца командой parlons
- В терминале, где
parlonsподключён к аккаунту, выполните:parlons newcode - Если у хоста есть пароль администратора, команда запросит его в консоли строкой
Admin password:. Введите его. Пароль никогда не передаётся в командной строке. - Команда выведет строки
code :иinvite :. Отсканируйте или вставьте приглашение в приложении Parlons Cloud. Код срабатывает один раз.
Для запроса пароля нужна интерактивная консоль. Без неё (например, из скрипта) команда завершится ошибкой Admin password required for an owner-account invitation.
24Локальная веб-панель
Каждый хост аккаунта предоставляет веб-панель и API для своего аккаунта только на loopback-адресе: http://127.0.0.1:<port>/. Порт по умолчанию — 9587. Это тот же интерфейс, что и у подключённого телефона, но в браузере на том же компьютере и без подключения через сеть.
Как открыть
Ссылка один раз выполняет вход в браузере. Аккаунт сразу записывает следующую неиспользованную ссылку в panel-ticket.txt. Если открыть уже использованную ссылку, появится This link has been used or has expired.
Как открыть панель на компьютере, где работает аккаунт
- В терминале на этом компьютере выполните:
parlons panelКоманда откроет браузер по одноразовой ссылке.
- Или откройте ссылку из
<data>/panel-ticket.txt(например,~/.parlons/panel-ticket.txt) самостоятельно.
Подключённое устройство на другом компьютере тоже может запросить у аккаунта ссылку, действующую 60 секунд. parlons panel делает это, если папка аккаунта находится не на этом компьютере.
Как открыть панель сервера со своего компьютера
Панель отклоняет любой Host, кроме 127.0.0.1:<port> или localhost:<port>. Поэтому используйте SSH-туннель с одинаковым номером порта на обоих концах.
- Узнайте порт. Отдельный аккаунт использует 9587. Для tenant прочитайте его
panel.txt(раздел 21). - На своём компьютере откройте туннель и не закрывайте его:
ssh -L 9587:127.0.0.1:9587 root@your.boxДля первого tenant на сервере с узлом используйте 9597 на обоих концах:
ssh -L 9597:127.0.0.1:9597 root@your.box - В этом сеансе SSH выведите одноразовую ссылку. Для отдельного аккаунта, развёрнутого через
deploy-parlons-cloud.sh:sudo cat /var/lib/maxima/panel-ticket.txtДля tenant:
sudo cat /var/lib/parlons-tenants/alice/panel-ticket.txt - Скопируйте ссылку и откройте её в браузере на своём компьютере.
Что в ней есть
В заголовке — Parlons! с версией и На базе Maxima, индикатор состояния и кнопки «Тема», «Поиск» и «Ещё». Вкладки:
- Чаты: переписки, число непрочитанных, поиск, новая группа, окно чата с фото, голосовыми сообщениями, файлами и звонками.
- Контакты: добавление, ваш адрес и QR-код, переименование, определение адреса, удаление, сведения.
- Устройства:
- Подключить своё устройство: Это даёт доступ к текущему аккаунту. Чтобы пригласить человека в отдельный аккаунт, используйте раздел «Размещённые аккаунты» ниже. Новый код подключения показывает приглашение QR-кодом и текстом с кнопкой копирования. Если у хоста есть пароль администратора, над кнопкой появляется поле Пароль администратора, и кнопка остаётся неактивной, пока пароль не задан.
- Задать пароль администратора / Изменить пароль администратора (только на хостах с сервисом пароля): «Текущий пароль», «Новый пароль», «Подтвердите новый пароль» (не менее 10 символов), Сохранить пароль.
- Размещённые аккаунты (если аккаунт управляет хостом): Включить хостинг / Остановить хостинг, Обновить, поле Имя аккаунта с кнопкой Создать аккаунт и строка для каждого аккаунта с его состоянием, Показать приглашение и Приостановить / Возобновить. Приглашение показывается QR-кодом и полным текстом с кнопкой Копировать приглашение гостя.
- Устройства: все подключённые устройства с полными ключами и кнопкой Отозвать; устройства в разделе Ожидание разрешения с кнопкой Разрешить. Сама панель указана как этот компьютер.
- Узел: аккаунт (имя, версия, время работы, подключённые ретрансляторы, участники сети, подключённые устройства, почтовый ящик и исходящие, полный постоянный адрес), Ваш ретранслятор, подсказка Проброс портов, когда работает ретранслятор, Ретрансляторы (добавить
host:portили текст QR-кода ретранслятора, отключить, Использовать встроенный список ретрансляторов), Ретранслятор каталога (Закрепить лучший ретранслятор, Очистить, Опубликовать заново) и Журнал. - Настройки: язык, профиль (Ваше имя), подключённые приложения (minimaDocs), конфиденциальность (Отчёты о прочтении), оформление и Эта панель (Открыть в браузере, Выйти).
Задачи в панели
Как подключить своё устройство из панели
- Нажмите Устройства.
- В разделе Подключить своё устройство введите Пароль администратора, если поле показано.
- Нажмите Новый код подключения. Панель покажет Новый код создан и приглашение QR-кодом и текстом.
- Отсканируйте QR-код в Portal (Сканировать QR-код подключения) или нажмите кнопку копирования и вставьте приглашение на новом устройстве.
Как одобрить или отозвать устройство в панели
- Нажмите Устройства.
- В разделе Ожидание разрешения нажмите Разрешить рядом с устройством, которое вы узнаёте. Панель покажет Одобрено.
- Чтобы отключить устройство, нажмите Отозвать рядом с ним и подтвердите Отозвать доступ у этого устройства? Оно потеряет доступ к аккаунту. Панель покажет Доступ отозван.
Как разместить аккаунт друга из панели
- Нажмите Устройства и прокрутите до раздела Размещённые аккаунты.
- Только для встроенного хостинга: нажмите Включить хостинг и подтвердите. Сначала задайте пароль администратора.
- Введите имя в поле Имя аккаунта (например, alice) и нажмите Создать аккаунт. Панель сообщит: Аккаунт создан. Обновите через несколько секунд. Когда он запустится, выберите «Показать приглашение».
- Нажимайте Обновить, пока состояние аккаунта не станет работает.
- Нажмите Показать приглашение. Приглашение появится QR-кодом и полным текстом.
- Нажмите Копировать приглашение гостя и отправьте его лично этому человеку.
Чтобы приостановить аккаунт, нажмите Приостановить в его строке и подтвердите. Возобновить возвращает его. Остановить хостинг отключает от сети все встроенные гостевые аккаунты; их личности и чаты сохраняются.
Как добавить или удалить ретранслятор в панели
- Нажмите Узел и прокрутите до раздела Ретрансляторы.
- Введите в поле
host:port(например,relay.example.com:9501) или вставьте текст QR-кода ретранслятора и нажмите Добавить. - Чтобы удалить один из своих ретрансляторов, нажмите Удалить в его строке. Панель покажет Отключён.
- Переключите Использовать встроенный список ретрансляторов, чтобы включить или выключить встроенный список.
Как закрепить ретранслятор каталога в панели
- Нажмите Узел и прокрутите до раздела Ретранслятор каталога.
- Нажмите Закрепить лучший ретранслятор. В строке ниже появится закреплён: … с ретранслятором.
- Очистить снимает закрепление. Опубликовать заново сразу заново публикует вашу запись в каталоге.
Как выйти из панели в браузере
- Нажмите Настройки и прокрутите до раздела Эта панель.
- Нажмите Выйти. Чтобы вернуться, откройте новую одноразовую ссылку.
Чего панель не делает
Сид-фраза, резервная копия, отправка из кошелька, платежи, консоль узла и размещение NFT в панели недоступны. Cookie на компьютере защищён хуже, чем телефон у вас в руке: всё это остаётся на подключённых телефонах и в командной строке.
Безопасность панели
- Она слушает только
127.0.0.1. - Ссылка-билет превращается в сеансовый cookie с атрибутами HttpOnly и SameSite=Strict (неактивные сеансы истекают через семь дней).
- Запросы с чужим
Host(DNS rebinding) или чужимOriginотклоняются; вызывать можно только методы аккаунта из разрешённого списка. - Для аккаунта панель — локальное устройство. Если отозвать этот компьютер с любого телефона, доступ к панели будет закрыт. Чтобы снова включить отозванную панель, остановите аккаунт, удалите
<data>/local-device.keyи запустите его снова. - Любой, кто может прочитать
panel-ticket.txt, может открыть панель. У файла режим 0600; не меняйте его.
--no-panel отключает панель. --panel-port <n> переносит её на другой порт.
25Справочник по параметрам командной строки
java -jar parlons-cloud-0.11.124.jar [options]. Все параметры, которые принимает программа:
Отдельный аккаунт
| Параметр | По умолчанию | Значение |
|---|---|---|
--data <dir> | ~/.parlons | Каталог данных аккаунта. |
--name <name> | сохранённое имя | Отображаемое имя аккаунта. |
--relay-port <n> | 9501 | Порт общего ретранслятора (pool relay), который этот аккаунт запускает для сети. |
--no-relay | (ретранслятор включён) | Запустить аккаунт без общего ретранслятора. |
--direct-port <n> | 9536 | Порт прямой доступности (уровень 2). |
--no-direct | (прямая доступность включена) | Отключить прямую доступность. |
--panel-port <n> | 9587 | Локальная веб-панель и API, только на 127.0.0.1. |
--no-panel | (панель включена) | Работать без веб-панели. |
--wallet rpc:<port>[:<secret-file>] | собственный механизм подписи аккаунта на основе его сид-фразы | Использовать в качестве кошелька узел Minima, уже работающий на этом компьютере, через его loopback RPC. Подписывает узел; аккаунт хранит только личность. В файле хранится -rpcpassword узла. |
--host <ip> | не сообщать | Публичный адрес для объявления. |
--relays <list> | нет | Дополнительные ретрансляторы сети для подключения (host:port через запятую). |
--no-builtin-relays | (встроенный список включён) | Не использовать встроенный в программу список ретрансляторов как источник начальных; только --relays и ретрансляторы, добавленные в панели. Нужен хотя бы один. |
--peers <list> | нет (или MAXIMA_PEERS) | Участники сети для общего ретранслятора (через запятую). |
--blobstore <MB> | 1024 | Размер хранилища медиа ретранслятора в МБ. |
--import-seed <file|prompt> | Принять существующую фразу из 24 слов, произвольную фразу Minima или сид в шестнадцатеричном виде — только в новый каталог, затем выйти. prompt считывает её из консоли. | |
--restore <file.pbk> | Восстановить зашифрованную резервную копию в новый каталог, затем выйти. Нужна интерактивная консоль. | |
-v, --version | Вывести parlons-cloud 0.11.124 и выйти. | |
-h, --help | Вывести справку и выйти. |
Хост с несколькими аккаунтами
| Параметр | Значение |
|---|---|
--tenants <dir> | Запустить каждый аккаунт <dir>/<name>/ в этом одном процессе. Порты ретранслятора и прямой доступности открывает только первый tenant; остальные используют их совместно. Панель каждого tenant занимает --panel-port, +1, +2 … в порядке запуска (с --no-panel — ни одной). |
--unlock <prompt|env> | Парольная фраза для открытия файлов seed.enc: запрашивается в консоли или берётся из PARLONS_UNLOCK (для systemd). Нужна, если зашифрована сид-фраза хотя бы одного tenant. Пока она задана, новые tenants получают зашифрованные сид-фразы. |
--tenant-new <dir> <name> | Команда оператора: создать <dir>/<name>/, подождать (60 с), пока работающий хост запустит его, вывести адрес, код подключения и приглашение, затем выйти. |
--encrypt-seeds | Вместе с --tenants и --unlock: превратить seed.txt каждого tenant в seed.enc (scrypt и AES-GCM с парольной фразой разблокировки), проверить, удалить открытый текст и выйти. |
Переменные окружения и системные свойства
| Имя | Значение |
|---|---|
PARLONS_UNLOCK | Парольная фраза разблокировки для --unlock env. Скрипт развёртывания хранит её в /etc/parlons-tenants.env. |
MAXIMA_PEERS | Участники сети, если не указан --peers. |
-Dparlons.hosted.limit=<n> | Лимит на создание размещённых аккаунтов (по умолчанию 10). Если вы его повышаете, передавайте его и в --tenant-new. |
-Dmaxima.relay.maxpersource=<n> | На ваших ретрансляторах: число незарегистрированных подключений с одного IP (по умолчанию 32). |
Порты по умолчанию — кратко
| Порт | Назначение | Доступ |
|---|---|---|
| 9501/tcp | общий ретранслятор | публичный, только если вы запускаете ретранслятор |
| 9536/tcp | прямая доступность | публичный, только если включена |
| 9587/tcp | веб-панель и API | только loopback, никогда не открывайте наружу |
| 9597/tcp и выше | панели tenants на сервере с узлом (если настроены, раздел 21) | только loopback |
26Команда parlons
Установщик одной командой устанавливает parlons. Это отдельное подключённое устройство (его ключ хранится в ~/.parlons-client), поэтому оно может управлять аккаунтом на этом или любом другом компьютере.
Команды сервиса (аккаунт этого компьютера): start, stop, restart, log [n], update, uninstall.
Команды аккаунта:
| Команда | Что делает |
|---|---|
whoami | Ключ этого устройства и аккаунт, которым оно управляет. |
connect <account MAX#> | Направить это устройство на аккаунт. |
pair [<code>] | Подключить это устройство (с кодом или через ожидание → одобрение). |
ping | Имя и адрес аккаунта. |
status | Имя, версия, время работы, ретрансляторы, общий ретранслятор, подключённые устройства, постоянный адрес. |
devices | Подключённые и ожидающие устройства с полными ключами. |
newcode | Создать новый одноразовый код и приглашение. Если у хоста есть пароль администратора, команда запрашивает его в консоли (раздел 23). |
invite | Вывести действующее приглашение из папки аккаунта на этом компьютере. |
panel | Открыть веб-панель аккаунта в браузере (одноразовая ссылка). |
approve <key> / revoke <key> | Одобрить ожидающее устройство / отозвать доступ устройства. |
name <display name> | Задать имя аккаунта (сообщается контактам). |
contacts, add <addr|MAX#>, rename <key> <name>, resolve <key> | Управление контактами. |
chats, read <peer key>, send <peer key> <msg>, markread <peer key> | Чтение и отправка сообщений. |
pay <key> <amt> [memo] | Заплатить контакту из кошелька аккаунта. |
wallet address, wallet balance, wallet set <Mx>, wallet resync <file> | Кошелёк аккаунта (resync: только для аккаунтов узла). |
cmd <node command…> | Выполнить любую команду Minima на узле аккаунта (только Parlons Node); полный вывод. |
nft put <file> …, nft list, nft newcollection, nft delete <path> | Размещение изображений NFT на узле (только Parlons Node). |
figures, hosts [add|remove <host:port>], mls pin|clear|republish, nodelog [clear] | Статистика ретранслятора, ретрансляторы, ретранслятор каталога, журнал аккаунта. |
seed | Показать 24 слова аккаунта (только в вашем терминале). |
backup <file.pbk> | Записать зашифрованную переносимую копию аккаунта. |
Запустите parlons без аргументов, чтобы увидеть список.
Как управлять аккаунтом с другого компьютера
Команда parlons на любом компьютере может управлять любым аккаунтом после подключения.
- Установите
parlonsна этот компьютер установщиком одной командой (раздел 19) или используйте уже установленный. - Направьте его на аккаунт, указав полный адрес
MAX#:parlons connect <account MAX#>Команда выведет
account saved. next: parlons pair <code>. - Подключите его с новым кодом, полученным с подключённого устройства (раздел 10):
parlons pair ABCD-EFGH-JKLMКоманда выведет
paired ✓ — this device can now drive your account. - Или запустите
parlons pairбез кода. Команда выведетpairing requested. Approve it from an already-paired device:и точную строкуparlons approve <key>, которую нужно выполнить на подключённом устройстве. - Проверьте, что всё работает:
parlons status
Как читать и отправлять сообщения из терминала
- Выведите список чатов (имя, последнее сообщение, число непрочитанных):
parlons chats - Найдите полный ключ контакта:
parlons contacts - Прочитайте переписку:
parlons read <peer key> - Отправьте сообщение:
parlons send <peer key> hello
Как заплатить контакту из терминала
- Найдите ключ контакта командой
parlons contacts. - Заплатите ему из кошелька аккаунта (сумма в MINIMA, примечание необязательно):
parlons pay <key> 1.5 lunch - Команда выведет
payment building on your node ✓ (watch the chat bubble). Командаpayотправляет только Minima. MxUSD отправляйте из Portal.
27Файлы в каталоге данных
Каталог отдельного аккаунта (~/.parlons, /var/lib/maxima) и папка каждого tenant устроены одинаково. Файлы, помеченные как секретные, должны иметь режим 0600; их нельзя записывать в журналы, вставлять куда-либо или передавать.
| Файл | Содержимое |
|---|---|
seed.txt | Секретный. 24 слова (или импортированная фраза, или сид в шестнадцатеричном виде). Личность и кошелёк. |
seed.enc | Секретный. Сид-фраза tenant, зашифрованная парольной фразой разблокировки. |
account.txt | Постоянный адрес MAX#, записывается после подключения аккаунта к сети. Публичный. |
pair-code.txt | Секретный. Действующий одноразовый код подключения. Удаляется после использования. |
invite.txt | Секретный. Полный адрес, затем ?code=, затем код. Удаляется после использования кода. |
panel.txt | Loopback-URL панели. |
panel-ticket.txt | Секретный. Одна неиспользованная одноразовая ссылка на панель. |
local-device.key | Секретный. Ключ устройства панели. Удалите его (при остановленном аккаунте), чтобы снова включить отозванную панель. |
.admin-pairing-password | Проверочные данные пароля администратора (не сам пароль). |
devices.json | Подключённые устройства. |
wallet/ | Счётчики использования ключей кошелька. |
.stop | (tenants) Если файл есть, этот tenant приостановлен. |
hosted-chat/ | (аккаунты владельца) Встроенные гостевые аккаунты только для общения, по папке на каждый; .enabled означает, что хостинг включён. |
account-history/ | (Parlons Node) Аккаунты, заменённые при импорте личности, сохранённые для восстановления. |
log/cloud.log | (аккаунты, установленные установщиком) Журнал аккаунта. |
В каталоге tenants также хранится .host-status.json — пульс хоста (какие tenants работают, а какие дают сбои), обновляемый каждые пять секунд.
28Порты, брандмауэры, TLS и обратные прокси
- Отдельному аккаунту не нужен входящий порт, домен и сертификат. Он выходит в сеть через ретрансляторы, а телефоны связываются с ним через собственный зашифрованный транспорт Parlons, а не через веб-порт. Установщик одной командой (без
--relay) и хост tenants работают с--no-relay --no-direct. - Чтобы другие могли пользоваться вашим ретранслятором (он включён по умолчанию;
--no-relayего выключает), TCP 9501 (или ваш--port) должен быть доступен из интернета. Скрипты открывают его в ufw или firewalld, если они активны. Брандмауэр в консоли облачного провайдера (Hetzner Cloud Firewall, Vultr Firewall Group, группа безопасности AWS) тоже должен его разрешать; обычно именно он виноват в ситуации «телефон подключается, но подключение к аккаунту работает нестабильно». Проверяйте с другого компьютера, а не с самого сервера:nc -z -G 5 vps.example.com 9501 && echo reachable - Порт ретранслятора — не HTTP. Он напрямую использует сетевой протокол Maxima. Не ставьте его за обратный HTTP-прокси или терминатор TLS: клиенты подключаются к нему по обычному TCP, а сообщения внутри уже защищены сквозным шифрованием.
- Веб-панель никогда нельзя открывать наружу. Она привязана к
127.0.0.1и отклоняет запросы, у которыхHostне совпадает с её loopback-адресом, поэтому обратный прокси с доменным именем получит wrong host. Подключайтесь к ней через SSH-туннель (раздел 24). - Брандмауэры с правилами для исходящего трафика. Хосту нужны исходящие TCP-соединения с ретрансляторами, к которым он подключается. На сервере, где исходящий трафик по умолчанию запрещён, для них нужны правила.
Как открыть и проверить порт ретранслятора
Нужно, только если хост запускает ретранслятор.
- На сервере разрешите порт в его собственном брандмауэре. Скрипты делают это, если активен ufw или firewalld. Вручную для ufw:
ufw allow 9501/tcpДля firewalld:
firewall-cmd --permanent --add-port=9501/tcp && firewall-cmd --reload - В консоли облачного провайдера тоже разрешите входящий TCP 9501 в его брандмауэре.
- Проверьте с другого компьютера (не с самого сервера):
nc -z -G 5 vps.example.com 9501 && echo reachable reachableозначает, что порт открыт. Если вывода нет, что-то его всё ещё блокирует.
(TLS-фронты в сети ретрансляторов обслуживают другие сервисы, работающие на Parlons Node, например шлюз кошелька и ретранслятор DEX; к хосту Parlons Cloud они не относятся.)
29Обновление и откат
Каждая установка хранит jar с номером версии рядом с постоянной символической ссылкой, поэтому откат — это одна смена ссылки.
| Хост | Обновление | Откат |
|---|---|---|
| Установщик одной командой | parlons update или повторный запуск команды установки | ln -sf parlons-cloud-<OLDVER>.jar ~/.parlons/bin/parlons-cloud.jar && parlons restart |
deploy-parlons-cloud.sh | Повторно выполните ту же команду (с --jar для конкретной сборки) | На сервере: cd /opt/maxima && ln -sf parlons-cloud-<OLDVER>.jar parlons-cloud.jar && systemctl restart parlons-cloud |
parlons-tenants | Повторно выполните ops/deploy-parlons-tenants.sh <box> (он сохраняет /etc/parlons-tenants.env) | ln -sf parlons-cloud-<OLDVER>.jar /opt/maxima/parlons-cloud.jar && systemctl restart parlons-tenants |
Как проверить скачанный jar
- Скачайте
parlons-cloud-0.11.124.jarиз релизаcloud-v0.11.124. - Вычислите его SHA-256. На Mac:
shasum -a 256 parlons-cloud-0.11.124.jarВ Linux:
sha256sum parlons-cloud-0.11.124.jar - Сравните результат с опубликованным значением. Он должен совпадать полностью:
0ae833429b641393f93b427695784b534e8a2a06a7194eba74e57aed4f19b231
Установщик и скрипты развёртывания проверяют SHA-256 сами и отказываются работать при несовпадении.
Как обновить хост tenants
- Сохраните резервные копии
/etc/parlons-tenants.envи каталогов данных. - Если вы редактировали модуль, сохраните его копию:
cp /etc/systemd/system/parlons-tenants.service /etc/systemd/system/parlons-tenants.service.before-0.11.124 - Со своего компьютера снова запустите скрипт развёртывания с новым jar:
ops/deploy-parlons-tenants.sh root@your.box --jar dist/parlons-cloud-0.11.124.jarСнова добавьте
--manage-from-node, если вы его использовали. Скрипт сохраняет/etc/parlons-tenants.env. Он перезаписывает модуль с--panel-port 9597, поэтому заново внесите все остальные свои правки. - Проверьте сервис:
systemctl is-active parlons-tenants journalctl -u parlons-tenants | grep 'multi-account host' | tail -1В строке должно быть указано
Parlons Cloud 0.11.124. - Убедитесь, что каждый tenant выходит на связь (раздел 30).
Как откатиться
- На сервере (или в
~/.parlons/binдля аккаунта, установленного установщиком) выведите список оставшихся jar с номерами версий:ls /opt/maxima/parlons-cloud-*.jar - Направьте символическую ссылку на более старый и перезапустите, используя строку для вашего типа хоста из таблицы выше. Например, на хосте tenants:
ln -sf parlons-cloud-0.11.122.jar /opt/maxima/parlons-cloud.jar && systemctl restart parlons-tenants - Проверьте версию в журнале, как в шаге 4 выше.
Приложение Portal обновляется отдельно: установите новый APK поверх старого (раздел 3).
30Журналы
| Хост | Где |
|---|---|
| Установщик одной командой | parlons log или ~/.parlons/log/cloud.log |
deploy-parlons-cloud.sh | journalctl -u parlons-cloud -f |
parlons-tenants | journalctl -u parlons-tenants (строки каждого tenant помечены parlons-cloud/<name>) |
| Parlons Node | journalctl -u parlons-node -f |
| С подключённого телефона | «Узел» → Открыть панель управления → Журнал событий (Parlons Node) |
| Из панели | «Узел» → Журнал |
Как следить за журналом
- Выберите команду для вашего хоста из таблицы выше. Например, на хосте tenants:
journalctl -u parlons-tenants -f - Чтобы видеть только один tenant, отфильтруйте по его метке:
journalctl -u parlons-tenants | grep 'parlons-cloud/alice' - Нажмите Ctrl+C, чтобы прекратить слежение.
Полезные строки:
Parlons Cloud 0.11.124 multi-account host: N tenant(s) under <dir>: хост запущен.tenant <name>: <Mx identity> (seed encrypted at rest): tenant запущен.hot-add: <name>: подхвачена новая папка.tenant <name>: stopped (.stop)/parked (.stop present): tenant приостановлен.tenant <name>: failed to start (…), retry in 60 s.web panel could NOT start on 127.0.0.1:<port>: ….
Программа никогда не записывает сид-фразу в журнал: под systemd новая сгенерированная сид-фраза не выводится; программа предлагает один раз прочитать seed.txt по SSH. Коды подключения записываются только в pair-code.txt и никогда не попадают в журнал. И всё же при поиске по журналам или файлам модулей отфильтровывайте всё, где упоминаются сид-фразы (… | grep -v seed), и проверяйте журнал, прежде чем куда-либо его вставлять.
31Заметки о безопасности для операторов
- Файлы сид-фраз — это кошельки.
seed.txtиseed.enc— это личности и кошельки Minima, с которых можно тратить средства. Никогда не выводите их в журнал, заявку, чат или на снимок экрана. Никогда не копируйте их на компьютер, которому они не нужны. Прочитайте новую сид-фразу один раз по SSH и храните её вне сети. - Одна сид-фраза — один хост, всегда. Две работающие копии одной личности рано или поздно повторно используют одноразовый ключ подписи. Чтобы перенести аккаунт, восстановите его копию на новом хосте и окончательно остановите старый.
- Оператор может читать то, что хранит хост. Постоянно работающий аккаунт должен держать ключ в памяти, чтобы действовать от имени владельца. Шифрование на диске (
seed.enc) защищает образы дисков и резервные копии, но не от того, кто запускает процесс. Сообщите об этом своим гостям; на страницах руководства об этом тоже сказано. - Встроенный хостинг чатов хранит сид-фразы гостей как приватные файлы (режим 0600, открытым текстом) в папке
hosted-chat/владельца. Для защиты на случай кражи диска используйте шифрование диска компьютера. Пароль администратора гостевые аккаунты не шифрует. - Парольная фраза разблокировки в
/etc/parlons-tenants.envдоступна только root. Храните её резервную копию отдельно от данных: при её потере всеseed.encстанут нечитаемыми, а её утечка вместе с резервной копией данных сводит шифрование на нет. - Приглашения — это ключи к аккаунту, пока они не использованы.
pair-code.txtиinvite.txtпозволяют первому, кто ими воспользуется, подключить устройство. Отправляйте приглашения лично, подключайтесь без промедления, а если приглашение могло утечь, создайте новый код (он заменит старый) или отзовите доступ устройства, которое его использовало. - Пароль администратора защищает только приглашения владельца. Любой, у кого есть полный доступ к серверу по SSH или к терминалу владельца, всё равно управляет сервером.
- Ссылка-билет панели даёт браузеру сеанс в качестве локального устройства этого аккаунта. Держите
panel-ticket.txtв тайне и не открывайте порт панели наружу. - Защищённые модули. Скрипты развёртывания запускают хост от имени непривилегированного пользователя
maximaсNoNewPrivileges, без capabilities, с разрешённым списком системных вызовов,ProtectSystem=strict, приватным/tmp,UMask=0077, заблокированным диапазоном адресов облачных метаданных и ограничением памяти. Сохраните всё это, если пишете собственный модуль. - Никогда не сокращайте идентификаторы ни в чём, что вы создаёте или пересылаете в связи с этими хостами: адреса, ключи, коды и идентификаторы транзакций всегда нужно показывать и копировать целиком.
32Решение проблем для операторов
| Признак | Причина и решение |
|---|---|
| Установщик: not up after 90 s | Показаны последние строки журнала. Обычно не установилась Java или нет интернета. Устраните причину и снова запустите установщик; ничего не потеряется. |
| Установщик: Could not reach GitHub to find the release | Попробуйте позже или скачайте jar с https://github.com/eurobuddha/maxima/releases в ~/.parlons/bin и снова запустите установщик. |
| ERROR: relay port 9501 is already in use | Порт занят другим ретранслятором или Parlons Node. Выберите свободный порт с помощью --relay-port или запустите с --no-relay. Для установщика одной командой выполните установку без --relay. |
| web panel could NOT start on 127.0.0.1:9587 | Порт занят чем-то другим (часто Parlons Node). Укажите свободный порт через --panel-port (9597 на серверах с узлом) или используйте --no-panel. Аккаунт работает и без панели. |
| \<name\>: seed.enc needs --unlock | Запустите хост с --unlock env (и заданным PARLONS_UNLOCK) или с --unlock prompt. |
| --unlock env: PARLONS_UNLOCK is not set | Файл EnvironmentFile=/etc/parlons-tenants.env модуля отсутствует или пуст. Восстановите его из резервной копии. |
| --unlock prompt needs an interactive console (use --unlock env under systemd) | Именно так. |
| no invite after 60 s - is the host running? | systemctl status parlons-tenants. Хост опрашивает каталог каждые пять секунд. |
| Hosted-account service is offline. Ask the server operator to start it. | Хост tenants не запущен или не обновлял свой пульс последние 90 секунд. Запустите parlons-tenants. |
| Wait until this account is running before creating an invite / Account is connecting. Refresh in a few seconds. | Tenant ещё не подключился. Подождите и обновите. |
| Hosted account is paused; resume it before issuing an invite | Удалите его файл .stop. |
| Hosting limit reached (10 accounts) | Приостановленные аккаунты учитываются. Переместите неиспользуемую папку или повысьте -Dparlons.hosted.limit. |
| Set your admin password before enabling hosting | Сначала задайте пароль администратора (раздел 23). |
| Enable hosting before managing guest accounts | Встроенный хостинг выключен; включите его (раздел 11). |
| Guest hosting is unavailable. Check the data folder permissions and that another host is not using it. | Папка hosted-chat/ владельца недоступна для записи, является символической ссылкой или её блокировку удерживает другой процесс. |
Admin password required for an owner-account invitation от parlons newcode | У команды не было консоли для запроса (например, её запустили из скрипта). Выполните parlons newcode в интерактивном терминале и введите пароль на запрос Admin password:. Или создайте приглашение в приложении или панели, или подключитесь без кода и одобрите устройство. |
| Хост этого аккаунта слишком старый для отправки MxUSD — обновите его (…) на телефоне | Хост аккаунта не может подтвердить, что учитывает ID токена. Обновите его до Parlons Cloud 0.11.121 или новее (актуальная — 0.11.124), Parlons Node 0.2.135 или новее либо minimaCore Desktop 0.18.21 или новее. |
Incorrect admin password от parlons-pair | Повторите через две секунды. Чтобы сменить забытый пароль на Parlons Node, локально выполните sudo parlons-pair --set-admin-password. |
| Восстановление: wrong passphrase (or a damaged backup file) | Проверьте парольную фразу. |
| Восстановление: отказ, потому что личность уже существует | --restore и --import-seed никогда ничего не перезаписывают. Сначала переместите старые данные или используйте новый каталог. |
| Телефон подключается, но подключение к аккаунту нестабильно (хосты с ретранслятором) | Брандмауэр в консоли облачного провайдера блокирует порт ретранслятора. Разрешите его и там. |
| Tenant получил новую личность после того, как вы переместили восстановленную папку | Папка была подхвачена до записи seed.txt. Остановите её (.stop) и восстановите заново через временную папку (раздел 22). Держите папку неожиданной личности отдельно, пока не убедитесь, что к ней никто не подключился. |
Пошаговые решения
Порт ретранслятора 9501 уже занят
- Найдите, что его занимает:
sudo ss -ltnp | grep ':9501' - Если это Parlons Node или другой ретранслятор, оставьте его. Вместо этого запустите этот аккаунт без собственного ретранслятора: для установщика одной командой выполните
parlons uninstallи установите заново с--no-relay. Для модуля, написанного вручную, замените--relay-port 9501на--no-relay. - Или дайте этому аккаунту свободный порт с помощью
--relay-port <n>(дляdeploy-parlons-cloud.sh—--port <n>) и откройте этот порт (раздел 28). - Перезапустите сервис и проверьте журнал (раздел 30).
Веб-панель не запустилась
- В журнале написано web panel could NOT start on 127.0.0.1:<port>. Найдите, что занимает порт:
sudo ss -ltnp | grep ':9587' - Выберите свободный loopback-порт. На сервере с Parlons Node используйте 9597 или выше.
- На хосте
deploy-parlons-cloud.shотредактируйтеExecStartмодуля и добавьте--panel-port 9597(или--no-panel, чтобы работать без панели). На хосте tenants в модуле уже есть--panel-port 9597; если 9597 занят, выберите там другой начальный порт.systemctl edit --full parlons-cloud systemctl daemon-reload && systemctl restart parlons-cloud - Тем временем аккаунт работает без панели.
Зашифрованные сид-фразы не открываются (seed.enc needs --unlock или PARLONS_UNLOCK is not set)
- Проверьте, что файл разблокировки существует и не пуст, не выводя его содержимое:
sudo test -s /etc/parlons-tenants.env && echo present - Если его нет, восстановите его из резервной копии вне сети в
/etc/parlons-tenants.envс владельцем root и режимом 600:sudo install -o root -g root -m 600 ./parlons-tenants.env.backup /etc/parlons-tenants.env - Проверьте, что в модуле есть
EnvironmentFile=/etc/parlons-tenants.envи--unlock env:systemctl cat parlons-tenants | grep -E 'EnvironmentFile|--unlock' - Перезапустите:
systemctl restart parlons-tenants
Без исходной парольной фразы зашифрованную сид-фразу открыть нельзя. Вместо этого восстановите tenant из его резервной копии (раздел 22).
tenant-new не выдал приглашение за 60 секунд
- Проверьте, что хост работает:
systemctl status parlons-tenants - Если он остановлен, запустите его командой
systemctl start parlons-tenants. - Проверьте журнал для этого tenant (
journalctl -u parlons-tenants | grep 'parlons-cloud/alice'). - Снова выполните
ops/tenant-new.sh root@your.box alice. Для существующей папки команда не заменяет личность.
Сервис размещённых аккаунтов недоступен
- На сервере запустите хост tenants:
systemctl start parlons-tenants - Подождите несколько секунд, пока он запишет пульс (
.host-status.jsonв каталоге tenants). - В Portal откройте Узел → Управление размещёнными аккаунтами и нажмите Обновить.
Tenant получил новую личность после восстановления
- Приостановите неожиданный tenant:
touch /var/lib/parlons-tenants/alice/.stop - Переместите его папку из каталога tenants и держите отдельно, пока не убедитесь, что к ней никто не подключился.
- Снова восстановите копию через временную папку, затем переместите её внутрь (раздел 22, «Восстановление tenant из резервной копии»).
Во всех остальных случаях создайте issue на GitHub проекта, указав версию, что вы ожидали, что произошло, и нужные строки журнала (предварительно проверив их на наличие секретов).
33Глоссарий
| Термин | Значение |
|---|---|
| Аккаунт | Одна личность Parlons с контактами, чатами, подключёнными устройствами, настройками и (обычно) кошельком, которую хост держит в сети. |
| Пароль администратора для подключения | Локальный пароль, защищающий приглашения владельца на хостах с этим сервисом. От 10 до 1024 символов; хранится только в виде проверочных данных. |
Адрес (форма MAX#) | Постоянный адрес аккаунта. Публичный, длиной в несколько сотен символов, никогда не меняется. Всегда копируется целиком. |
Адрес (ключ Mx с @host:port) | Более старая форма: ключ личности плюс ретранслятор, который сейчас его обслуживает. Часть host:port меняется. |
| Встроенный хостинг | Гостевой хостинг только для общения внутри аккаунта владельца (Parlons Node, настольные приложения-узлы, отдельный parlons-cloud). |
Резервная копия (.pbk) | Зашифрованная копия всего аккаунта (личность, устройства, настройки, контакты, чаты), которую может прочитать любой хост Parlons, а приложение на телефоне — в части личности и контактов. |
| Аккаунт только для общения | Гостевой аккаунт только с чатами, звонками и файлами. |
| Устройство | Всё, что подключено к аккаунту: телефон, терминал, панель хоста. Доступ можно отозвать, не меняя личность. |
| Ключ устройства | Собственный ключ подключённого устройства. Это не личность аккаунта. |
| Ретранслятор каталога / MLS | Служба местоположения, которая определяет, где сейчас находится аккаунт с данным постоянным адресом. Её можно закрепить за одним ретранслятором. |
| Гость | Человек с размещённым аккаунтом на чужом хосте. |
| Хост | Компьютер и программа, которые держат в сети один или несколько аккаунтов. Так же называют ретранслятор, к которому подключается аккаунт. |
| Hot-add | Запуск хостом tenants новой папки tenant в течение пяти секунд без перезапуска. |
| Приглашение | Адрес и одноразовый код подключения в одной строке, соединённые через ?code=. Одного QR-кода достаточно, чтобы подключить телефон. |
| Локальное устройство / этот компьютер | Собственная веб-панель хоста, работающая как подключённое устройство аккаунта. |
| Почтовый ящик | Зашифрованные сообщения, хранящиеся для того, кто был не в сети. |
| Участники сети | Другие ретрансляторы, с которыми ретранслятор этого аккаунта обменивается данными каталога. |
| MxUSD | Токен Minima, привязанный к доллару, ID токена 0x7D39745FBD29049BE29850B55A18BF550E4D442F930F86266E34193D89042A90. |
| Исходящие | Ваши сообщения, ещё не принятые узлом; отправка повторяется с увеличивающимися интервалами. |
| Владелец | Человек, чей аккаунт работает на компьютере и управляет его хостингом. |
| Приглашение владельца | Приглашение, которое подключает устройство к аккаунту владельца с полным контролем. |
| Код подключения | Одноразовый код из трёх групп по четыре символа, позволяющий подключить одно устройство. |
| Ссылка-билет панели | Одноразовая ссылка, которая выполняет вход в браузере в локальную веб-панель. |
| Parlons Cloud | Программа-хост (parlons-cloud.jar), а также название приложения Portal для Android и функции подключения на iPhone. |
| Parlons Node | Полный узел Minima со встроенными ретранслятором, шлюзом кошелька и аккаунтом Parlons. К нему можно подключиться из Portal. |
| parlons-tenants | Сервис systemd, запускающий parlons-cloud --tenants. |
| Ожидают подтверждения | Устройство, запросившее подключение без кода и ожидающее одобрения от существующего устройства. |
| Общий ретранслятор (pool relay) | Ретранслятор, который аккаунт запускает для передачи трафика сети. |
| Portal | Так в этом руководстве называется приложение Parlons Cloud для Android. |
| Сид-фраза / 24 слова | Секретная фраза, которая является личностью и кошельком Minima. |
| Использование ключа подписи | Сколько одноразовых подписей использовал ключ кошелька. Значение можно только повышать. |
| Правило одного владельца | Одна личность работает одновременно только в одном месте. |
| Tenant | Одна папка аккаунта на хосте с несколькими аккаунтами. |
| Парольная фраза разблокировки | Парольная фраза (PARLONS_UNLOCK), которая расшифровывает файлы seed.enc tenants. |
| Кошелёк для наблюдения | Просмотр кошелька по адресу, ключи которого хранятся в другом месте; показывает баланс, но не может тратить средства. |