Настройка - major1ink/Beacon-Table GitHub Wiki

Программа работает с настройками по умолчанию. Если нужно что-то поменять, например порт или каталоги, это делается в файле beacon.conf, переменными окружения или флагами.

Файл beacon.conf

При первом запуске рядом с программой появляется beacon.conf. В нём перечислены все настройки, каждая закомментирована и подписана. Чтобы поменять настройку:

  1. Уберите # в нужной строке.
  2. Сохраните файл.
  3. Перезапустите программу.

Если в новой версии появляются новые настройки, они дописываются в конец файла при первом запуске. Ваши правки при этом остаются как были.

BEACON_ADDR=:8080              # адрес и порт
BEACON_DATA_DIR=data           # база, журнал, сцены, заметки
BEACON_UPLOADS_DIR=uploads     # карты, токены, аудио
BEACON_BEHIND_PROXY=false      # сервер стоит за HTTPS-прокси
BEACON_ALLOWED_ORIGINS=        # доп. адреса, с которых можно открывать стол
BEACON_LOG_FILE=               # файл журнала; пусто — data/beacon.log, off — не писать
BEACON_OPEN_BROWSER=auto       # открывать стол в браузере при запуске: auto/true/false

Настройки в окне ведущего

Часть настроек можно поменять прямо в окне ведущего: раздел «Настройки», блок «Настройки сервера». Там же видно, откуда взято текущее значение. Пути и порт форма только показывает, менять их можно в файле. Настройка, заданная переменной окружения или флагом, помечена: файл её всё равно не пересилит.

Уровень журнала и квоты применяются сразу. Для остального нужен перезапуск, и форма об этом пишет.

Переменные окружения и флаги

Те же настройки можно задать переменными окружения с теми же именами или флагами:

./beacon-table --addr 127.0.0.1:8080 --data /var/lib/beacon/data --behind-proxy

Если настройка задана в нескольких местах, действует более конкретное значение. Порядок такой: флаг, переменная окружения, файл, значение по умолчанию. Полный список флагов выводит ./beacon-table --help.

Работа за HTTPS-прокси

[!WARNING] Включайте BEACON_BEHIND_PROXY, только если снаружи стол открывается по HTTPS. Настройка помечает cookie флагом Secure, и по обычному http они перестанут работать: войти будет нельзя.

Обратная ошибка тоже опасна. Если стол стоит за прокси, а настройка выключена, токен сессии уйдёт открытым текстом при первом же заходе по http://.

Эта же настройка запрещает подключаться к столу клиентам, которые не сообщили адрес страницы. Браузер такой заголовок присылает всегда, а скрипт или curl нет. Ещё она не даёт импорту модулей Foundry ходить по ссылке от ведущего в приватную сеть и на localhost. Без --behind-proxy импорт может скачать модуль и с соседней машины в локальной сети.

Разрешённые адреса

В обычной установке BEACON_ALLOWED_ORIGINS не нужен. Сервер узнаёт свой адрес из самого запроса и принимает подключения только со страниц, открытых по этому адресу.

Настройка понадобится, если обратный прокси не передаёт исходный Host (nginx без proxy_set_header Host $host). Тогда стол не открывается, а в журнале видно «отклонён WS-хендшейк». Лучше исправить прокси. Если это почему-то невозможно, перечислите в BEACON_ALLOWED_ORIGINS адреса, с которых открывают стол.

Место под загрузки

По умолчанию место не ограничено. Если сервер работает на VPS с небольшим диском, задайте квоту: общую, на каждый мир или обе сразу.

BEACON_UPLOADS_QUOTA=20GB        # на весь сервер
BEACON_UPLOADS_WORLD_QUOTA=5GB   # на каждый мир по отдельности

Загрузка сверх квоты отклоняется, в сообщении видно, сколько места занято и сколько отведено. Само ничего не удаляется. Остаток показан в окне ведущего в разделе «Ассеты», строкой над сеткой файлов. Импорт мира из архива откажет ещё до распаковки, если содержимое не поместится.

Квота считает только каталог загрузок. Резервные копии хранятся отдельно, их ограничивает своя настройка BEACON_BACKUP_KEEP.

Защита входа от подбора

Пять неудачных попыток входа подряд с одного адреса или под одним логином закрывают этот адрес или логин на минуту, дальше пауза растёт. Успешный вход обнуляет счётчик. Саморегистрация ограничена отдельно. Счётчики хранятся в памяти, поэтому перезапуск сервера их сбрасывает.

Если при обычном входе появляется «слишком много попыток входа», значит, кто-то (может быть, вы сами) недавно ошибался паролем к этому логину. Подождите минуту. Навсегда заблокировать так dm нельзя: доступ вернётся сам, когда пауза истечёт.

Что дальше

Журнал, резервные копии и обновление описаны на странице Эксплуатация, настройка за обратным прокси — на странице Запуск на сервере.