|
|
(не показано 9 промежуточных версий 3 участников) |
Строка 10: |
Строка 10: |
| Сборка нашего сервера происходит автоматически ежедневно при наличии изменений и так же автоматически публикуется в общий доступ. | | Сборка нашего сервера происходит автоматически ежедневно при наличии изменений и так же автоматически публикуется в общий доступ. |
|
| |
|
| '''Скачать готовую сборку под вашу ОС вы можете по этой ссылке:''' https://shizainc.com/sunrise_builds/builds/ | | '''Скачать готовую сборку под вашу ОС вы можете по этим ссылкам:''' |
| | |
| | *'''Билд Sunrise Station:''' https://ss14.cdn.shizainc.com/fork/sunrise_station |
| | *'''Билд Last Station:''' https://ss14.cdn.shizainc.com/fork/lust_station |
| | *'''Билд Newera Station:''' https://ss14.cdn.shizainc.com/fork/newera_station |
|
| |
|
| #Скачайте сборку под вашу ОС | | #Скачайте сборку под вашу ОС |
Строка 22: |
Строка 26: |
|
| |
|
|
| |
|
| ==== У меня открывается черное окно (или на долю секунды мелькает иконка сервера) и сразу пропадает, что делать? ==== | | === Возможные проблемы === |
| Скорее всего у вас устаревшая версия .NET, попробуйте установить [https://dotnet.microsoft.com/en-us/download 8-ю версию]. | | *Q: У меня открывается черное окно (или на долю секунды мелькает иконка сервера) и сразу пропадает, что делать? |
| | | *A: Скорее всего у вас устаревшая версия .NET, попробуйте установить [https://dotnet.microsoft.com/en-us/download 8-ю версию]. |
| ==Самостоятельная сборка==
| |
| | |
| <h3>Сборка</h3>
| |
| Вы кажется решили идти по сложному пути, и тогда я надеюсь вы понимаете зачем вам это нужно.
| |
| Для начала, чтоб что-то запустить это нужно установить.:
| |
| | |
| * [https://git-scm.com/downloads Git]
| |
| * [https://dotnet.microsoft.com/en-us/download/dotnet/8.0 DotNet 8]
| |
| * [https://www.python.org/downloads Python 3.7+]
| |
| | |
| # Откройте папку куда хотите сохранить все файлы локалки
| |
| # Открываем терминал (ПКМ -> Открыть в Windows Terminal) и работаем в нем. Если же у вас нет Windows Terminal, то вводим cmd через Win + R, в консоли переходим в папку где у вас будет сервер <code>cd C:\</code>
| |
| # Клонируем офф репозиторий <code>git clone https://github.com/space-wizards/space-station-14.git</code> или же репозиторий корвакса <code>git clone https://github.com/space-syndicate/space-station-14.git</code>
| |
| # Переходим в папку репозитория <code>cd space-station-14</code>
| |
| # Устанавливаем зависимости для сборки <code>python ./RUN_THIS.py</code>
| |
| # Собираем сервер и клиент <code>dotnet build</code> или <code>dotnet build --configuration Release</code>, если вы даете что-то более серьёзное.
| |
| | |
| Поздравляю, теперь вы счастливый обладатель локального сервера. Мама бы вами гордилась!
| |
| | |
| <h3>Запуск</h3>
| |
| Если после танцев с бубном у вас все получилось, то следующие шаги вас точно не заставят врасплох.
| |
| | |
| #Запускаем сервер открыв '''''<code>Content.Server.exe</code>''''' по пути '''''<code>..\space-station-14\bin\Content.Server (не путать с Robust.Server.exe)</code>'''''
| |
| #Запускаем клиент открыв '''''<code>Content.Client.exe</code>''''' по пути '''''<code>..\space-station-14\bin\Content.MapRenderer (не путать с Robust.Client.exe)</code>'''''
| |
| #Жмем <code>Direct Connect To Server...</code> в меню
| |
| | |
| И на этом все. Просто, не правда ли? Теперь вам никто не помешает устраивать военные преступления похлеще чем....
| |
| | |
| ==Дополнительное==
| |
| Дополнительная информация, которая вам наверное, да и поможет
| |
| | |
| => Как открыть консоль?
| |
| На кнопку <code>~</code>
| |
| | |
| => Как перейти в лобби?
| |
| <code>golobby</code> команда в консоль
| |
| | |
| => Где настройки сервера?
| |
| Файл в папке сервера - <code>server_config.toml</code>
| |
| | |
| => Как просмотреть все команды?
| |
| <code>list</code> в консоль
| |
| <code>help <команда></code> для подробностей о команде
| |
| | |
| | |
| | |
| | |
| ===Учебное пособие по размещению серверов===
| |
| | |
| Это руководство о том, как настроить сервер SS14. Это руководство охватит все, что вам нужно, от приватных серверов для игр с друзьями до производственных серверов для подходящих хостов серверов.
| |
| | |
| Вы можете использовать два метода. "Голый" сервер, который просто запускает игровой сервер напрямую, или </code>SS14.Watchdog</code> который обрабатывает обновления и запускает игровой сервер для вас. Мы рекомендуем последнее для более правильного развертывания, а также если вы хотите быть в списке на хабе в лаунчере.
| |
| | |
| Для таких сервисов как </code>SS14.Watchdog</code>, вам ТАКЖЕ понадобится среда выполнения ASP .NET Core 7 (входит в .NET 7 SDK).
| |
| | |
| ==1.Базовая Настройка==
| |
| | |
| # Загрузите последнюю версию сервера с нашей страницы сборки для вашей операционной системы.
| |
| </code>https://builds.station14.ru/syndicate/</code>
| |
| # Извлеките в любое место
| |
| # Запустите Robust.Server.exe (или Robust.Server через терминал на macOS / Linux)
| |
| # Перенаправление портов 1212/ TCP и 1212/UDP:
| |
| * Самый простой способ сделать это - включить UPnP на сервере. Отредактируйте </code>server_config.toml</code> и удалите # перед upnp = true в блоке [net]. Это заставит сервер автоматически пытаться перенаправить порт на ваш маршрутизатор. Это должно работать на большинстве современных маршрутизаторов.
| |
| * Если UPnP у вас не работает, вам придется сделать это вручную. Инструкции зависят от вашего маршрутизатора, поэтому мы оставляем поиск в браузере на ваше усмотрение.
| |
| # Дайте своим друзьям и себе свой IP-адрес и попросите их вставить его в диалоговое окно "прямое подключение" в лаунчере.
| |
| | |
| Это, конечно, не будет обрабатывать автоматические перезапуски (в случае сбоя) или обновления, как это сделал бы </code>watchdog</code>. Это также не приведет к публичному размещению вашего сервера на хабе, поскольку реклама по умолчанию отключена. Если вы хотите, чтобы ваш сервер был указан в хабе, пожалуйста, читайте ниже.
| |
| | |
| ==Простая конфигурация сервера==
| |
| | |
| Вы можете настроить параметры на сервере, отредактировав конфигурационный файл, </code>server_config.toml</code>
| |
| | |
| Настройки имеют один ключ, под который они подпадают, а затем имя. Итак, если я скажу game.lobbyenabled, что это идет под [game] заголовком следующим образом:
| |
| | |
| </code>[game]
| |
| | |
| lobbyenabled = true
| |
| | |
| Некоторые значения по умолчанию, которые вы, возможно, захотите установить для своего сервера, если вы действительно собираетесь разместить это должным образом:
| |
| | |
| [net]
| |
| | |
| Тикрейт вашего сервера.
| |
| | |
| tickrate = 30
| |
| | |
| [game]
| |
| Ниже указываете имя вашего сервера.
| |
| hostname = "Мой сервер"
| |
| При запуске сервера включает лобби.
| |
| lobbyenabled = true
| |
| | |
| [auth]
| |
| mode = 1
| |
| | |
| [hub]
| |
| Показывать ли ваш сервер в хабе лаунчера. true - да false - нет.
| |
| Пожалуйста, смотрите правила размещения серверов
| |
| advertise = false</code>
| |
| | |
| ===Универсальные знания===
| |
| ==Права администратора==
| |
| | |
| По умолчанию права администратора не установлены. Соединения, сделанные с localhost, автоматически становятся полноправными администраторами и обходят любые требования к аутентификации. Конечно, это не очень полезно для реальных серверов, размещенных на выделенном сервере, поэтому у вас проблема.
| |
| | |
| Вы можете использовать команду </code>promotehost</code> (например promotehost PJB) в консоли сервера, чтобы временно предоставить подключенному клиенту полные права хоста. Это позволит им настраивать дополнительные права администратора (и устанавливать свои собственные постоянные) с помощью панели разрешений администратора в игре (</code>permissions</code> команда). Привилегии теряются при завершении работы сервера. Рекомендуется предоставить себе все разрешения, чтобы вы могли предоставить их администраторам позже или правильно администрировать, если хостинг один. (За исключением +HOST случаев, когда вы не умеете им пользоваться! Если вы не знаете, что он делает, не давайте +HOST)
| |
| | |
| +HOST предоставлять привилегии крайне опасно, и их следует предоставлять только тем, у кого уже есть доступ к вашему компьютеру или серверу.
| |
| | |
| Предоставление кому +HOST - либо позволяет им полностью завладеть вашим сервером и / или компьютером.
| |
| | |
| ==Настройки производительности==
| |
| | |
| Вот некоторые настройки, которые вы, вероятно, захотите включить на своем сервере для повышения производительности:
| |
| | |
| Переменная среды для включения полного динамического PGO, что значительно повышает производительность за счет незначительно большего времени запуска:
| |
| | |
| DOTNET_TieredPGO: 1
| |
| | |
| DOTNET_TC_QuickJitForLoops: 1
| |
| | |
| DOTNET_ReadyToRun: 0
| |
| | |
| Переменная среды для включения операций AVX в базе кода. В зависимости от вашего процессора это может снизить производительность, а не улучшить ее, в противном случае это может повысить производительность atmos.
| |
| | |
| </code>ROBUST_NUMERICS_AVX: true</code>
| |
| | |
| ===Дополнительно - SS14.Watchdog и / или пользовательские кодовые базы===
| |
| https://github.com/space-wizards/SS14.Watchdog/
| |
| | |
| </code>SS14.Watchdog</code> (кодовое имя Ian) - это оболочка для хостинга серверов, похожая на TGS для BYOND (но на данный момент намного проще). Он обрабатывает автоматические обновления, мониторинг, автоматические перезапуски и администрирование.
| |
| | |
| Чтобы настроить его, загрузите код (ссылка выше) и опубликуйте его для своей платформы </code>(dotnet publish -c Release -r linux-x64 --no-self-contained)</code>, поскольку в настоящее время мы сами не предоставляем никаких публикаций. Обратите внимание, что вам необходимо иметь ASP.NET Установленую как основная среда выполнения. Затем скопируйте SS14.Watchdog/bin/Release/net6.0/linux-x64/publish в каталог на вашем сервере или что-то в этом роде.
| |
| | |
| Вы захотите отредактировать </code>appsettings.yml</code>, чтобы добавить сервер и настроить некоторые вещи. Пример с официальных серверов (очевидно, отредактированные токены):
| |
| | |
| </code>Serilog:
| |
| Using: [ "Serilog.Sinks.Console", "Serilog.Sinks.Loki" ]
| |
| MinimumLevel:
| |
| Default: Information
| |
| Override:
| |
| SS14: Information
| |
| Microsoft: "Warning"
| |
| Microsoft.Hosting.Lifetime: "Information"
| |
| Microsoft.AspNetCore: Warning
| |
| | |
| WriteTo:
| |
| - Name: Console
| |
| Args:
| |
| OutputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3} {SourceContext}] {Message:lj}{NewLine}{Exception}"
| |
| | |
| Enrich: [ "FromLogContext" ]
| |
| | |
| # Uncomment to have watchdog log to Loki
| |
| #Loki:
| |
| # Address: "{{ loki_addr }}"
| |
| # Name: "{{ server_id }}"
| |
| # Username: "{{ loki_user }}"
| |
| # password: "{{ loki_pass }}"
| |
| | |
| AllowedHosts: "*"
| |
| | |
| # API URL that your watchdog is accessible from.
| |
| # This HAS to be set so the game servers can communicate with the watchdog.
| |
| # If you don't want the watchdog to be publically accessible, do `http://localhost:5000/` here.
| |
| BaseUrl: https://builds.spacestation14.io/watchdog/
| |
| | |
| Servers:
| |
| Instances:
| |
| # ID of your server.
| |
| wizards_den:
| |
| # Name of the server - Note that this is NOT the name of the server on the hub, that is set for each server under game.hostname in their respective config.toml files.
| |
| Name: "Wizard's Den"
| |
| ApiToken: "foobar" # API token to control this instance remotely like run updates, restart server. This should be confidential
| |
| ApiPort: 1212 # API port OF THE GAME SERVER. This has to match the 1212 HTTP status API (described below). Otherwise the watchdog can't contact the game server for stuff.
| |
| | |
| # Auto update configuration. This can be left out if you do not need auto updates. Example is for our officially hosted builds.
| |
| # See below for alternatives.
| |
| UpdateType: "Manifest"
| |
| Updates:
| |
| ManifestUrl: "https://central.spacestation14.io/builds/wizards/manifest.json"
| |
| | |
| # Any environment variables you may want to specify.
| |
| EnvironmentVariables:
| |
| Foo: bar
| |
| wizards_den_two:
| |
| # Name of the second server
| |
| Name: "Wizard's Den 2"
| |
| etc...</code>
| |
| | |
| ===Общее устранение неполадок===
| |
| ==SS14.Watchdog==
| |
| Сервер продолжает перезагружаться каждые 30 секунд
| |
| Это означает, что сервер неправильно взаимодействует со </code>SS14.Watchdog</code>, и </code>SS14.Watchdog</code> вынужден предположить, что сервер заблокирован или что-то подобное. Это происходит, если </code>BaseUrl</code> конфигурация </code>SS14.Watchdog</code> установлена неправильно или иным образом недоступна игровому серверу.
| |
| | |
| </code>System.IO.FileNotFoundException: Could not load file or assembly 'Mono.Posix.NETStandard, Version=1.0.0.0, Culture=neutral (...)</code>
| |
| Текущая рабочая теория заключается в том, что это вызвано неправильными </code>dotnet publish</code> настройками.
| |
| Приведенный ниже набор результатов тестов должен помочь объяснить.
| |
| | |
| </code>dotnet publish -c Release -r linux-x64 --no-self-contained SS14.Watchdog -o test
| |
| RESULT: Mono.Posix.NETStandard.dll included, System.dll not included (as expected)</code>
| |
| | |
| </code>dotnet publish -c Release -r linux-x64 SS14.Watchdog -o test
| |
| RESULT: Mono.Posix.NETStandard.dll included, System.dll included</code>
| |
| | |
| </code>dotnet publish -c Release SS14.Watchdog -o test
| |
| RESULT: Mono.Posix.NETStandard.dll not included, System.dll not included</code>
| |
| Поскольку Watchdog используется </code>Mono.Posix.NETStandard.dll</code> для маркировки исполняемых файлов как исполняемых в Linux и Mac OS X, важно иметь его в этих ОС.
| |
| | |
| ==Запуск сервера на macOS или Linux==
| |
| | |
| Откройте терминал в распакованном каталоге сборки
| |
| Введите</code>./Robust.Server</code>, затем нажмите enter. Если вы видите кучу вещей, которые выводятся на экран, и на нем не написано ошибка, значит, сервер запущен.
| |