Посилання для спільного доступу
Поділитися в заголовку чату створює посилання, щоб інші люди могли говорити з персонажем, наприклад:
- друг оцінює, наскільки добре ШІ пише у вашому стилі;
- друг розмовляє з копією самого себе.
Посилання має вигляд https://<ваш хост>/s/<назва>. Відвідувачі бачать лише чат: без бічної панелі, налаштувань, нотаток, описів медіа, промпта, витрат токенів чи інших чатів.
Параметри
| Параметр | Типово | |
|---|---|---|
| Хто може відкрити | цей комп'ютер | перемикачі Wi‑Fi і Інтернет прямо в редакторі (нижче) |
| Посилання | випадкове | оберіть назву, наприклад alex |
| Відображуване ім'я | ім'я персонажа | справжні імена з експорту не показуються |
| PIN | немає | 4–64 символи, зберігається як хеш Argon2id. ✨ створює 6 цифр |
| Розмови | приватні | Приватні: одна розмова на відвідувача. Спільна кімната: усі в одній розмові |
| Відвідувачі можуть читати експорт | нічого | нічого, останні N повідомлень або все |
| Ліміти | 50 відвідувачів, по 200 відповідей | кожна відповідь витрачає токени з вашого ключа. 0 = без ліміту |
| Відвідувачі можуть змусити писати першими | вимкнено | показує кнопку 💬: персонаж надсилає повідомлення без повідомлення від відвідувача |
| Відвідувачі можуть переписати відповідь | вимкнено | показує кнопку ↻: остання відповідь персонажа пишеться заново. Обидві використовують одну відповідь з ліміту, а сервер їх відхиляє, поки вони вимкнені |
| Спливає / активне | ніколи / так | призупинити або завершити посилання без видалення |
| Група Telegram | вимкнено | відповідь з Telegram |
У вікні «Поділитися» можна Читати кожну розмову відвідувача і Завершити її, щоб відкликати. Кожен відвідувач показує адресу, з якої востаннє писав; під час завершення розмови Також заблокувати тримає цю адресу подалі від посилання (стартова сторінка, нові розмови і вже відкриті), доки ви її не Розблокуєте. У спільній мережі одна адреса може належати кільком людям. Адреси зберігаються разом із посиланням, лише на вашому комп'ютері.
З ким говорить персонаж
Відвідувач — це не ви. Коли Мія відкриває ваше посилання, персонаж знає, що пише Мія, що посилання походить від вас, і що історія та ваші нотатки стосуються вас і їх, а не Мії: він зустрічає її як когось нового. Без імені вона просто гостя.
| Персонаж бачить | |
|---|---|
| Приватне посилання | одну розмову з відвідувачем під іменем, яке той назвав (або «Гість») |
| Спільна кімната | груповий чат: кожне повідомлення має ім'я відправника, і люди можуть приєднатися будь-коли |
| Ваша історія експорту | ваші повідомлення під вашим ім'ям, потім повідомлення відвідувача, щоб вони ніколи не плуталися |
Системний промпт фіксований для кожної розмови, тож провайдери його кешують: ім'я відвідувача визначається на початку розмови, а в кімнаті імена подорожують разом із повідомленнями. Відвідувач, який називає себе так само, як персонаж або ви, стає, наприклад, «Alex (гість)», а друга «Ann» у кімнаті — «Ann 2».
Запрошення
| Посилання | Відкриває |
|---|---|
/s/alex | стартову сторінку |
/s/alex#pin=2468 | чат одразу. PIN іде після #, тож ніколи не потрапляє на сервер чи в журнали |
/s/alex#name=Greg&pin=2468 | те саме, з уже заповненим іменем відвідувача (?name=Greg теж працює) |
Кнопка QR посилання відкриває код для сканування телефоном — для кожної адреси, яка працює. Одразу після збереження Копіювати запрошення з PIN копіює посилання разом із PIN.
Відкриття посилань на інших пристроях
На сервері посилання просто використовують адресу сервера. Настільний застосунок (і rooftop на 127.0.0.1) працює лише на вашому комп'ютері, тому у вікні «Поділитися» і редакторі посилань є два перемикачі. Кожен показує, чи він Активний, Підключається чи Не працює, а редактор одразу показує адресу, яку матиме посилання.
┌──────────── ваш комп'ютер ────────────┐
телефон у Wi‑Fi ───▶│ :8737 лише сторінки відвідувачів │
│ │
будь-хто ──▶ назва.iroof.top ══ одне вихідне WebSocket ══▶ застосунок │
│ │
│ 127.0.0.1 інтерфейс власника, │
│ налаштування і API │
└───────────────────────────────────────┘| Wi‑Fi і локальна мережа | Інтернет | |
|---|---|---|
| Адреса | http://<ваша IP>:8737/s/<назва> | https://<назва>.iroof.top/s/<назва> |
| Хто | пристрої в тій самій мережі | будь-хто, поки працює застосунок |
| Як | другий слухач, який обслуговує лише сторінки відвідувачів | одне вихідне WebSocket до ретранслятора; в інтернеті ніщо не слухає |
| Ваші дані | залишаються на вашому комп'ютері | залишаються на вашому комп'ютері, але повідомлення відвідувачів проходять через ретранслятор |
- Порт Wi‑Fi після перезапусків лишається тим самим, тож надруковані QR-коди продовжують працювати. У macOS дозвольте вхідні з'єднання, якщо фаєрвол запитає.
- Назву для інтернету ви обираєте і змінюєте самі (Змінити біля адреси). Ретранслятор пересилає лише
/s/…,/api/s/…і ресурси сторінки, відкидає cookie в обидва боки і показує сторінку «офлайн», поки застосунок закритий. - Хочете власний ретранслятор замість iroof.top? Див. Хаб ретрансляції.
- Офлайн-режим вимикає і блокує перемикач інтернету; Wi‑Fi продовжує працювати. Що може бачити ретранслятор: Офлайн-режим і приватність.
Захист
| Захист | Ліміт |
|---|---|
| Хибні PIN з однієї IP | після 5: блокування на 1 хв, потім 2, 4… до 1 год |
| Хибні PIN на одному посиланні, усі IP | 20 за 15 хв: блокування на 5 хв, подвоюється до 24 год |
| Повідомлення на відвідувача | 30 на хвилину, 10 відповідей на хвилину |
| Нові розмови | 20 на годину з IP |
Лічильники зберігаються в пам'яті. 6-значний PIN не можна вгадати за розумний час. За зворотним проксі задайте ROOFTOP_TRUST_PROXY=true, щоб лічильники бачили справжні IP клієнтів.
Сесії відвідувачів використовують випадковий токен із 26 символів у /s/<назва>/<токен>, який пам'ятає браузер і який захищений від витоку заголовком Referrer-Policy: no-referrer. Відвідувачі можуть завантажувати лише ті медіа, які їм дозволено бачити.