ДокументацияДоступ из любого места

Интеллект и компьютеры

Доступ из любого места

Описывает Piomio 0.2.15Изменить страницу

Сам по себе хаб открывается только там, где работает: приложение для компьютера — на localhost, сервер — на 127.0.0.1. Доступ из любого места даёт ему одну постоянную ссылку https://piomio.<твой-tailnet>.ts.net. Она открывается в любом браузере, обслуживает приложение для iPhone вне дома и позволяет подключаться другим твоим компьютерам, причём ничего не нужно ставить на них и открывать порты. Для этого Piomio запускает собственный узел Tailscale и открывает ссылку через Tailscale Funnel.

Включить

Хаб, установленный на сервер через install.sh, стартует с ним включённым: установщик показывает страницу входа в Tailscale, а потом ссылку (На Linux-сервере), а если пропустить это, ассистент первым делом предложит вход в чате. В остальных случаях напиши в чате «включи доступ из любого места» — ассистент покажет его карточку. Та же карточка есть в Настройки → Плагины, в разделе Связь: Доступ из любого места. На странице Устройства и в карточке подключения устройства есть кнопка Настроить, она ведёт туда же.

  1. Нажми Включить. В карточке появится «Запускается узел Tailscale…».
  2. Войти в Tailscale. Хватит бесплатного аккаунта (Google, Apple, GitHub или Microsoft); для нового аккаунта сеть создастся сама. Узел piomio появится в ней.
  3. Разрешить Funnel. Tailscale один раз спросит администратора сети, чтобы ссылка открывалась из интернета.
  4. Сертификат для ссылки Tailscale выпускает при первом заходе, это до минуты, поэтому пока ссылка не откроется из интернета, карточка пишет, что готовит её. Потом карточка покажет ссылку, кнопку копирования и QR-код, чтобы открыть её на телефоне, а ещё аккаунт Tailscale, под которым работает узел. Чат, который её ждал, узнает, что она работает.

Для включения с карточки нужен пароль Piomio — он есть у любого хаба после первой настройки. Если в твоей сети Tailscale новые устройства ждут одобрения, карточка скажет, что Tailscale ждёт, пока администратор подтвердит машину piomio (консоль администратора → Machines).

Что ходит по ссылке

  • Веб-интерфейс. Входи с паролем Piomio. Ключи доступа (passkeys) привязаны к собственному адресу компьютера, поэтому по ссылке всегда нужен пароль.
  • Первая настройка нового сервера, с кодом установки (установщик кладёт его в ссылку, которую печатает). Пока первый пароль не задан, без этого кода там ничего не сделать, а неверные коды считаются в те же ограничения, что и неверные пароли.
  • Приложение для iPhone вне дома. Телефоны ходят на то же имя, на порт 8443, и видят там собственный сертификат хаба, который запомнили при подключении. Телефон, подключённый ещё до ссылки, узнает её при следующем соединении. См. Приложение для iPhone.
  • Другие твои компьютеры. Пока собственный адрес хаба работает только на его компьютере, приглашения для новых компьютеров ведут на ссылку, и piomio-node держит связь через неё. Интеллекты на этих компьютерах достают до инструментов хаба по ссылке со своими токенами сессий. См. Машины и другие компьютеры.

По ссылке не ходит никогда:

  • собственный вход приложения для компьютера;
  • пульт безопасности с подтверждениями, хранилищем, правилами и аудитом: он остаётся на компьютере;
  • вебхуки плагинов и страницы, на которые возвращает вход (Google, MCP-сервисы): если возврата не случилось, карточка попросит вставить адрес из строки браузера.

Неверные пароли

С одного адреса можно ошибиться с паролем 10 раз за 15 минут, потом придётся подождать. По ссылке неверные пароли считаются ещё и вместе, со всех адресов: 30 за час приостанавливают вход извне на час, и приходит уведомление Кто-то подбирает ваш пароль. Вход на самом компьютере при этом работает. Если это был не ты, смени пароль в пульте безопасности на том компьютере.

Узел и его ключи

  • Ключи лежат в <data>/tailnet, в папке данных хаба.
  • Выключить останавливает узел и ссылку; ключи остаются, поэтому после повторного включения вернётся та же ссылка. Вне дома телефоны и браузеры на это время теряют доступ.
  • Забыть узел выходит из Tailscale и удаляет ключи. Ссылка перестаёт работать, а при следующем включении появится новый узел.
  • Если выключать со страницы, открытой по ссылке, карточка предупредит, что и эта страница перестанет работать.
  • Срок действия ключа. По умолчанию Tailscale через 180 дней просит узел войти заново. За две недели до этого карточка предупредит с датой и кнопкой Открыть консоль Tailscale, где можно отключить срок действия ключа для piomio.
  • Без журналов для Tailscale. Piomio не отправляет Tailscale журналы узла.
  • Узел запускается вместе с хабом, пока переключатель включён. Если он остановится сам, хаб запустит его снова, каждый раз выжидая чуть дольше, а карточка покажет, что пошло не так.

В твоей сети Tailscale узел называется piomio, отсюда и первая часть ссылки; другое имя задаёт PIOMIO_TAILNET_HOSTNAME.

Откуда берётся узел

Узел уже есть в приложении для компьютера и в установке на сервер. Если запускаешь Piomio из исходников, собери его (нужен Go):

npm run build:tailnet

Без него карточка скажет, что в этой сборке доступа из любого места нет. PIOMIO_TAILNET_BIN указывает хабу на программу узла в другом месте.

Свой Tailscale или прокси вместо этого

HTTPS перед хабом можно поставить и самому. Только не открывай порты 8080 и 8081 в интернет по обычному HTTP: пароль пойдёт незашифрованным, а 8081 — это пульт безопасности.

Если на компьютере хаба стоит Tailscale и в твоей сети включены HTTPS-сертификаты, tailscale serve поставит HTTPS перед обоими портами, только внутри твоей сети:

tailscale serve --bg --https=8080 http://127.0.0.1:8080
tailscale serve --bg --https=8081 http://127.0.0.1:8081

Потом скажи хабу его адреса — на сервере в ~/.config/piomio/env — и перезапусти его:

PIOMIO_PUBLIC_URL=https://my-box.tailnet.ts.net:8080
PIOMIO_CONSOLE_URL=https://my-box.tailnet.ts.net:8081

Так пульт безопасности тоже открывается с других твоих устройств, и работают ключи доступа: им нужен HTTPS или localhost. За другим обратным прокси, который ставит заголовки X-Forwarded-*, добавь PIOMIO_TRUST_PROXY=1. Хаб отвечает только на знакомые имена (localhost, хосты из PIOMIO_PUBLIC_URL и PIOMIO_CONSOLE_URL); остальные перечисляются в PIOMIO_ALLOWED_HOSTS. Все переменные — в Настройках и переменных окружения.