Интеллект и компьютеры
Доступ из любого места
Описывает Piomio 0.2.15Изменить страницу
Сам по себе хаб открывается только там, где работает: приложение для компьютера — на localhost, сервер — на 127.0.0.1. Доступ из любого места даёт ему одну постоянную ссылку https://piomio.<твой-tailnet>.ts.net. Она открывается в любом браузере, обслуживает приложение для iPhone вне дома и позволяет подключаться другим твоим компьютерам, причём ничего не нужно ставить на них и открывать порты. Для этого Piomio запускает собственный узел Tailscale и открывает ссылку через Tailscale Funnel.
Включить
Хаб, установленный на сервер через install.sh, стартует с ним включённым: установщик показывает страницу входа в Tailscale, а потом ссылку (На Linux-сервере), а если пропустить это, ассистент первым делом предложит вход в чате. В остальных случаях напиши в чате «включи доступ из любого места» — ассистент покажет его карточку. Та же карточка есть в Настройки → Плагины, в разделе Связь: Доступ из любого места. На странице Устройства и в карточке подключения устройства есть кнопка Настроить, она ведёт туда же.
- Нажми Включить. В карточке появится «Запускается узел Tailscale…».
- Войти в Tailscale. Хватит бесплатного аккаунта (Google, Apple, GitHub или Microsoft); для нового аккаунта сеть создастся сама. Узел
piomioпоявится в ней. - Разрешить Funnel. Tailscale один раз спросит администратора сети, чтобы ссылка открывалась из интернета.
- Сертификат для ссылки 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. Все переменные — в Настройках и переменных окружения.