Сборка и запуск удалённого сервера ################################## Данная инструкция описывает способ сборки **Space Station 14** из исходных кодовов ("исходники") для запуска на удалённом сервере. .. note:: - Предполагается, что читатель умеет собирать сервер :doc:`из исходников `; - Предполагается, что читатель имеет базовые навыки работы с **Linux** системами; - Предполагается, что читатель умеет подключаться к удалённому серверу через **SSH**; - Данная инструкция рассчитана на пользователей операционной системы **Windows**; - В качестве удалённой операционной системы будет использоваться **Debian 12**. Подготовка релизной сборки ************************** 1. Открываем **PowerShell** в папке, в которой находятся исходные коды **Space Station 14**. 2. Выполняем команду по подготовке встроенного сборщика .. code-block:: dotnet build Content.Packaging --configuration Release .. image:: _static/powershell_build_packaging.png :alt: Сборка "сборщика" 3. Выполняем релизную сборку Сервера .. code-block:: dotnet run --project Content.Packaging server --platform linux-x64 --hybrid-acz .. image:: _static/powershell_run_packaging.png :alt: Запуск сборщика В результате в папке ``release`` будет лежать два архива, но нас интересует только один из них - ``SS14_Server_linux-x64.zip``. Настройка удалённого сервера **************************** Установка дополнительных пакетов ================================ В консоле удалённого сервера выполняем команду: .. code-block:: apt-get install -y unzip screen wget sudo Установка .NET 8 ================ Нам понадобятся скачать следующие платформы: - .NET Runtime 8 - ASP.NET Core Runtime 8 Скачиваем по следующему алгоритму: 1. Заходим на страницу |link_dotnet| 2. Выбираем версию для Linux x64 3. На странице загрузки копируем прямую ссылку (Direct link) .. image:: _static/dotnet_directlink.png :alt: Страница загрузки .NET 8 4. В консоли удалённого сервера выполняем команду загрузки .. code-block:: cd /root/ wget 'вставить-сюда-прямую-ссылку' Так повторяем для каждой платформы. По завершению процедуры, на удалённом сервере в папке ``/root`` должно быть два архива: - ``dotnet-runtime-8.0.5-linux-x64.tar.gz`` - ``aspnetcore-runtime-8.0.5-linux-x64.tar.gz`` Распаковываем их в папку ``/root/dotnet``: .. code-block:: mkdir /root/dotnet cd /root tar -xf dotnet-runtime-8.0.5-linux-x64.tar.gz -C /root/dotnet tar -xf aspnetcore-runtime-8.0.5-linux-x64.tar.gz -C /root/dotnet Запуск сборки ************* Каким способом вы загрузите архив ``SS14_Server_linux-x64.zip`` на ваш удалённый Linux сервер - не важно. Главное, что бы архив оказался там и с ним можно было работать. .. note:: Далее предполагается, что архив на удалённом сервере доступен по пути ``/root/SS14_Server_linux-x64.zip`` Подключаемся по **SSH** к удалённому серверу и распаковываем архив в папку ``/root/ss14``: .. code-block:: mkdir /root/ss14 unzip /root/SS14_Server_linux-x64.zip -d /root/ss14/ Теперь запускаем ``screen``, чтобы при закрытии ssh-соединения, игровой сервер продолжал работать: .. code-block:: screen -S ss14 Внутри screen-сессии переходим в папку ``/root/ss14`` и запускаем игровой сервер .. code-block:: cd /root/ss14 mkdir data export DOTNET_ROOT=/root/dotnet export PATH=${PATH}:$DOTNET_ROOT chmod +x ./Robust.Server ./Robust.Server --config-file "./server_config.toml" --data-dir "./data" Как только консоль игрового сервера напишет текст вида ``[INFO] root: Server Version 222.4.0.0 -> Ready`` значит игровой сервер успешно запущен. К нему можно подключаться напрямую по IP адресу. .. image:: _static/ss14_server_run.png :alt: Запуск игрового сервера .. note:: - Отключиться от screen-сессии не закрывая её можно сочетанием клавиш :kbd:`CTRL+A`, :kbd:`D` - Для повторного подключения к screen-сессии, выполните команду .. code-block:: screen -r .. ########################################################################## .. .. |link_dotnet| raw:: html загрузки данных платформ