С помощью этого руководства вы развернете собственный сервер Foundry Virtual Tabletop — платформу для проведения настольных ролевых игр: Dungeons & Dragons, Pathfinder и других. Это даст мастеру игры полный контроль над сессиями. Все данные — миры, карты, модули — будут храниться на вашем сервере, а игроки смогут подключаться через браузер.
Вы будете использовать следующие сервисы:
«Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.
«Публичные IP» — сервис для организации доступа к сервису через интернет.
Docker — система контейнеризации.
Docker Compose — инструмент для запуска и управления Docker-контейнерами.
Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.
Nginx — веб-сервер для проксирования запросов и организации защищенного HTTPS-доступа к приложению.
Let’s Encrypt — сервис для автоматического получения бесплатного SSL-сертификата.
Шаги:
Если вы уже зарегистрированы, войдите под своей учетной записью.
Сгенерируйте ключевую пару и загрузите публичный ключ в Cloud.ru Evolution.
Создайте учетную запись на foundryvtt.com и приобретите лицензию.
На этом шаге вы создадите группу безопасности и виртуальную машину.
Создайте группу безопасности с названием vm-foundryvtt-sg в зоне доступности ru.AZ-2 и добавьте в нее правила:
Трафик | Протокол | Порт | Тип источника/адресата | Источник/Адресат |
|---|---|---|---|---|
Входящий | TCP | 443 | IP-адрес | 0.0.0.0/0 |
Входящий | TCP | 80 | IP-адрес | 0.0.0.0/0 |
Исходящий | Любой | Оставьте пустым | IP-адрес | 0.0.0.0/0 |
Создайте виртуальную машину со следующими параметрами:
Название — foundryvtt-server.
Зона доступности — ru.AZ-2.
Образ — публичный образ Ubuntu 22.04.
Сетевой интерфейс — выберите тип Публичный IP.
Группы безопасности — добавьте vm-foundryvtt-sg.
Метод аутентификации — Публичный ключ и Пароль.
Публичный ключ — укажите ключ, созданный ранее.
Пароль — задайте пароль пользователя.
Убедитесь, что ресурсы созданы и отображаются в личном кабинете:
На странице Инфраструктура → Виртуальные машины отображается виртуальная машина foundryvtt-server со статусом «Запущена».
На странице Сети → Группы безопасности отображается группа безопасности vm-foundryvtt-sg со статусом «Создана».
На этом шаге вы установите необходимые пакеты и настроите систему на ВМ.
Подключитесь к виртуальной машине foundryvtt-server по SSH или через серийную консоль.
Обновите систему и установите необходимые зависимости:
sudo apt update && sudo apt upgrade -y &&\sudo apt install -y curl apt-transport-https\ca-certificates\software-properties-common\gnupg2\lsb-release
Установите Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install docker-ce docker-ce-cli containerd.io -y
Дайте текущему пользователю права на запуск Docker:
sudo usermod -aG docker $USER \newgrp docker
Установите Docker Compose:
sudo apt install docker-compose -y
Проверьте, что Docker и Docker Compose установлены корректно:
docker --versiondocker-compose version
Установите и запустите Nginx:
sudo apt install nginx -ysudo systemctl enable nginxsudo systemctl start nginx
Установите Let’s Encrypt и плагин для Nginx:
sudo apt install certbot python3-certbot-nginx -y
На этом шаге вы настроите службу Nginx и обеспечите доступ по HTTPS.
Сконфигурируйте межсетевой экран:
sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enable
Создайте конфигурационный файл Nginx:
sudo nano /etc/nginx/sites-available/foundryvtt.conf
Вставьте конфигурацию, заменив <ip_address> на значение публичного IP-адреса виртуальной машины:
server {listen 80;server_name foundryvtt.<ip_address>.nip.io www.foundryvtt.<ip_address>.nip.io;location / {proxy_pass http://localhost:30000/;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;proxy_set_header X-Forwarded-Proto $scheme;proxy_redirect off;}}
Активируйте конфигурацию и перезапустите Nginx:
sudo ln -sf /etc/nginx/sites-available/foundryvtt.conf /etc/nginx/sites-enabled/foundryvtt.confsudo rm -f /etc/nginx/sites-enabled/defaultsudo nginx -tsudo systemctl reload nginx
Проверьте, что Nginx работает:
sudo systemctl status nginx
Сервис Nginx должен быть в статусе «active (running)».
Перейдите по адресу http://foundryvtt.<ip_address>.nip.io.
Откроется страница с текстом «502 Bad Gateway».
Выпустите SSL-сертификат:
sudo certbot --nginx -d foundryvtt.<ip_address>.nip.io --redirect --agree-tos -m <email>
Где:
<ip_address> — публичный IP-адрес виртуальной машины.
<email> — email для регистрации сертификата.
При выпуске сертификата через nip.io может возникнуть ошибка «too many certificates (25000) already issued for «nip.io»». Это происходит из-за популярности сервиса nip.io. При возникновении ошибки повторите команду выпуска сертификата. Если ошибка сохраняется, рассмотрите использование собственного доменного имени.
Перейдите по адресу https://foundryvtt.<ip_address>.nip.io и убедитесь, что браузер отмечает соединение как безопасное.
На этом шаге вы развернете приложение Foundry VTT с помощью Docker Compose.
Создайте структуру проекта:
mkdir -p $HOME/foundryvtt && cd $HOME/foundryvtt
Создайте файл docker.env для установки переменных окружения Foundry VTT:
sudo nano docker.env
Добавьте переменные в файл:
FOUNDRY_USERNAME=<username>FOUNDRY_PASSWORD=<password>FOUNDRY_ADMIN_KEY=<admin_password>FOUNDRY_HOSTNAME=foundryvtt.<ip_address>.nip.ioFOUNDRY_PROXY_SSL: "true"FOUNDRY_PROXY_PORT: "443"CONTAINER_PRESERVE_CONFIG: "true"
Где:
<username> — имя пользователя или адрес электронной почты для foundryvtt.com. Необходимо для загрузки дистрибутива приложения.
<password> — пароль от учетной записи для foundryvtt.com. Необходим для загрузки дистрибутива приложения.
<admin_password> — произвольный ключ доступа к панели администратора сервера.
<ip_address> — публичный IP-адрес виртуальной машины foundryvtt-server.
Создайте файл docker-compose.yml:
sudo nano docker-compose.yml
Вставьте в созданный файл описание контейнера:
services:foundry:image: ghcr.io/felddy/foundryvtt:14container_name: foundryvttenv_file: ./docker.envrestart: unless-stoppedvolumes:- foundrydata:/dataexpose:- "30000"- "443"volumes:foundrydata:
Запустите сервис:
docker-compose up -d
Проверьте, что сервис запущен:
docker compose ps
Перейдите по адресу https://foundryvtt.<ip_address>.nip.io.
Откроется интерфейс Foundry VTT.
Примите лицензионное соглашение.
Введите пароль администратора, который вы указали в переменных окружения на шаге 3.
Теперь вы можете перейти к настройке приложения, загрузить файлы ваших миров, модулей и ресурсов. Подробнее про настройку читайте в документации Foundry VTT.
Когда вы развернули и настроили сервис, закройте доступ по SSH для повышения безопасности.
В личном кабинете на верхней панели слева нажмите и выберите Инфраструктура → Виртуальные машины.
В списке виртуальных машин выберите foundryvtt-server.
Перейдите на вкладку Сетевые параметры.
В блоке сетевого интерфейса нажмите и выберите Изменить группы безопасности.
Удалите группу SSH-access_ru и сохраните изменения.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH.
После отключения доступа по SSH, администрирование сервиса будет доступно через серийную консоль виртуальной машины.
Вы развернули и настроили собственный сервер Foundry Virtual Tabletop в облаке Cloud.ru с публикацией по HTTPS. Полученные навыки помогут вам создавать сервисы с использованием облачной инфраструктуры.