Нофелет — частная система организации пространств для общения
и обмена данными в пределах ограниченного круга пользователей.
Система построена по модели планетной системы. Центральный элемент —
Солнце: общее пространство, существующее постоянно.
Вокруг него располагаются планеты — временные
пространства, создаваемые пользователями. Каждое пространство содержит
собственный голосовой канал, текстовый чат, раздел файлов, общий
блокнот и холст; данные одного пространства недоступны из других.
Цели и задачи
Предоставить ограниченному кругу пользователей средства голосовой связи, обмена сообщениями и файлами без процедуры регистрации и без хранения паролей.
Обеспечить разделение общения по темам и составу участников: каждое пространство имеет собственный перечень допущенных лиц.
Исключить накопление данных: система предназначена для текущего взаимодействия, а не для хранения; информация удаляется автоматически по установленным срокам.
Сохранять минимальный объём и сложность системы: одна инсталляция обслуживает один круг пользователей.
Принципы работы
Беспарольная аутентификация. Вход выполняется по одноразовой ссылке, направляемой на адрес электронной почты. Пароли и иные постоянные учётные данные на сервере не хранятся.
Закрытый контур. Доступ предоставляется только адресам из списка допуска, который ведёт владелец системы. Регистрация посторонних лиц невозможна; система не раскрывает, допущен ли конкретный адрес.
Эфемерность данных. Планета существует ограниченный срок с момента создания (по умолчанию 12 часов) либо до погашения владельцем; продление срока не предусмотрено. При погашении чат, файлы, блокнот, холст и приглашения планеты удаляются безвозвратно. В общем пространстве и в постоянных комнатах сообщения и файлы старше суток удаляются автоматически, блокнот и холст очищаются, если сутки не правились, — накопление данных исключается и в этом случае.
Ограниченный гостевой доступ. Гость приглашается владельцем планеты одноразовой ссылкой, получает доступ только к этой планете и утрачивает его по истечении срока гостевого доступа (по умолчанию сутки, но не дольше срока жизни планеты) либо при её погашении.
Постоянные комнаты по ссылке. Администратор может создать постоянную комнату и передать ссылку на неё. По ссылке в комнату входит любой, кому она передана, — без списка допуска, в качестве гостя; ссылка действует, пока администратор не погасит комнату. На орбитальном обзоре постоянную комнату видят администраторы и те участники, которые уже входили в неё по ссылке.
Прямая передача голоса. Голосовой трафик передаётся между участниками напрямую (P2P) в зашифрованном виде; сервер его не получает и не записывает. Если сеть участника не допускает прямого соединения, трафик идёт через ретранслятор — по-прежнему в зашифрованном виде, содержимое разговора недоступно и ему. Текущий путь соединения показывается в интерфейсе (см. раздел «Голосовая связь»).
Технические журналы без содержания общения. Сервер приложения и веб-сервер ведут служебные журналы для диагностики. В них фиксируются: по каждому запросу к системе — IP-адрес и адрес запрошенной страницы; адрес электронной почты — только при неудачной попытке входа (адрес отсутствует в списке допуска) и при сбое отправки письма; имена участников — при событиях голосового канала (подключение, отключение, отказ, трансляция экрана) и блокнота (отклонённые правки); названия пространств — при их погашении. Не фиксируются: тексты сообщений, содержимое файлов, блокнота и холста, голос. Ссылка входа из письма в журналы не записывается. Журналы ограничены по объёму и вытесняются по мере поступления новых записей.
Архитектура
Сведения приведены на уровне состава компонентов, без деталей реализации.
Клиентское веб-приложение (SPA) — единственный интерфейс системы; функционирует в браузере, включая мобильные устройства. Установка приложений не требуется.
Сервер приложения обеспечивает аутентификацию, управление пространствами, чат, файловый обмен и синхронизацию совместных правок блокнота и холста; события доставляются клиентам по WebSocket в режиме реального времени.
Голосовая связь — WebRTC: шифрованные соединения «каждый с каждым» в пределах пространства (до 5 участников в голосовом канале). Для участников за ограничивающими NAT трафик ретранслируется TURN-сервером без расшифровки. Предусмотрен запасной способ подключения для сетей, пропускающих только защищённый веб-трафик, — в таких условиях голос также работает.
Аутентификация — по схеме magic-link: пользователь указывает адрес почты; система сверяет его со списком допуска и направляет одноразовую ссылку с ограниченным сроком действия. Пользовательская сессия также ограничена по сроку и не продлевается автоматически.
Изоляция пространств: чат, файлы, блокнот, холст и голосовой канал пространства недоступны не-участникам. Доступ в чужое пространство предоставляется владельцем по запросу («стук»).
Хранение данных — минимальное и срочное: сообщения, файлы, текст блокнота и общий рисунок существуют в пределах срока жизни пространства и удаляются вместе с ним.
Все соединения устанавливаются по HTTPS.
Руководство пользователя
Вход в систему
На форме входа укажите адрес электронной почты и нажмите «Прислать ссылку для входа». Появится экран «Проверьте почту» с кнопкой «Запросить ещё раз». Система не сообщает, допущен ли адрес: если письма нет, проверьте папку «Спам» и правильность адреса либо обратитесь к владельцу системы.
Откройте полученное письмо «Вход в систему Нофелет» и нажмите кнопку «Войти в систему». Ссылка одноразовая, срок её действия ограничен (по умолчанию 15 минут); по истечении срока запросите новую.
При первом входе система запросит имя пользователя («Имя в системе») — под ним вы будете отображаться остальным участникам. Имя: от 2 до 32 символов — буквы, цифры, пробел, «_» и «-»; занятое имя не принимается.
Сессия действует ограниченный срок (по умолчанию 7 дней) и не продлевается; по истечении потребуется новый вход по ссылке из письма. Кнопка выхода завершает сессию досрочно.
Орбитальный обзор
После входа отображается обзор системы: Солнце в центре, планеты на орбитах, постоянные комнаты — отдельным внешним поясом без орбитальных колец. Вверху — имя вошедшего пользователя.
Подпись планеты: название, владелец, время, до которого планета живёт, и перечень присутствующих («никого», если пусто). Значки в подписи: 🔗 — постоянная комната; 🔒 — планета недоступна (требуется запрос на доступ); ⏳ — запрос отправлен, ожидается решение владельца; 🚪 с числом — количество ожидающих запросов (видит только владелец планеты).
Нажатие на Солнце или доступную планету выполняет вход в пространство. Нажатие на недоступную планету отправляет владельцу запрос на доступ (см. «Доступ в чужое пространство»).
Управление камерой: колесо мыши — масштаб; перетаскивание — поворот и наклон; клавиши со стрелками и +/− — те же действия с клавиатуры; 0 или кнопка ⌂ — вид по умолчанию. Панель кнопок управления камерой расположена у правого края.
Кнопка «+ Создать пространство» создаёт новую планету и сразу выполняет вход в неё; название назначается системой автоматически (имена планет и спутников Солнечной системы), срок жизни — по умолчанию 12 часов. Число одновременно существующих планет ограничено (по умолчанию — девять, не более двух у одного владельца); погашение своей планеты освобождает место под новую.
Администратору дополнительно доступна кнопка «Постоянная комната» — она создаёт постоянное пространство, которое не гаснет по таймеру (см. «Постоянные комнаты»).
Кнопка «Выйти» завершает сессию.
На мобильных устройствах обзор отображается списком карточек с теми же подписями и значками; действия те же — нажатие выполняет вход или отправляет запрос на доступ.
Доступ в чужое пространство («стук»)
Запрос на доступ отправляется нажатием на недоступную планету на обзоре. После отправки выводится уведомление «Постучались — владелец увидит и решит»; планета помечается значком ⏳.
Владелец видит запросы на обзоре (значок 🚪 с числом) и внутри своей планеты — блоком «имя стучится» с кнопками «Впустить» и «Отказать»; о новом запросе владельца дополнительно извещает короткий звуковой сигнал (и на обзоре, и в пространстве).
Отдельного уведомления запросившему не направляется: после одобрения значок 🔒 с планеты исчезает и вход выполняется нажатием. Частота запросов ограничена; при превышении система сообщает, что запрос уже отправлен.
Гость запросы на доступ отправлять не может. Исключить участника из пространства или выйти из его состава нельзя — состав сбрасывается только погашением пространства.
Пространство на настольном устройстве
Раскладка комнаты на широком экране (от 981 пикселя) выполнена в виде приборной панели.
Верхняя панель. Слева — показание «связь» (есть / нет — состояние соединения с сервером), в центре — название пространства и его тип: «общее пространство» (Солнце), «постоянная комната по ссылке» либо «владелец: имя · живёт до дата время», справа — показание «голос»: «выкл», «соединение», «один» (в канале только вы), «защищён» (все соединения зашифрованы), «сбой», «переподкл.».
Приборы по краям. Слева шкала «экипаж» — число присутствующих и число мест на сцене (например, «1/6»); справа шкала «ресурс» — доля оставшегося срока жизни пространства с подписью остатка («3ч 40м»); при остатке менее одной двенадцатой шкала переходит в предупреждающий режим. Для Солнца и постоянных комнат шкала «ресурс» полная, подпись — «∞». Показания обновляются раз в минуту.
Сцена. В центре — плитки участников (по умолчанию шесть мест, пустые подписаны «свободно»; при большем числе присутствующих мест добавляется). На плитке: имя (★ — администратор, «(гость)» — гость, значок экрана — ведёт трансляцию), значок микрофона (в голосовом канале / микрофон выключен / не в канале), подпись «это вы» на своей плитке; плитка говорящего подсвечивается. У плиток собеседников в голосовом канале — вертикальный регулятор индивидуальной громкости (от 0 до 200 %, двойной щелчок — сброс к номиналу); выбранные значения запоминаются в браузере.
Боковые панели. Слева — панель с вкладками «Файлы» и «Блокнот», справа — «Чат». Панели сворачиваются и разворачиваются кнопками пульта; центральная область занимает освободившееся место. Перетаскивание за внутреннюю кромку панели изменяет её ширину (от исходной до увеличенной на 30 %); состояние панелей сохраняется в пределах вкладки браузера.
Пульт внизу состоит из трёх консолей.
Консоль «голос»: кнопка «Подключиться» / «Отключиться», микрофон (выключение и включение), замок шифрования (состояние и детали соединений), устройства звука (выбор микрофона и вывода). Пока вы не подключены к голосовому каналу, микрофон, замок и устройства звука погашены (недоступны), но остаются на месте. Подпись консоли показывает состояние: «выкл», «подключение…», «в эфире» либо «молчу» (микрофон выключен), «переподключение…»; в состоянии подключения к подписи добавляются путь соединения — «P2P» (все соединения прямые) или «TURN» (хотя бы одно через ретранслятор) — и число людей в голосовом канале.
Консоль «отсеки»: «Файлы» / «Блокнот» (подпись соответствует открытой вкладке; нажатие сворачивает и разворачивает левую панель), «Чат» (то же для правой панели), «Холст» (открывает и закрывает общий холст), трансляция экрана (кнопка без подписи; доступна только в голосовом канале и пока не транслирует другой участник; показывается, если браузер поддерживает захват экрана).
Консоль «пространство»: «Гость» (владельцу планеты — одноразовая гостевая ссылка; после нажатия ссылка помещается в буфер обмена, кнопка на короткое время меняется на «Ссылка в буфере»), «Ссылка» (администратору в постоянной комнате — постоянная ссылка на комнату, также в буфер обмена), «К орбитам» (возврат к обзору; пространство продолжает существовать), «Погасить» (владельцу планеты, администратору в постоянной комнате) и кнопка выхода (питание) — завершает сессию.
Предохранитель «Погасить». Первое нажатие взводит кнопку: она меняется на «Точно?» и окрашивается в цвет тревоги; второе нажатие в течение пяти секунд гасит пространство с удалением всего содержимого. Если второго нажатия не последовало, кнопка возвращается в исходное состояние.
Фон комнаты на настольном устройстве — перспективная сетка, слегка смещающаяся за указателем мыши; при включённом в системе режиме уменьшенного движения анимация отключается.
Обновление страницы возвращает в текущее пространство (в пределах вкладки браузера). Подключение к голосовому каналу после обновления выполняется заново кнопкой «Подключиться» — браузер требует явного действия пользователя для доступа к микрофону.
При истечении срока жизни или погашении пространства все присутствующие возвращаются на обзор с уведомлением «Пространство погасло — срок его жизни истёк».
Планшет и телефон
На экранах средней ширины (от 701 до 980 пикселей) комната отображается в одну колонку: сцена сверху, чат под ней, панель «Файлы» / «Блокнот» внизу. Приборной панели и пульта нет — кнопки выводятся обычной строкой внизу.
На телефоне (до 700 пикселей) чат и панель «Файлы» / «Блокнот» по умолчанию скрыты и выезжают поверх сцены по кнопкам у правого края: чат (со счётчиком непрочитанных сообщений), файлы или блокнот (значок соответствует открытой вкладке), холст. Открытие холста скрывает выдвижные панели; холст занимает весь экран, в портретной ориентации выводится подсказка «Поверните телефон — холст станет крупнее».
Кнопки нижней строки: «Подключиться»; после подключения — микрофон, замок шифрования (детали выводятся блоком над строкой кнопок), «Покинуть голос», «Транслировать» / «Остановить показ» (если браузер поддерживает захват экрана — на мобильных браузерах, как правило, нет); устройства звука; «+ Гость», «Ссылка», «К орбитам», «Погасить» (с подтверждением в стандартном окне браузера), «Выйти».
Плитки участников на телефоне располагаются по две в ряд; предупреждение о стадии MVP в комнате не выводится.
Голосовая связь
Кнопка «Подключиться» запрашивает доступ к микрофону и выполняет вход в голосовой канал пространства. В канале одновременно не более 5 участников; при превышении выводится сообщение «В голосе максимум 5 человек». Каждая вкладка браузера считается отдельным участником канала.
Микрофон при захвате обрабатывается средствами браузера: подавление эха, шумоподавление, автоматическая регулировка усиления. Кнопка микрофона выключает и включает его; состояние выключенного микрофона видно остальным на плитке и сохраняется при переподключении.
Замок шифрования показывает состояние голосовых соединений: «ждём участников» (в канале только вы), «соединение устанавливается», «все соединения зашифрованы», «сбой соединения с участником». На настольном устройстве наведение или нажатие на замок раскрывает детали по каждому собеседнику: алгоритм шифрования и путь соединения — напрямую между участниками либо через ретранслятор (в том числе в режиме для сетей, пропускающих только защищённый веб-трафик). Голосовой трафик шифруется всегда — в некоторых браузерах (например, Firefox) название алгоритма недоступно, и индикатор показывает обобщённое «зашифровано».
Кнопка устройств звука открывает выбор микрофона и устройства вывода (наушники или динамики); выбор запоминается в браузере, смена микрофона действует сразу, без переподключения. Названия устройств появляются после первого подключения к голосу. Отображаются только те настройки, которыми используемый браузер позволяет управлять; в остальных случаях применяются устройства, заданные в операционной системе. Отключённое устройство заменяется устройством по умолчанию.
При кратковременном обрыве связи с сервером система удерживает микрофон и намерение оставаться в канале около минуты и восстанавливает соединения автоматически (сообщение «Голос: связь прервалась, переподключаюсь…»); если восстановить не удалось — «Связь не восстановилась — подключитесь к голосу заново».
Видео с камеры в системе отсутствует: передаются только голос и трансляция экрана.
Трансляция экрана
Кнопка трансляции (на пульте — в консоли «отсеки»; на телефоне — «Транслировать») доступна участнику голосового канала и показывает остальным ваш экран или окно. Передаётся только изображение, без звука, с ограниченной частотой кадров; одновременно в пространстве идёт одна трансляция — пока транслирует другой участник, кнопка недоступна.
Зрители видят трансляцию во встроенном плеере на сцене над плитками участников, в окне ограниченной ширины (если холст закрыт) с подписью «имя транслирует экран» и управляют воспроизведением сами. Транслирующий видит панель «Вы транслируете экран» с кнопкой «Остановить».
Завершить показ — кнопкой «Остановить» (на телефоне — «Остановить показ») или средствами браузера. После кратковременного обрыва связи трансляция возобновляется, если экран за это время не занял другой участник.
Чат
Правая панель «Чат» содержит ленту сообщений (автор, время, текст) и поле «Сообщение…»; отправка — кнопкой со стрелкой или клавишей Enter. Точка в заголовке панели отражает состояние соединения с сервером; при потере связи отправка недоступна.
Сообщение — до 2000 символов; частота отправки ограничена, при превышении выводится «Слишком часто — подождите несколько секунд». Редактирование и удаление отдельных сообщений не предусмотрены.
История загружается порциями по 50 сообщений; кнопка «↑ раньше» подгружает более старые. Лента автоматически прокручивается к новым сообщениям, только если она уже была прокручена вниз.
Вход и выход в пространство отмечаются в ленте служебной строкой в формате «время → имя» (вход) и «время ← имя» (выход). Такие отметки эфемерны: они видны только во время текущего сеанса и в историю не сохраняются.
Сообщения хранятся, пока живёт пространство; в общем пространстве и постоянных комнатах — сутки.
Файлы
Вкладка «Файлы» левой панели: кнопка «+ Файл» загружает один файл за раз (перетаскивание файлов не поддерживается). В списке — имя файла (нажатие скачивает), размер, автор и время загрузки.
Ограничения: до 50 МБ на файл; на пространство — по умолчанию не более 50 файлов и 500 МБ суммарно. При превышении загрузка отклоняется с пояснением. Имя файла длиннее 200 символов усекается.
Удаление доступно автору файла и владельцу пространства, а администратору — для любого файла. Изменения списка появляются у всех участников сразу.
Файлы удаляются вместе с пространством; в общем пространстве и постоянных комнатах — по истечении суток с момента загрузки.
Блокнот
Вкладка «Блокнот» левой панели — общий текстовый документ пространства: его правят несколько участников одновременно, изменения появляются у остальных сразу и не перезаписывают друг друга; положение курсора при чужих правках сохраняется. Форматирование не поддерживается — только текст.
Объём — до 100 000 символов; в нижней строке панели показывается счётчик символов (при приближении к пределу — «осталось N»). Текст сверх предела отсекается сервером с уведомлением «Блокнот больше 100 000 символов — лишнее обрезано»; слишком крупная единовременная вставка отклоняется с предложением вставить текст частями.
Кнопка «Скачать» сохраняет текущий текст файлом в формате «имя пространства — блокнот.txt».
Блокнот существует, пока живёт пространство, и удаляется вместе с ним (подпись «исчезнет вместе с пространством»); в общем пространстве и постоянных комнатах он очищается, если сутки не правился.
Холст
Кнопка «Холст» открывает общий рисунок пространства: рисовать может любой участник, изображение у всех одно и то же и обновляется по мере ведения штриха. Открытие и закрытие холста — действие локальное: у остальных участников холст при этом не открывается, но правки они увидят, открыв его.
Инструменты: перо, ластик (удаляет штрих целиком, а не стирает точки), шесть цветов, три толщины линии. Ограничения: до 3000 штрихов на холст (лишние удаляются сервером с уведомлением), до 2000 точек в одном штрихе.
Действия: «PNG» — сохраняет текущее изображение файлом «имя пространства — холст.png» на тёмной подложке; «Очистить» — убирает рисунок у всех участников (с подтверждением); «Закрыть».
На настольном устройстве холст занимает сцену вместо плиток участников, а кнопкой «⛶» разворачивается на весь экран (клавиша Esc или та же кнопка возвращают обратно); на телефоне холст всегда открывается на весь экран. Отмена последнего действия не предусмотрена.
Рисунок, как и остальное содержимое пространства, удаляется вместе с ним; в общем пространстве и постоянных комнатах — очищается, если сутки не правился.
Гостевой доступ
Владелец планеты нажимает «Гость» (на телефоне — «+ Гость»): одноразовая ссылка-приглашение помещается в буфер обмена; передать её можно любым способом. Число приглашений не ограничено; в общее пространство и в постоянные комнаты гостей таким способом не приглашают.
Приглашённый открывает ссылку, видит экран «Вас пригласили на «имя планеты»» с указанием срока действия приглашения, указывает имя («Имя в пространстве») и нажимает «Зайти в гости»; адрес почты не требуется. Если имя занято, система предлагает вариант с числовым суффиксом («Имя-2»).
Приглашение одноразовое; срок его действия — до истечения срока гостевого доступа (по умолчанию сутки) или до погашения планеты, что наступит раньше. Использованная или просроченная ссылка выводит сообщение «Приглашение недействительно».
Гостю доступна только планета, в которую он приглашён: обзора орбит и кнопки «К орбитам» у него нет — после входа он сразу попадает в пространство. На плитке гость помечен «(гость)». Внутри пространства гость пользуется чатом, файлами, блокнотом, холстом, голосом и трансляцией экрана наравне с остальными; создавать пространства и отправлять запросы на доступ гость не может.
По истечении срока гостевой доступ прекращается, учётная запись гостя удаляется, имя освобождается. Сообщения и файлы, оставленные гостем, сохраняются до истечения срока пространства под служебной подписью «бывший гость».
Постоянные комнаты
Постоянную комнату создаёт администратор кнопкой «Постоянная комната» на обзоре; название назначается системой из реестра астрономических имён. Комната не гаснет по таймеру и существует до погашения администратором.
В комнате администратору доступны кнопка «Ссылка» — копирует постоянную ссылку на комнату (по ней войдёт любой, кому её передали) — и «Погасить». Постоянную ссылку следует передавать только доверенным лицам: она действует, пока комната не погашена.
Открывший ссылку видит экран «Вход в комнату «имя»», указывает имя («Имя в комнате») и нажимает «Войти» — адрес почты не требуется. Такой участник входит в качестве гостя: доступна только эта комната, срок доступа — по умолчанию сутки с момента входа; сама ссылка бессрочна, и по её истечении вход выполняется по ссылке заново. Пользователь, уже вошедший в систему по почте, открыв ссылку, просто получает доступ в комнату и попадает в неё; в дальнейшем комната видна ему на обзоре.
Содержимое комнаты (сообщения и файлы старше суток, блокнот и холст, не правившиеся сутки) очищается автоматически — как у общего пространства.
Роли и права
действие
администратор
участник
гость
вход в общее пространство (Солнце)
да
да
нет
создание планеты
да
да
нет
запрос на доступ («стук»)
да
да
нет
решение по запросу на доступ
владелец планеты
владелец планеты
—
приглашение гостей
владелец планеты
владелец планеты
нет
погашение планеты
любой планеты
своей
нет
создание, ссылка и погашение постоянной комнаты
да
нет
нет
вход в постоянную комнату без ссылки
в любую
только в те, куда уже входил по ссылке
только в свою
удаление файла
любого
своего; в своей планете — любого
своего
чат, файлы, блокнот, холст, голос, трансляция экрана в доступном пространстве
да
да
да
Общее пространство (Солнце) владельца не имеет и погашено быть не может. Администратор, не являющийся владельцем планеты, запросы на доступ в неё не рассматривает и гостей в неё не приглашает.
Ограничения и сроки
что
значение по умолчанию
срок жизни планеты
12 часов с момента создания, без продления
планет одновременно / у одного владельца
9 / 2
участников в голосовом канале
5
трансляций экрана в пространстве
1
число участников пространства
не ограничено
размер файла / файлов в пространстве / суммарный объём
50 МБ / 50 / 500 МБ
длина сообщения / частота отправки
2000 символов / частота ограничена
блокнот / холст
100 000 символов / 3000 штрихов, 2000 точек в штрихе
срок хранения содержимого общего пространства и постоянных комнат
1 сутки
сессия / гостевой доступ / ссылка входа из письма
7 дней / 1 сутки / 15 минут
запросы на доступ
частота ограничена
Настройка системы (для владельца инсталляции)
Список допуска
Перечень адресов, которым разрешён вход, определяется текстовым файлом
списка допуска на сервере. Каждая строка — одно правило: точный адрес
либо маска (символ * заменяет любую часть адреса); регистр
не учитывается; текст после # — комментарий. Пометка
admin после пробела назначает права администратора системы.
Изменения применяются без перезапуска. Если файл отсутствует или пуст,
вход закрыт для всех; при первом запуске создаётся файл-шаблон.
Роль администратора определяется списком допуска и сверяется при каждом
входе; отдельно она не назначается. Администратор помимо обычных возможностей
создаёт и гасит постоянные комнаты, видит их все на орбитальном обзоре,
может погасить любую планету и удалить любой файл.
пример строки
значение
ivan@example.com
допущен указанный адрес
*@team.example.com
допущены все адреса домена
boss@example.com admin
адрес допущен с правами администратора
Конфигурационные параметры
Задаются в конфигурации инсталляции; в скобках — значения по умолчанию.
параметр
назначение
SESSION_TTL_DAYS
срок действия пользовательской сессии, дней (7)
MAGIC_LINK_TTL_MIN
срок действия ссылки входа из письма, минут (15)
GUEST_TTL_DAYS
срок гостевого доступа и гостевых приглашений, дней (1)
SPACE_TTL_DAYS
срок жизни планеты с момента создания, дней (0.5 — 12 часов)
SPACE_MAX_COUNT
предельное число одновременно существующих пространств, кроме общего (9)
SPACE_PER_USER_MAX
предельное число пространств у одного владельца (2)
SUN_CONTENT_TTL_DAYS
срок хранения сообщений и файлов общего пространства и постоянных комнат, дней (1)
FILE_MAX_COUNT_PER_SPACE
предельное число файлов в одном пространстве (50)
FILE_MAX_TOTAL_MB_PER_SPACE
предельный суммарный объём файлов одного пространства, МБ (500)
LOG_LEVEL
детальность служебного журнала: обычная либо расширенная для диагностики (обычная)
LOG_MAX_SIZE, LOG_MAX_FILE
предел объёма служебных журналов: размер файла и число хранимых файлов; старые записи вытесняются (10 МБ × 5)
Для отправки писем требуется SMTP-учётная запись (задаётся конфигурацией
инсталляции); без неё письма не отправляются. Порядок развёртывания
описан в документации репозитория проекта.
⚠ Система находится в стадии MVP: состав функций
и интерфейс могут изменяться; данные могут быть утрачены при обновлениях.