Foundry Virtual Tabletop — это удобная платформа для онлайн-ролевок, которая позволяет владельцам лицензии самостоятельно поднять игровой сервер: как на личном компьютере, так и на арендованном VPS/VDS. В этой статье мы разберём два способа хостинга:
- Локальная установка на вашем ПК (Windows, macOS или Linux) с доступом игроков по локальной сети.
- Удалённый сервер на Linux-VPS: установка Node.js-версии Foundry, настройка автозапуска через systemd, обратного прокси на nginx и HTTPS с помощью Let’s Encrypt.
Шаг за шагом покажем все необходимые команды и приведём примеры конфигураций. В завершение дадим практические советы по безопасности, резервному копированию данных и удобному управлению вашим сервером.
Локальный сервер Foundry VTT на вашем компьютере
Локальный (самостоятельный) хостинг предполагает запуск Foundry VTT на вашем личном компьютере или ноутбуке. Игроки будут подключаться напрямую к вашему устройству через браузер. Ниже представлены инструкции по установке для разных операционных систем, а затем – настройка сети для доступа игроков.
Установка Foundry VTT на Windows
- Скачивание установщика. Войдите в свой аккаунт на официальном сайте Foundry VTT и перейдите в раздел лицензий. Нажмите Download и выберите версию для Windows. Сохраните инсталлятор (файл
.exe
) на компьютер. (Примечание: скачивание ПО возможно только при наличии приобретенной лицензии Foundry VTT). - Установка программы. Запустите скачанный инсталлятор Foundry VTT и выполните шаги мастера установки, как для любой другой программы на Windows. Можно установить в расположение по умолчанию (Program Files) или указать свой путь. Совет: установка в нестандартную папку (например,
C:\FoundryVTT
) может упростить дальнейшие обновления, минуя ограничения прав доступа Windows. - Первый запуск. После установки найдите ярлык Foundry VTT и запустите приложение. При первом запуске появится окно активации – введите свой лицензионный ключ Foundry VTT и нажмите "Submit" для активации. Затем откроется меню настройки сервера Foundry.
Установка Foundry VTT на macOS
- Загрузка приложения. Скачайте версию Foundry VTT для macOS с сайта разработчика через страницу лицензий, выбрав вариант для macOS. Вы получите образ диска (DMG) или архив с приложением.
- Установка. Если загрузили .DMG, откройте его и перенесите значок Foundry VTT в папку Приложения. При запуске macOS может заблокировать приложение, так как оно не имеет официальной подписи Apple. Чтобы открыть Foundry VTT, щелкните по приложению правой кнопкой и выберите Открыть (появится запрос на запуск неподписанного приложения – подтвердите, что доверяете ему). Эта процедура нужна только при первом запуске.
- Активация. Запустите Foundry VTT на Mac. Введите лицензионный ключ, чтобы активировать программу (процесс аналогичен Windows). После активации откроется окно настройки сервера Foundry.
Установка Foundry VTT на Linux
- Скачивание архива. Зайдите в свой аккаунт Foundry VTT, в разделе лицензий выберите загрузку для Linux. Для Linux существует два варианта файлов: стандартный дистрибутив (Electron) и версия Node.js. Рекомендуется скачать Node.js-версию для использования Foundry в режиме сервера без графического интерфейса (headless). Скачайте архив (ZIP) с Foundry VTT на свой компьютер.
Распаковка и установка. Перенесите архив на вашу Linux-систему (например, через SCP/SFTP или прямой загрузкой с сервера). Затем распакуйте архив в выбранную директорию. Например, можно создать папку ~/foundryvtt
и распаковать туда:
mkdir -p ~/foundryvtt
unzip foundryvtt.zip -d ~/foundryvtt
После распаковки убедитесь, что файл запуска имеет права на исполнение. В папке ~/foundryvtt
находится исполняемый файл foundryvtt (или foundryvtt.sh
). Если нужно, сделайте его исполняемым: chmod +x ~/foundryvtt/foundryvtt
. Теперь вы можете запустить Foundry напрямую. Например, двойной клик по foundryvtt
(в графической среде) или командой в терминале:
~/foundryvtt/foundryvtt
Первый запуск откроет окно приложения или запустит сервер в терминале (в зависимости от сборки). Введите лицензионный ключ для активации, после чего запустится сервер Foundry.
Примечание: Node.js-версия Foundry не имеет графического интерфейса – сервер управляется через веб-браузер. Запуск Node-версии описан в разделе про VPS ниже. Для локального использования можно также использовать графическую (Electron) версию – она запускается как обычное приложение с окном.
Настройка сетевого доступа игроков
После того как Foundry VTT запущен на вашем компьютере, нужно настроить доступ игроков к вашему серверу:
- Подключение в пределах локальной сети.
Если вы и ваши игроки в одной домашней или офисной сети (например, подключены к одному роутеру), достаточно передать им локальный IP-адрес вашего ПК и порт. При старте сервера Foundry обычно показывает адрес видаhttp://192.168.x.y:30000
. Игроки вводят этот URL в браузере, и подключаются напрямую внутри LAN. - Открытие порта 30000.
По умолчанию Foundry слушает TCP-порт 30000. Убедитесь, что системный брандмауэр не блокирует этот порт: После этого сервер сможет принимать входящие соединения на порту 30000.- Windows: при первом запуске может появиться запрос безопасности — подтвердите его. Или вручную откройте порт в настройках Брандмауэра Windows Defender.
- Доступ из Интернета (порт-форвардинг).
Чтобы игроки за пределами вашей локальной сети смогли зайти на сервер, настройте переадресацию порта на роутере: после этого любой запрос наhttp://<ваш-внешний-IP>:30000
будет перенаправлен на ваш сервер Foundry. Проверить, что порт открыт, можно через онлайн-сервис (например, canyouseeme.org) — но он покажет успех только при запущенном сервере.- Найдите в настройках маршрутизатора раздел Port Forwarding (Переадресация портов).
- Запишите внешний порт 30000 (TCP) и укажите внутрений IP-адрес вашего компьютера (тот же, что вы передавали игрокам) с портом 30000.
- Сохраните правило и перезагрузите роутер, если нужно.
Linux (UFW): выполните в терминале
sudo ufw allow 30000/tcp
Если у вас нет прямого публичного IPv4-адреса (или провайдер применяет CG-NAT), классический порт-форвардинг не сработает. В такой ситуации можно воспользоваться виртуальной LAN-сетью на базе сервисов:
- Выбор и установка клиента. Установите на своём компьютере и попросите игроков скачать одно из бесплатных приложений:
- LogMeIn Hamachi
- Radmin
- ZeroTier
- Создание приватной сети. В клиенте создайте новую сеть (задайте имя и пароль) и передайте эти данные участникам. Все подключившиеся автоматически попадают в единое «виртуальное» частное пространство.
- Получение виртуального IP. После подключения каждый игрок получит адрес (например, в Hamachi это 25.x.x.x). Хост сообщает свой получившийся IP и порт 30000, и остальные заходят в Foundry точно так же, как по локалке.
- Особенности.
- Всем участникам нужно использовать один и тот же клиент и присоединиться к вашей сети.
- Трафик идёт через сервера выбранного сервиса, что может вносить дополнительные задержки.
- Зато не требуется настраивать роутер или беспокоиться о CG-NAT у провайдера.
Таким образом, вы получаете возможность «склеить» удалённых игроков в единую локальную сеть без прямого доступа к вашему домашнему интернет-каналу.
Поэтому такой способ стоит рассматривать, только если обычный проброс порта невозможен. Hamachi традиционно прост в настройке, но ограничен 5 участниками в бесплатной версии. Radmin – бесплатная альтернатива без такого ограничения. ZeroTier – еще один популярный вариант, часто рекомендуемый за стабильность. Имейте в виду, что при использовании подобной сети вы фактически даете участникам более широкий доступ к своему компьютеру (в рамках виртуальной сети), поэтому доверяйте только знакомым людям.
- Облачный сервер или прокси: рассмотрите перенос хостинга на удаленный сервер (см. следующий раздел). Либо используйте специальные сервисы туннелирования, такие как ngrok или Cloudflare Tunnel, которые позволяют открыть доступ к локальному серверу без прямого IP (эти варианты вне фокуса данной статьи, но существуют как альтернативы).
Настроив соединение, передайте игрокам интернет-адрес для подключения. Как правило, это комбинация вашего внешнего IP и порта, например: http://ваш_IP:30000
. Foundry VTT в окне приглашения также показывает “Internet Address” – его можно скопировать и отправить игрокам. Если настроили динамический DNS или привязали доменное имя к своему адресу, можно использовать его (например, http://yourgame.dynDNS.org:30000
).
Преимущества и ограничения локального хостинга
Запуск Foundry VTT на своем ПК – распространенный вариант среди ведущих. Ниже его плюсы и минусы:
Преимущества:
- Отсутствие дополнительных затрат. Вам не нужно платить за аренду сервера – используется уже имеющийся у вас компьютер. Это бюджетный способ начать играть.
- Простота установки. Настроить локально довольно легко – достаточно установить приложение и запустить его. Нет необходимости в сложной серверной конфигурации.
- Данные под рукой. Все файлы (миры, модули, медиа) хранятся на вашем локальном диске, где вы всегда имеете к ним доступ. Удобно делать резервные копии, редактировать файлы и пр.
Ограничения:
- Сервер работает только когда вы за компьютером. Игроки смогут подключаться к вашей сессии только пока приложение Foundry запущено на вашем ПК. Если вы выключили программу или компьютер – сервер недоступен.
- Требуется настройка сети для удаленных игроков. Если ваши игроки не находятся в той же локальной сети, придется возиться с сетью: настраивать портфорвардинг проброса доступа. Это может быть технически сложно для некоторых пользователей.
- Зависимость от домашнего интернета. Производительность для игроков удаленно будет ограничена скоростью вашего интернет-соединения. Особенно важна скорость отдачи (upload): все картинки, карты и аудио будут передаваться от вас к игрокам. При медленном аплоаде у игроков могут быть задержки при загрузке контента. Также, если у вашего провайдера нестабильный интернет или строгие ограничения, это скажется на игре.
- Нагрузка на ваш ПК. Хотя Foundry большую часть вычислений выполняет на стороне клиента (в браузерах игроков), ваш компьютер все же должен одновременно тянуть и саму игру, и хостинг сервера. Если у вас тяжелый мир с множеством модулей, это может потреблять заметное количество оперативной памяти и CPU.
Несмотря на ограничения, самостоятельный хостинг – самый простой и популярный путь начать пользоваться Foundry VTT. Если у вас небольшая группа и нормальный интернет, локальный сервер вполне справится с задачей.
Аренда сервера для Foundry VTT (VPS/VDS)
Второй подход – развернуть Foundry VTT на удаленном сервере, например виртуальном VPS или облачном хостинге. Foundry будет постоянно работать в датацентре, а вы и игроки подключаетесь к нему через интернет. Этот вариант похож на сервисы типа Roll20, но вы сами настраиваете сервер под Foundry.
Преимущества облачного хостинга: сервер может работать 24/7, игроки смогут заходить в мир в любое время (например, редактировать персонажей между сессиями); не нужно настраивать свой домашний интернет – достаточно чтобы у всех был доступ в сеть; обычно датацентры дают высокую пропускную способность канала, избавляя от проблем с медленным аплоадом у хоста. Недостатки: требуется арендная плата за сервер и чуть более сложная первоначальная настройка Foundry на Linux (необходимы базовые навыки работы с терминалом).
Далее мы расскажем, какой сервер выбрать и как установить на него Foundry VTT (на примере Ubuntu Linux).
Выбор VPS/VDS: требования и характеристики
Foundry VTT не предъявляет чрезмерных требований к серверу, так как основная нагрузка (рендер карт, логика игры) выполняется на компьютерах игроков в их браузерах. Однако сервер должен обеспечивать устойчивую работу Node.js-приложения и хранение данных. Рекомендуемые характеристики для VPS под Foundry VTT такие:
- CPU: 2 виртуальных ядра (минимум 1, но 2 предпочтительно для стабильности).
- RAM: 2 ГБ оперативной памяти минимум; рекомендуется 4 ГБ, особенно если планируется использование многих модулей или больших миров.
- Диск: от 10 ГБ свободного SSD. Сама Foundry занимает ~300 МБ, но понадобится место под операционную систему, обновления, а также хранилище ваших миров и загруженного контента (карты, токены, аудио). 10–20 ГБ обычно достаточно для начала.
- Трафик и сеть: стабильное интернет-соединение, желательно без жестких ограничений по трафику. Многие VPS-провайдеры предлагают 100 Мбит/c и выше, чего более чем достаточно. Уточните, есть ли ограничения по ежемесячному трафику. Для комфортной игры стоит иметь возможность передачи нескольких гигабайт данных в месяц (карты, музыка и т.п.). Хорошо, если хостинг дает публичный IPv4-адрес без принудительного NAT.
- ОС и ПО: Подойдет большинство Linux-дистрибутивов x64. Популярный выбор – Ubuntu LTS (22.04 или 24.04) или Debian 11+, которые гарантированно поддерживают современную версию Node.js. Убедитесь, что на системе можно установить Node.js v20+ (Foundry требует Node 20 или выше, рекомендуются актуальные LTS-версии). Также пригодится возможность установки Reverse Proxy (например, nginx) для SSL.
Практически любой современный VPS конфигурации 2 CPU / 2 GB RAM / 20 GB SSD (часто доступный за ~$5 в месяц) способен без проблем хостить Foundry VTT. Если планируете активное использование встроенного видео/аудио чата или у вас очень большая группа игроков, можно рассмотреть 4 ГБ RAM и более высокую конфигурацию, но обычно это не требуется.
Примеры провайдеров: DigitalOcean, Vultr, Linode, AWS Lightsail, Hetzner, Selectel и др. Выбирайте по вашему региону и бюджету. Важнее всего – совместимость ОС (лучше Ubuntu/Debian) и наличие root-доступа для настройки.
Установка Foundry VTT на Linux-сервер (Ubuntu)
Теперь перейдем к поэтапной установке сервера Foundry VTT на примере Ubuntu 22.04 LTS. Предполагается, что вы уже получили доступ к вашему VPS (по SSH) с правами root
или пользователя sudo
. За основу возьмем Node.js-версию Foundry (headless-сервер).
Шаг 1: Базовая настройка сервера и пользователя. Если вы подключаетесь под root
, желательно создать отдельного пользователя для запуска Foundry, чтобы повысить безопасность. Например, создадим пользователя foundry
:
# добавить нового пользователя
adduser foundry
# дать ему права sudo (опционально, для установки ПО)
usermod -aG sudo foundry
После этого можно либо продолжить под root, либо переключиться на нового пользователя: su - foundry
. Далее установки можно выполнять от имени пользователя с sudo.
Обновим систему и установим некоторые полезные утилиты:
sudo apt update && sudo apt upgrade -y
sudo apt install -y unzip
(При использовании дистрибутивов, отличных от Debian/Ubuntu, команды могут отличаться. Например, на CentOS вместо apt
используется yum
.)
Шаг 2: Установка Node.js. Foundry VTT работает на Node.js, минимально требуемая версия – Node 20 (желательно актуальная LTS, например Node 20.x на момент написания). Проверим, не установлен ли Node ранее: node -v
. Если версия ниже 20 или Node.js отсутствует, установим Node 20 вручную.
Самый простой способ – воспользоваться официальным скриптом NodeSource для Ubuntu/Debian:
sudo apt install -y libssl-dev
curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Эти команды добавят репозиторий NodeSource и установят Node.js 20 (и npm). После завершения проверьте: node -v
должно вывести v20.x. Также npm -v
для проверки наличия менеджера пакетов (npm может пригодиться для некоторых модулей Foundry или адаптеров).
Шаг 3: Загрузка Foundry VTT на сервер. Теперь нужно разместить файлы Foundry на сервере. Поскольку прямого доступа через браузер у нас нет, воспользуемся одним из способов:
- Через SSH/SCP: Можно скачать дистрибутив Foundry на свой компьютер и загрузить на сервер с помощью SCP (Secure Copy) или SFTP. Например, используя SCP:
scp ~/Downloads/foundryvtt.zip foundry@<IP-сервера>:~
– это скопирует файл в домашнюю директорию пользователя foundry.
Через прямую ссылку (wget): Официальный сайт Foundry позволяет сгенерировать временную прямую ссылку для скачивания. Для этого зайдите на страницу лицензий Foundry, нажмите на значок 🔗 (цепочки) рядом с кнопкой скачивания Node.js-версии – это скопирует уникальный URL для загрузки. Затем на сервере выполните:
mkdir -p ~/foundryvtt
cd ~/foundryvtt
# Замените <DOWNLOAD-LINK> на скопированный URL в кавычках:
wget -O foundryvtt.zip "<DOWNLOAD-LINK>"
unzip foundryvtt.zip
В результате архив распакуется в папку ~/foundryvtt
. (Примечание: ссылка действительна ограниченное время, потому важно использовать ее сразу.)
После получения файлов убедимся, что все распаковалось правильно. В директории ~/foundryvtt
должны появиться файлы, включая package.json
, resources/
, main.js
и др. Теперь создадим отдельную папку для пользовательских данных (миров, систем, загрузок) вне директории приложения. По умолчанию Foundry хранит данные в специальной папке (на Windows это %localappdata%/FoundryVTT
, на Linux – ~/.local/share/FoundryVTT
), но на сервере удобнее задать свою. Создадим папку foundrydata:
mkdir -p ~/foundrydata
Эта директория будет эквивалентом папки User Data, где хранятся папки Data/worlds
, Data/modules
и пр.
Шаг 4: Первый запуск Foundry на сервере. Перейдем в каталог с приложением и запустим сервер Foundry вручную через Node.js:
cd ~/foundryvtt
node main.js --dataPath=/home/foundry/foundrydata
Если всё сделано правильно, в консоли появится лог запуска Foundry (включая версию и уведомления). По умолчанию сервер слушает порт 30000. Теперь можно открыть браузер на своем локальном компьютере и подключиться к серверу по его адресу. Введите: http://<IP-адрес вашего сервера>:30000
. Должен загрузиться интерфейс Foundry VTT – страница Setup. При первом запуске система попросит вас ввести лицензионный ключ (если вы еще не вводили его) и создать пароль администратора.
- Активация лицензии: Введите ваш ключ и подтвердите активацию (это нужно один раз).
- Administrator Access Key (пароль администратора): Настоятельно рекомендовано установить пароль администратора – он потребуется для доступа к настройкам сервера (Setup) и защитит ваши миры от постороннего доступа. Введите надежный пароль и сохраните его.
- Создание мира: Далее вы можете создать новый игровой мир или перенести существующий. Этот шаг можно сделать сейчас или позже.
После настройки убедитесь, что игроки могут подключиться: запустите тестовый мир и попробуйте зайти как игрок (например, откройте ссылку на другом браузере или устройстве).
Шаг 5: Настройка автозапуска (служба systemd). Пока мы запускали Foundry в ручном режиме – процесс привязан к открытому терминалу SSH. Чтобы сервер работал постоянно (в фоне) и автоматически запускался при перезагрузке VPS, настроим Foundry VTT как сервис systemd.
Создайте unit-файл для systemd. Выполните команду: sudo nano /etc/systemd/system/foundry.service
и вставьте следующие строки:
[Unit]
Description=Foundry Virtual Tabletop
After=network.target
[Service]
Type=simple
User=foundry
WorkingDirectory=/home/foundry/foundryvtt
ExecStart=/usr/bin/node /home/foundry/foundryvtt/main.js --dataPath=/home/foundry/foundrydata
Restart=on-failure
[Install]
WantedBy=multi-user.target
Сохраните файл (Ctrl+O, Enter) и выйдите (Ctrl+X). Затем выполните команду включения и запуска сервиса:
sudo systemctl enable --now foundry.service
Этой командой мы сообщаем systemd запускать сервис при загрузке (enable
) и сразу запускаем его сейчас (--now
). Статус можно проверить через systemctl status foundry.service
. Если всё настроено правильно, сервис перейдет в состояние Active (running). Теперь Foundry будет автоматически работать в фоне, и вам не потребуется держать постоянное SSH-подключение для его запуска. Управлять сервисом можно обычными командами sudo systemctl start/stop/restart foundry.service
.
Шаг 6: Открытие порта на сервере. Поскольку сервер находится в датацентре, убедитесь, что внешние запросы на нужные порты разрешены. Многие VPS по умолчанию не блокируют никакие порты, но некоторые облачные платформы (AWS, Google Cloud) требуют явно открыть порты в настройках безопасности. В случае прямого подключения без прокси оставьте открытым порт 30000 (TCP) – именно на него приходят подключения игроков. Если вы планируете использовать веб-прокси (nginx) на 80/443, тогда внешне будут использоваться стандартные порты 80 (HTTP) и 443 (HTTPS), а порт 30000 можно закрыть от внешнего доступа (или ограничить на фаерволе для localhost).
Проверьте настройки UFW/iptables на своем сервере. Для UFW:
sudo ufw allow 30000/tcp
# если будет использоваться nginx:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Теперь ваш сервер Foundry готов принимать подключения на указанных портах.
Настройка обратного прокси и HTTPS (nginx + Let’s Encrypt)
На данном этапе Foundry VTT сервер уже работает. Игроки могут подключаться по адресу вашего сервера с портом 30000 (например, http://123.45.67.89:30000
). Однако соединение по умолчанию не защищено (HTTP), что может быть проблемой: браузеры могут помечать такой сайт как небезопасный, а для работы встроенного видео/аудио чата требуется HTTPS. Мы настроим SSL-сертификат от Let’s Encrypt с помощью веб-сервера nginx, который будет выступать в роли reverse proxy – посредника между игроками и Foundry. Он же позволит использовать стандартный порт 443.
Что делает nginx? Он будет принимать запросы от клиентов на портах 80/443, шифровать/дешифровать их (SSL) и пересылать (проксировать) на локальный порт 30000, где работает Foundry. Также через nginx можно настроить удобный адрес (доменное имя) для вашего сервера.
Шаг 1: Подготовка доменного имени. Перед настройкой SSL вам нужно иметь домен или субдомен, указывающий на IP вашего сервера. Это может быть как приобретенный домен (например, mygame.com
), так и бесплатный субдомен через сервис типа DuckDNS. Главное – возможность создать A-запись DNS, направляющую на ваш сервер. Почему нужен домен? Служба Let’s Encrypt выдаёт бесплатные сертификаты только для доменных имён, не для голых IP. Поэтому позаботьтесь о домене заранее.
Допустим, вы настроили DNS так, что game.example.com
указывает на ваш сервер.
Шаг 2: Установка nginx. Выполним установку веб-сервера nginx:
sudo apt install -y nginx
После установки nginx сразу может запуститься. Остановим его пока, чтобы настроить: sudo systemctl stop nginx
.
Шаг 3: Настройка конфигурации nginx. Конфигурация nginx находится в /etc/nginx/
. Рекомендуется создавать отдельные файлы сайта в /etc/nginx/sites-available/
и затем активировать симлинком в /etc/nginx/sites-enabled/
. Создадим файл: sudo nano /etc/nginx/sites-available/foundry.conf
(название произвольное, например, можно использовать имя домена).
Начнем с минимальной настройки для HTTP (порт 80), без SSL – чтобы убедиться, что прокси работает. Пример базовой конфигурации (замените your.hostname.com
на ваш домен):
server {
listen 80;
server_name your.hostname.com;
# Максимальный размер загружаемых файлов (для крупных карт)
client_max_body_size 300M;
location / {
# Proxy-pass к локальному серверу Foundry
proxy_pass http://127.0.0.1:30000;
# Передача заголовков для корректной работы WebSocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# Проброс host и протокола
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Сохраните файл. Этот конфиг говорит nginx слушать порт 80 на указанном домене и все запросы (location /
) перенаправлять на локальный Foundry (порт 30000). Включаем его:
sudo ln -s /etc/nginx/sites-available/foundry.conf /etc/nginx/sites-enabled/foundry.conf
И перезапускаем nginx: sudo systemctl start nginx
(для надежности можно сначала проверить синтаксис: sudo nginx -t
). Теперь попробуйте в браузере открыть http://your.hostname.com
– должна отобразиться страница Foundry (Setup или экран входа в мир). Если это работает через порт 80, переходим к следующему шагу.
(Если не работает: проверьте, открыт ли порт 80 в фаерволе, правильно ли настроен DNS, и не мешает ли сам Foundry – возможно, Foundry уже занят портом 80? По умолчанию нет, он на 30000. Также убедитесь, что server_name совпадает с доменом, по которому заходите.)
Шаг 4: Получение SSL-сертификата (Let’s Encrypt). Убедившись, что nginx проксирует соединение, добавим SSL. Установим certbot – клиент для Let’s Encrypt:
sudo apt install -y certbot python3-certbot-nginx
Выполним команду получения сертификата и автоматической настройки nginx:
sudo certbot --nginx -d your.hostname.com
Certbot запросит ваш email (для оповещений об обновлении сертификата), соглашение с условиями и возможно, нужно ли перенаправлять HTTP на HTTPS – рекомендуется согласиться на автоматический редирект. После успешного выполнения вы увидите сообщение о выдаче сертификата и расположении файлов, обычно это /etc/letsencrypt/live/your.hostname.com/fullchain.pem
и privkey.pem
. Certbot также должен сам обновить ваш конфиг nginx, добавив блок для listen 443 ssl
и строки с ssl_certificate
и ssl_certificate_key
. Если он не сделал этого автоматически, можно внести изменения вручную. Пример, как должен выглядеть конфиг для HTTPS (важные отличия: listen 443 ssl, пути к сертификатам и ключу):
server {
listen 443 ssl;
server_name your.hostname.com;
ssl_certificate /etc/letsencrypt/live/your.hostname.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.hostname.com/privkey.pem;
client_max_body_size 300M;
location / {
proxy_pass http://127.0.0.1:30000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Если у вас остался отдельный блок для порта 80, можно добавить в него редирект на HTTPS, чтобы все HTTP-запросы перенаправлялись на безопасный порт:
server {
listen 80;
server_name your.hostname.com;
return 301 https://$host$request_uri;
}
Теперь перезапустите nginx: sudo systemctl reload nginx
. Готово – ваш Foundry VTT теперь доступен по адресу https://your.hostname.com
! Все данные шифруются SSL, и браузеры будут считать соединение защищенным. Let’s Encrypt сертификаты действуют 90 дней, но certbot обычно добавляет автоматическое обновление (можно проверить командой sudo certbot renew --dry-run
).
Шаг 5: Настройка Foundry для работы за прокси. Последний штрих – сообщить Foundry, что он работает за обратным прокси. Это нужно, чтобы корректно генерировались приглашения и работали некоторые функции (например, видео/аудио). Откройте файл настроек Foundry ~/foundrydata/Config/options.json
(или сделайте это через веб-интерфейс Foundry -> Configuration). Убедитесь, что там прописаны следующие параметры:
"hostname": "your.hostname.com",
"port": 30000,
"proxyPort": 443,
"proxySSL": true
- hostname – ваш домен,
- port – внутренний порт Foundry (30000),
- proxyPort – внешний порт, используемый прокси (443 для https),
- proxySSL – флаг, что прокси использует SSL.
Также можно настроить опцию routePrefix
если вы разместили Foundry не в корне домена, а по пути (в нашем случае не требуется). После изменения опций перезапустите Foundry (наш systemd-сервис) и nginx, чтобы убедиться, что всё в силе.
Теперь игроки смогут подключаться по красивому адресу вида https://game.example.com
без указания порта, а соединение будет защищено шифрованием. Ваш сервер Foundry успешно настроен на VPS! 🎉
(Для справки: официальная документация Foundry содержит руководство по настройке nginx-прокси с примерами конфигурации и рекомендациями по SSL.)
Безопасность, резервное копирование и управление сервером
Настроив свой сервер Foundry VTT, важно позаботиться о безопасности и сохранности данных, а также упростить себе жизнь при дальнейшей эксплуатации.
Советы по безопасности
- Пароль Администратора: Как упоминалось ранее, обязательно установите пароль администратора (Administrator Access Key) для доступа к экрану конфигурации Foundry. Это предотвратит возможность посторонним перехватить управление вашим сервером или создать свои миры на вашем экземпляре.
- Брандмауэр и доступ извне: Открывайте только необходимые порты и только для тех сетей, которым нужно. Если вы играете узким кругом и знаете IP-адреса игроков, можно ограничить доступ к портам (на уровне облачного firewall или iptables) лишь для этих адресов. Минимально убедитесь, что закрыты все лишние порты, кроме 30000 (или 80/443, если используете прокси). Используйте UFW или другой firewall и регулярно проверяйте, что нет неожиданных сервисов.
- SSL-шифрование: Мы настроили HTTPS для защиты трафика. Не отключайте его. Если вы не используете nginx, альтернативно Foundry позволяет указать свои сертификаты (опции
sslCert
иsslKey
в конфиге) для прямого запуска на HTTPS. Однако управление через nginx зачастую удобнее. - Обновления: Следите за обновлениями Foundry VTT. Новые версии могут содержать важные исправления. Обновление на своем сервере обычно сводится к скачиванию новой версии и замене файлов приложения (папки FoundryVTT) поверх старых, при этом директорию Data/ с вашими мирами трогать не надо. Перед обновлением обязательно делайте бэкап (см. ниже). Node.js тоже стоит периодически обновлять до актуальной LTS.
- Запуск от отдельного пользователя: Мы настроили запуск от имени пользователя
foundry
, у которого нет прав root. Это правильно – даже если злоумышленник как-то скомпрометирует процесс Foundry, он не получит прямого доступа к системе управления. Не запускайте Foundry под root без необходимости. - Fail2Ban и мониторинг: Опционально можно настроить Fail2Ban для отслеживания неоднократных неудачных попыток подключения (например, по порту 22 SSH, или даже к веб-порту, если беспокоитесь о брутфорсе пароля игрока/мастера). Хотя Foundry не особо подвержен подобным атакам (вам известен круг игроков), дополнительный мониторинг не помешает.
- Доверенные модули: Устанавливая сторонние модули в Foundry, старайтесь использовать проверенные источники (официальный каталог пакетов или рекомендации сообщества). Вредоносный модуль теоретически может навредить как серверу, так и игрокам.
Резервное копирование данных
Ваши созданные миры, персонажи, журналы, а также загруженные изображения и другие ресурсы хранятся в папке данных Foundry (мы использовали ~/foundrydata
на сервере). Регулярное резервное копирование этой папки – залог сохранности вашей кампании. Несколько рекомендаций:
- Полная копия папки данных: Самый надежный способ – периодически делать архив (zip/rar/tar) всей директории
foundrydata
(или стандартной папки User Data, если используете локально). Достаточно остановить сервер Foundry (чтобы все файлы были в консистентном состоянии), скопировать папку целиком, и снова запустить сервер. Например, можно написать скрипт архивирования и отправки файла на облачное хранилище или просто хранить на своем ПК. - Частичное резервирование: Основная ценность – это папка
Data
внутри. Там находятся подкаталогиworlds/
,systems/
(игровые системы),modules/
(модули) и загруженные пользователем ассеты. Как минимум, стоит сохранять папкуData/worlds/<ваш-мир>
, которая содержит все данные конкретного мира. Однако для надежности лучше копировать всю папку Data, чтобы не забыть ничего важного. - Синхронизация через облако: Некоторые пытаются хранить папку данных в Dropbox/Google Drive для автосинхронизации. Делать так можно, но осторожно. Ни в коем случае не запускайте Foundry напрямую из папки облачного диска! Это может привести к конкуренции доступа и потере данных. Если хотите использовать облако – настройте одностороннюю загрузку (например, только выгружать бэкап в облако, но не тянуть из облака на сервер автоматически). Лучше используйте скрипты или приложения, которые по расписанию копируют ваши данные в облако, не перемещая сам рабочий каталог Foundry.
- Частота бэкапов: Делайте резервную копию перед обновлением Foundry до новой версии, а также периодически (например, раз в неделю или после важных игровых сессий). Храните несколько поколений (несколько последних архивов) на случай, если проблема обнаружится не сразу.
- Восстановление: Чтобы восстановить данные из резервной копии, достаточно остановить Foundry, заменить папку
Data
(или конкретный мир) из бэкапа и запустить сервер снова. Убедитесь, что версии Foundry совпадают или совместимы, если вы откатываетесь на старую версию мира.
Удобное управление сервером Foundry
- Systemd-сервис: Мы уже настроили Foundry как сервис systemd, что упрощает управление – вы можете запускать, останавливать, перезапускать сервер командами, а также быть уверены, что он сам стартует после перезагрузки машины. Это стандартный и надежный способ держать сервер онлайн.
- Консоль управления Foundry: В случае локального запуска (Electron) у Foundry есть встроенная консоль с логами, но на headless-сервере логи выводятся в файл (в папке
Logs/
внутри данных) и вjournalctl
systemd. Ознакомьтесь с логами (~/foundrydata/Logs/foundry.log
иsudo journalctl -u foundry.service
) для отладки, если что-то идет не так. - FoundryVTT Manager и сторонние скрипты: Сообщество разработало ряд скриптов и утилит для упрощения управления Foundry на сервере. Например, существуют менеджеры установки/обновления, которые автоматически скачивают новую версию Foundry, применяют настройки nginx, настраивают автозапуск и т.п. (их иногда называют FoundryVTT Manager). Такие скрипты могут облегчить жизнь, если вы часто обновляете Foundry или держите несколько версий. Перед использованием сторонних решений убедитесь в их надежности и совместимости с вашей ОС.
- Docker-контейнер: Альтернативный подход – запустить Foundry в Docker-контейнере (есть готовые образы на DockerHub). Это изолирует приложение и может упростить установку и обновление. Однако docker несколько усложняет настройку хранения данных и сетевых портов для новичков, поэтому если вы не знакомы с контейнерами, systemd-сервис на VPS – более понятный вариант.
- Партнерские хостинги: Наконец, помимо самостоятельной аренды сервера, команда Foundry сотрудничает с рядом хостингов (MoltenHosting, The Forge и др.), которые за отдельную плату предоставляют готовый хостинг Foundry. Это самый простой вариант (минимум возни с настройками), но выходит дороже, чем свой VPS. Выбирайте подходящий путь исходя из бюджета и уверенности в своих технических навыках.
Настроив собственный сервер Foundry VTT, вы получаете полный контроль над своим игровым пространством. Локальный хостинг подойдет для камерных игр и экономии средств, тогда как VPS-сервер даст вашим игрокам более легкий доступ к игре. Следуйте официальным руководствам и нашим советам – и ваши приключения в цифровых мирах будут проходить гладко и безопасно!
Полезные ссылки (официальная документация):
- Foundry VTT Installation Guide – руководство по установке (Windows/Mac/Linux)
- Foundry VTT Port Forwarding – подробности о пробросе портов и сетевой конфигурации
- Foundry VTT Linux Headless Server Guide – установка на сервере и управление через Node.js
- Foundry VTT Nginx Setup – пример настройки обратного прокси и HTTPS на nginx
- Foundry VTT Configuration – параметры конфигурации (Admin Password, SSL и др.)