Confirmedusers
2,648
edits
(Created page with "Версия ARM64 доступна по адресу [https://github.com/anegostudios/VintagestoryServerArm64 GitHub ]") |
No edit summary |
||
(43 intermediate revisions by the same user not shown) | |||
Line 109: | Line 109: | ||
Версия ARM64 доступна по адресу [https://github.com/anegostudios/VintagestoryServerArm64 GitHub ] | Версия ARM64 доступна по адресу [https://github.com/anegostudios/VintagestoryServerArm64 GitHub ] | ||
Рекомендуется использовать установочный скрипт, расположенный на GitHub. Ниже приведено пошаговое руководство по использованию скрипта в системе на базе дистрибутива Debian (Ubuntu, Debian, Raspbian и т.д.). | |||
1. Установите необходимые зависимости для использования этого скрипта, выполнив <code>apt -y install curl jq</code> | |||
1. | |||
2. Создайте новый файл с именем <code>arm install.sh</code>, запустив <code>vim arminstall.sh </code> или <code>nano arminstall.sh</code> | |||
2. | |||
3. Скопируйте содержимое <code>arminstall.sh </code> скопируйте с GitHub в ваш только что созданный файл и сохраните его, используя <code>:wq</code> с помощью Vim или <code>Ctrl + X</code>, затем нажмите <code>Y</code>, затем нажмите <code>Enter</code> с помощью Nano. | |||
3. | |||
4. Сделайте скрипт исполняемым, запустив <code>chmod +x arm install.sh</code> | |||
4. | |||
5. Запустите скрипт, выполнив команду <code>./arm install.sh</code> | |||
5. | |||
6. Запустите сервер с помощью <code>./VintagestoryServer</code> или <code>dotnet Vintage storyServer.dll</code> | |||
6. | |||
Это загрузит последнюю версию Vintage story в текущий рабочий каталог, а затем заменит необходимые файлы для работы с ARM. | |||
Если в любой момент вы захотите обновить Vintage Story до последней версии, просто запустите скрипт еще раз. | |||
---- | ---- | ||
==== Простая команда запуска сервера ==== | |||
==== | |||
Если вы хотите использовать пользовательский скрипт или просто вручную запустить свой сервер, вы можете запустить | |||
dotnet VintagestoryServer.dll --dataPath /путь/к/данным | |||
Или | |||
././Vintage StoryServer --dataPath /путь/к/данным | |||
, если у вас установлена переменная окружения <code>DOTNET_ROOT</code>. | |||
==== Обновление серверов ==== | ==== Обновление серверов ==== | ||
Если вы хотите установить более новую версию, сначала удалите все установочные файлы, иначе вы получите непредвиденное поведение. Если вы выбрали папку данных внутри папки установки, не удаляйте ее, иначе вы потеряете сохраненные игры, настройки и данные игрока. | Если вы хотите установить более новую версию, сначала удалите все установочные файлы, иначе вы получите непредвиденное поведение. Если вы выбрали папку данных внутри папки установки, не удаляйте ее, иначе вы потеряете сохраненные игры, настройки и данные игрока. | ||
Загрузите файл | Загрузите файл ''Tar.gz Archive/Linux (только сервер)'' и распакуйте его. Если ваш сервер находится удалённо и имеется только FTP-подключение, вам придется распаковывать архив локально и загружать каждый файл вручную. | ||
== | == Базовые настройки == | ||
Как только ваш сервер будет запущен, вы, возможно, захотите просмотреть некоторые из следующих параметров конфигурации. Вы можете настроить сервер во время его работы с помощью команд или путем редактирования {{ll|Server Config|serverconfig.json}}, для чего сначала необходимо остановить сервер. | |||
Как только ваш сервер будет запущен, вы | В Windows по умолчанию этот файл расположен по адресу '''%appdata%/VintageStoryData/serverconfig.json'''. | ||
В | В Linux он находится в "./data/serverconfig.json" вашего каталога сервера (например, "/home/vintagestory/server/data/serverconfig.json", если настройка была выполнена так, как описано здесь). | ||
В Linux находится | |||
{{Protip|Самый простой способ настроить мир в соответствии с вашими пожеланиями - сначала создать его в одиночной игре, используя расширенные параметры создания мира, а затем загрузить его для использования в качестве вашего серверного мира.}} | |||
{{Protip | |||
|Самый простой способ настроить мир в соответствии с вашими пожеланиями | |||
}} | |||
"Объяснение значений в serverconfig.json вы можете найти здесь: [[server Config/ru]]" | "Объяснение значений в serverconfig.json вы можете найти здесь: [[server Config/ru]]" | ||
Вот некоторые из | Вот некоторые из значений, задаваемых командами, которые обычно устанавливают. | ||
* <code>/serverconfig upnp [0|1]</code><br>Если установлено значение один, игровой сервер попытается настроить переадресацию портов для вас | * <code>/serverconfig upnp [0|1]</code><br>Если установлено значение один, игровой сервер попытается настроить переадресацию портов для вас | ||
Line 185: | Line 157: | ||
* <code>/serverconfig description Это средневековый сервер выживания, только PvE, добро пожаловать всем!<3</code><br>настройте описание серверов, видимое в списке общедоступных серверов | * <code>/serverconfig description Это средневековый сервер выживания, только PvE, добро пожаловать всем!<3</code><br>настройте описание серверов, видимое в списке общедоступных серверов | ||
* <code>/serverconfig motd Hi {playername}!Пожалуйста, не забывайте следовать правилам!</code><br>сообщение, показанное игрокам, когда они присоединяются | * <code>/serverconfig motd Hi {playername}!Пожалуйста, не забывайте следовать правилам!</code><br>сообщение, показанное игрокам, когда они присоединяются | ||
* <code>/serverconfig password asdaf</code><br>Если необходим пароль для входа , используйте<code>/serverconfig nopassword</code>для | * <code>/serverconfig password asdaf</code><br>Если необходим пароль для входа, используйте <code>/serverconfig nopassword</code>для его удаления. | ||
* <code>/serverconfig advertise (1|0)</code><br>Если следует добавить этот сервер в список общедоступных серверов | * <code>/serverconfig advertise (1|0)</code><br>Если следует добавить этот сервер в список общедоступных серверов | ||
Line 201: | Line 173: | ||
== Расширенный Выделенный Сервер == | == Расширенный Выделенный Сервер == | ||
===Дистрибутив Debian с сервисом systemd и rsyslog=== | |||
===Debian с сервисом systemd и rsyslog=== | |||
Если вы предпочитаете использовать systemd вместо экрана для запуска вашего VS-сервера, вы можете следовать этим инструкциям.<br> | Если вы предпочитаете использовать systemd вместо экрана для запуска вашего VS-сервера, вы можете следовать этим инструкциям.<br> | ||
Мы также настроим rsyslog для разделения всех журналов на отдельные файлы.<br> | Мы также настроим rsyslog для разделения всех журналов на отдельные файлы.<br> | ||
==== Установка ==== | ==== Установка ==== | ||
'''1. Создайте пользователя''' | |||
''' | |||
adduser --shell /bin/bash --disabled-password gameserver | adduser --shell /bin/bash --disabled-password gameserver | ||
'''2. Создание каталоги''' | |||
''' | |||
mkdir -p /srv/gameserver/vintagestory | mkdir -p /srv/gameserver/vintagestory | ||
mkdir -p /srv/gameserver/data/vs | mkdir -p /srv/gameserver/data/vs | ||
mkdir -p /usr/lib/systemd/system | mkdir -p /usr/lib/systemd/system | ||
'''3. Скачать игру''' | |||
'''3. Скачать игру | |||
cd /srv/gameserver/vintagestory | cd /srv/gameserver/vintagestory | ||
Перейдите к http://account.vintagestory.at/downloads <br> | |||
Скопируйте ссылку на новейший пакет "vs_server_linux-x64_*.*.*.tar.gz" ('''Сервер Linux (.tar.gz)"" в разделе ''''Показать другие доступные загрузки Vintage Story''')<br> | |||
Скопируйте ссылку | Скачайте с помощью "wget" через консоль (''В этом примере Vintage Story версии 1.18.8''). | ||
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz | |||
wget https://cdn.vintagestory.at/gamefiles/stable/ | |||
'''4. Разархивируйте tar.gz архив''' | |||
'''4. | |||
tar xzf vs_server_linux-x64_1.18.8.tar.gz | |||
tar xzf | |||
'''5. Смените владельца''' | |||
'''5. | |||
Вы должны установить владельца каталога Вашего игрового сервера, чтобы избежать ошибок разрешения на запись | Вы должны установить владельца каталога Вашего игрового сервера, чтобы избежать ошибок разрешения на запись | ||
chown -R gameserver:gameserver /srv/gameserver | chown -R gameserver:gameserver /srv/gameserver | ||
'''6. Создать файл сервисного модуля systemd''' | |||
'''6. Создать файл сервисного | |||
Используйте свой любимый инструмент для создания файла сервиса(в данном примере используется nano) | |||
Используйте свой любимый инструмент для создания файла | |||
nano /usr/lib/systemd/system/vintagestoryserver.service | nano /usr/lib/systemd/system/vintagestoryserver.service | ||
Вставьте следующее содержимое | |||
[Unit] | [Unit] | ||
Description=Vintage Story Server Unit | Description=Vintage Story Server Unit | ||
Line 271: | Line 217: | ||
[Service] | [Service] | ||
WorkingDirectory=/srv/gameserver/vintagestory | WorkingDirectory=/srv/gameserver/vintagestory | ||
ExecStart= | ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs | ||
Restart=always | Restart=always | ||
RestartSec=30 | RestartSec=30 | ||
Line 282: | Line 228: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
Убедитесь, что у нового пользователя есть доступ к команде <code>dotnet</code>, или замените команду полным путем к месту установки dotnet runtime (если вы выбрали выборочную установку). Или вы также можете использовать <code>ExecStart=Vintage StoryServer --dataPath /srv/gameserver/data/vs</code>, если у вас установлена переменная окружения <code>DOTNET_ROOT</code>. | |||
'''7. Создайте файл конфигурации для rsyslog''' | |||
'''7. | |||
Используйте свой любимый инструмент для создания файла конфигурации rsyslog (в данном примере используется nano). | |||
Используйте свой любимый инструмент для создания | |||
nano /etc/rsyslog.d/vintagestoryserver.conf | nano /etc/rsyslog.d/vintagestoryserver.conf | ||
Вставьте следующее содержимое: | |||
if $programname == 'VSSRV' then { | if $programname == 'VSSRV' then { | ||
if($msg contains "Chat") then { | if($msg contains "Chat") then { | ||
Line 317: | Line 257: | ||
# Discard | # Discard | ||
if $programname == 'VSSRV' then ~ | if $programname == 'VSSRV' then ~ | ||
'''8. Перезапустите/включите службу rsyslog''' | |||
'''8. | Чтобы активировать rsyslog и сервер, введите следующие команды | ||
systemctl restart rsyslog.service; | systemctl restart rsyslog.service; | ||
systemctl enable vintagestoryserver.service | systemctl enable vintagestoryserver.service | ||
systemctl start vintagestoryserver.service | systemctl start vintagestoryserver.service | ||
---- | ---- | ||
Line 345: | Line 277: | ||
==== Конфигурация ==== | ==== Конфигурация ==== | ||
чтобы изменить конфигурацию серверов, остановите сервер и отредактируйте | чтобы изменить конфигурацию серверов, остановите сервер и отредактируйте | ||
nano /srv/gameserver/data/vs/serverconfig.json | nano /srv/gameserver/data/vs/serverconfig.json | ||
После того как вы сохранили | После того, как вы сохранили изменения, снова запустите сервер. | ||
==== | ==== Планирование перезапуска ==== | ||
Если вы хотите, чтобы ваш сервер перезапускался каждый день, | Если вы хотите, чтобы ваш сервер перезапускался каждый день, вы можете настроить для этого cronjob | ||
crontab-e | crontab -e | ||
вставьте эту строку, чтобы остановить сервер в 04: 30 | вставьте эту строку, чтобы остановить сервер в 04:30 | ||
30 4 * * * systemctl stop vintagestoryserver. service | 30 4 * * * systemctl stop vintagestoryserver.service | ||
Теперь можно выполнить задачи резервного копирования, а затем запустить его снова со следующей строкой в 04:32 (если вы запустили задачу резервного копирования, планируйте еще немного времени здесь) | |||
32 4 * * * systemctl start vintagestoryserver | 32 4 * * * systemctl start vintagestoryserver | ||
Если вы просто | Если вы хотите просто перезапустить сервер, то эта строка вместо двух других вполне подойдет | ||
30 4 * * * systemctl | 30 4 * * * systemctl restart vintagestoryserver.service | ||
==== | ==== Ведение журнала ==== | ||
Конфигурация rsyslog разбивает выходные журналы на отдельные файлы, которые вы можете просматривать с помощью команды tail<br> | Конфигурация rsyslog разбивает выходные журналы на отдельные файлы, которые вы можете просматривать с помощью команды tail<br> | ||
Line 382: | Line 314: | ||
Если вы хотите запустить несколько экземпляров на одной машине, вам просто нужно повторить некоторые из описанных выше шагов. Это всего лишь пример для второго экземпляра: | Если вы хотите запустить несколько экземпляров на одной машине, вам просто нужно повторить некоторые из описанных выше шагов. Это всего лишь пример для второго экземпляра: | ||
mkdir -p /srv/gameserver/data/vs2 | |||
mkdir -p /srv/gameserver/data/vs2 | |||
nano /usr/lib/systemd/system/vintagestoryserver2.service | nano /usr/lib/systemd/system/vintagestoryserver2.service | ||
Скопируйте из шага 6 и измените | Скопируйте из шага 6 и измените следующие строки: | ||
Description=Vintage Story Server 2 Unit | Description=Vintage Story Server 2 Unit | ||
ExecStart= | ExecStart=dotnet VintagestoryServer.dll --dataPath /srv/gameserver/data/vs2 | ||
SyslogIdentifier=VSSRV2 | SyslogIdentifier=VSSRV2 | ||
Создайте файл rsyslog и скопируйте код | Создайте файл rsyslog и скопируйте код из шага 7 | ||
nano /etc/rsyslog.d/vintagestoryserver2.conf | nano /etc/rsyslog.d/vintagestoryserver2.conf | ||
Измените <code>VSSRV</code> на <code>VSSRV2</code> и <code>/var/log/vintagestory-server</code> на <code>/var/log/vintagestory-server2</code><br> | Измените <code>VSSRV</code> на <code>VSSRV2</code> и <code>/var/log/vintagestory-server</code> на <code>/var/log/vintagestory-server2</code><br> | ||
Перед продолжением создайте копию конфигурации вашего первого сервера и отредактируйте ее по своему усмотрению (измените порт!!!) | |||
cp /srv/gameserver/data/vs/serverconfig.json /srv/gameserver/data/vs2/ | cp /srv/gameserver/data/vs/serverconfig.json /srv/gameserver/data/vs2/ | ||
nano /srv/gameserver/data/vs2/serverconfig.json | nano /srv/gameserver/data/vs2/serverconfig.json | ||
Теперь запустите | Теперь запустите сервис | ||
systemctl restart rsyslog.service; | systemctl restart rsyslog.service; | ||
systemctl enable vintagestoryserver2.service | systemctl enable vintagestoryserver2.service | ||
Line 401: | Line 332: | ||
Установите cronjob | Установите cronjob | ||
crontab -e | crontab -e | ||
Вставьте | |||
30 4 * * * systemctl restart vintagestoryserver2.service | 30 4 * * * systemctl restart vintagestoryserver2.service | ||
Приятной игры! | Приятной игры! | ||
==Расширенная настройка== | |||
= | |||
===Использование SRV-записи для указания домена на ваш сервер=== | |||
В некоторых случаях вы, возможно, не сможете иметь сервер с портом по умолчанию (несколько экземпляров на одном сервере, платные хосты...), и вам придется добавить порт в конце адреса сервера, чтобы подключиться к нему.<br> | |||
Но, возможно, вы захотите избежать необходимости указывать порт (проще запомнить, выглядит чище). | |||
Есть способ указать домен на ваш сервер и избежать необходимости добавлять порт : записи SRV<br> | |||
Записи SRV позволяют вам указать домен/поддомен для вашего экземпляра сервера, сообщая игре, какой порт использовать. | |||
SRV | Как настроить записи SRV, будет зависеть от вашего провайдера домена, и вам следует ознакомиться с их документацией, прежде чем вносить какие-либо изменения. Однако суть остаётся такой же для каждого провайдера.<br> | ||
Давайте возьмем сервер со следующими данными : | |||
* Адрес: <code>play.example.com</code> | |||
* | * Порт: <code>50030</code> | ||
* | * Собственный домен : <code>mydomain.com</code> | ||
* | * Желаемый субдомен: <code>vintagestory.mydomain.com</code> | ||
* | |||
Ваши необработанные записи SRV должны выглядеть примерно так : | |||
_vintagestory._tcp.vintagestory.mydomain.com. IN SRV 10 10 50030 server.example.com. | |||
Подчеркивания и конечные точки важны! Вот некоторые подробности : | |||
* <code>_vintagestory</code> определяет сервис, в нашем случае Vintage Story<br> | |||
* <code>_vintagestory</code> | * <code>_tcp</code> определяем протокол, в Vintage Story используем TCP<br> | ||
* <code>_tcp</code> | * <code>vintage story.mydomain.com.</code> это поддомен, который мы хотим использовать. Точка в конце важна!<br> | ||
* <code> | * <code>IN SRV</code> Определяет тип записи, не меняйте это<br> | ||
* <code>IN SRV</code> | * <code>10 10</code> указаны в порядке приоритета и веса нашей записи, в нашем случае это не важно, поскольку вы, вероятно, не собираетесь балансировать нагрузку на сервер Vintage Story<br> | ||
* <code>10 10</code> | * <code>50030</code> - это порт, который прослушивает наш экземпляр<br> | ||
* <code>50030</code> | * <code>server.example.com.</code> - целевой сервер, на котором расположен сервер. Конечная точка обязательна, поскольку целевой сервер находится не в том же домене, что и мы. Если бы это было так, вам нужно было бы только добавить поддомен целевого сервера без конечной точки<br> | ||
* <code>server.example.com.</code> | |||
Если бы вы хотите, чтобы ваша запись указывала непосредственно на ваш домен, у вас должен быть <code>mydomain.com.</code> вместо <code>vintagestory.mydomain.com.</code> | |||
Вот как это сделать для OVH и Hetzner (не забудьте отредактировать значения в соответствии с вашими настройками) : | |||
====OVH==== | ====OVH==== | ||
Вам нужно будет зайти в свою зону DNS и добавить запись, выбрать тип записи SRV : | |||
* * Поддомен : <code>_vintagestory._tcp.vintagestory</code> Вам не нужно добавлять свой домен, так как их форма сделает это за вас. | |||
* | * TTL: Нет необходимости изменять это | ||
* TTL : | * Приоритет: <code>10</code> | ||
* | * Вес: <code>10</code> | ||
* | * Порт : <code>50030</code> | ||
* | * Цель : <code>server.example.com.</code> | ||
* | |||
====Хетцнер==== | |||
==== | |||
Вам нужно будет создать запись в их консоли DNS : | |||
* Введите : <code>SRV</code> | |||
* | * Имя : <code>_vintagestory._tcp.vintagestory.mydomain.com.</code> | ||
* | Нажмите на поле значения, чтобы ввести данные : | ||
* Приоритет : <code>10</code> | |||
* | * Вес: <code>10</code> | ||
* | * Порт : <code>50030</code> | ||
* | * Цель: <code>server.example.com.</code> | ||
* | |||
Подождите несколько минут, пока ваша запись распространится, а затем попробуйте использовать ее для подключения к серверу, используя <code>vintage story.mydomain.com</code> в качестве адреса. | |||
Теперь все настроено для совместного использования вашего сервера с вашим личным доменом. | |||
{{Game navbox}} | {{Game navbox}} |