Офлайн-режим і приватність
iRoof.top зберігає ваші чати на вашому комп'ютері. З моделлю, яка теж працює на вашому комп'ютері, нічого не має його покидати. Офлайн-режим перетворює це на правило, яке застосунок виконує, а не на звичку.
Що відбувається локально
| Крок | Де виконується | Мережа |
|---|---|---|
| Імпорт, розбір, профіль стилю | ваш комп'ютер | немає |
| Зберігання | файли JSON і медіа в каталозі даних | немає |
| Пошук в історії, PIN посилань, медіатека | ваш комп'ютер | немає |
| Опис фото, стікерів, GIF, відео | медіамодель, лише коли ви натискаєте Описати з ШІ | один запит на елемент до кінцевої точки моделі |
| Розпізнавання голосу | медіамодель, коли ви натискаєте Описати з ШІ на голосовому повідомленні або записуєте його | один запит до кінцевої точки моделі |
| Відповідь | модель чату, коли ви надсилаєте повідомлення (або його надсилає відвідувач) | запити до кінцевої точки моделі |
| Стиснення довгої історії | модель чату, як частина відповіді, коли історія перевищує бюджет | один додатковий запит до кінцевої точки моделі |
Імпорт ніколи не викликає модель. Перший виклик відбувається, коли ви надсилаєте повідомлення, натискаєте Описати або записуєте голосове. Відповідь надсилає моделі вашу експортовану історію (до бюджету історії), профіль стилю та описи медіа. Тож те, де працює модель, визначає, куди йде ваш чат: хмарна кінцева точка його отримує, модель на вашому комп'ютері — ні.
Лише офлайн
- Встановіть Ollama або LM Studio, або запустіть
llama-serverз llama.cpp. - Завантажте модель чату, що підтримує виклик інструментів, і модель зору, якщо хочете, щоб фото і стікери описувалися.
- У Налаштуваннях оберіть кінцеву точку і модель, а потім увімкніть Офлайн:
| Сервер | Базова URL-адреса |
|---|---|
| Ollama | http://localhost:11434/v1 |
| LM Studio | http://localhost:1234/v1 |
llama.cpp llama-server | http://localhost:8081/v1 (його типовий порт 8080 зайнятий iRoof.top: запускайте з llama-server --port 8081) |
- Натисніть Перевірити. Це надсилає невеликий запит і показує модель і хост, які відповіли. Можна вимкнути мережу і продовжувати чат.
Настільний застосунок налаштовується в Налаштуваннях. Він не читає вашу оболонку чи файл .env (див. Настільний застосунок), але враховує ROOFTOP_OFFLINE і OPENAI_*, якщо вони є в середовищі, з яким його запущено. Сервер читає середовище (і .env):
# --offline те саме, що ROOFTOP_OFFLINE=1
OPENAI_BASE_URL=http://localhost:11434/v1 OPENAI_MODEL=llama3.1 rooftop --offlinedocker run -p 8080:8080 -v rooftop-data:/data \
--add-host=host.docker.internal:host-gateway \
-e ROOFTOP_OFFLINE=1 \
-e OPENAI_BASE_URL=http://host.docker.internal:11434/v1 -e OPENAI_MODEL=llama3.1 \
ghcr.io/irooftop/rooftopУ Docker localhost — це сам контейнер, тож використовуйте host.docker.internal (параметр --add-host потрібен лише в Linux). Якщо Ollama відмовляє в з'єднанні, змусьте його слухати всі інтерфейси (OLLAMA_HOST=0.0.0.0).
Що забезпечує офлайн-режим
| Офлайн-режим | |
|---|---|
| Чат, підсумок історії, опис медіа, розпізнавання голосу | відхиляються, якщо кінцева точка не локальна |
| MCP-сервери через HTTP | відхиляються, якщо не локальні; помилка показується в Налаштуваннях |
Спільний доступ через інтернет (<назва>.iroof.top) | вимкнено: клієнт ретрансляції не запускається, а перемикач заблоковано |
| Telegram-бот, власний або спільний | не запускається |
| GIF за URL | ШІ не може надіслати GIF з нелокальної URL-адреси |
| Посилання Wi‑Fi | працюють |
Відхилений запит завершується до встановлення будь-якого з'єднання, а повідомлення пояснює причину: Офлайн-режим: https://openrouter.ai не є локальною кінцевою точкою. Перенаправлення з локальної кінцевої точки на інший хост теж відхиляється. Маленький значок Офлайн з'являється в заголовку бічної панелі, поки режим увімкнено. Налаштування зберігається. --offline / ROOFTOP_OFFLINE=1 вмикають режим незалежно від Налаштувань, а Налаштування не можуть його вимкнути.
Що означає «локальний»
localhost, петльова адреса (127.0.0.0/8, ::1), адреси приватних мереж (10/8, 172.16/12, 192.168/16, fc00::/7), link-local адреси та імена *.local і *.internal (як host.docker.internal). Модель на іншому комп'ютері вашої домашньої мережі вважається локальною, бо вона ніколи не покидає вашу мережу. Імена оцінюються за написанням, їх не розв'язують.
Чого офлайн-режим не може перевірити
- stdio MCP-сервери — це програми на вашому комп'ютері. iRoof.top їх запускає, але не бачить, з чим вони з'єднуються, тож додавайте лише ті, яким довіряєте, що вони залишаться локальними.
- Розпізнавання голосу використовує API чату (частину
input_audio), а не API Whisper/audio/transcriptions. Потрібні локальний сервер і модель, які приймають там аудіо. Якщо ваш не приймає, голосове повідомлення все одно зберігається і надсилається; бракує лише його тексту. - Генерація зображень і мовлення існує лише як інструменти MCP. В офлайні для них використовуйте локальний MCP-сервер.
- Люди, з якими ви ділитеся, відкривають ваші посилання Wi‑Fi у своїх браузерах. Офлайн-режим регулює цей застосунок, а не їхні пристрої.
Безпечно діліться з друзями
| Посилання | Що відбувається |
|---|---|
Wi‑Fi http://<ваша IP>:8737/s/<назва> | ніколи не покидає вашу локальну мережу |
Інтернет https://<назва>.iroof.top/s/<назва> | застосунок відкриває одне вихідне WebSocket-з'єднання з хабом, який пересилає ним HTTP-запити відвідувача та відповіді вашого застосунку |
З посиланням з інтернету ваш експорт, чати і модель залишаються на вашому комп'ютері, а хаб не зберігає жодного з них. Хаб зберігає лише запис облікового запису: ваше ім'я, хеш вашого секрету і час, коли він вас востаннє бачив.
Будьте чесними щодо того, що це не дає. Хаб завершує TLS, тому, як будь-який зворотний проксі, технічно бачить трафік, що через нього проходить: що вводить відвідувач, відповіді персонажа та історію, яку посилання дозволяє відвідувачам читати (Відвідувачі можуть читати експорт, типово нічого). Він пересилає лише сторінки відвідувачів (/s/…, /api/s/…, ресурси сторінки) і відкидає cookie в обидва боки; ваш інтерфейс власника та налаштування через нього ніколи не доступні. Якщо це забагато довіри, використовуйте посилання Wi‑Fi або запустіть власний хаб ретрансляції. Більше про посилання для спільного доступу.
В офлайн-режимі ретрансляція iroof.top вимкнена. Посилання Wi‑Fi продовжують працювати.
Telegram-бот
Відповідь з Telegram публікує у вашу групу:
- нові повідомлення відвідувачів (ім'я, назву посилання, текст або мітку медіа з описом чи розшифровкою та коротку попередню версію повідомлення, на яке вони відповідають) і відповіді ШІ;
- ніколи експортовану історію. Старі повідомлення не передаються.
У ботів немає наскрізного шифрування: текст проходить через Telegram відкритим. Зі спільним ботом він також проходить через хаб, який зберігає лише те, яка група належить якому обліковому запису. Власний бот спілкується з Telegram напряму, без хабу. Офлайн-режим вимикає обидва.
Куди йдуть ваші дані
| Дані | Куди йдуть |
|---|---|
| Експорти, чати, налаштування, ключ API | каталог даних на вашому комп'ютері |
| Імпорт і профіль стилю | нікуди |
| Історія, профіль стилю, ваші повідомлення | обрана вами кінцева точка моделі, при кожній відповіді |
| Фото і голос | кінцева точка медіамоделі, при Описати або запису голосового |
| Повідомлення відвідувачів через посилання Wi‑Fi | ваш комп'ютер і ваша кінцева точка моделі |
| Повідомлення відвідувачів через посилання з інтернету | хаб (дорогою), ваш комп'ютер, ваша кінцева точка моделі |
| Повідомлення відвідувачів через Telegram | додатково Telegram, а для спільного бота — хаб |
| Офлайн-режим | лише локальна кінцева точка моделі, лише посилання Wi‑Fi, без Telegram |