Jump to content
Valtos

Поднимаем станцию своими руками на примере Ubuntu 20.04

Recommended Posts

Эта памятка создана для тех, кто в будущем захочет поднять свой "анемаз". Тому, кто занимается этим давно может пригодиться только список нужных библиотек и трики, всё остальное уже и так разжевано на форумах бьёнда. За основу будет взят мой старый опыт по настройке всего этого под Ubuntu Linux 20.04. Беру я её из-за простоты в настройке и меньшей вероятностью в возможном пердолинге с конфигами.

Хостинг
Выбираете сами, но могу посоветовать SpaceCore (регайтесь по этой рефке, если вдруг понадобится моя помощь). Одноядерного сервера с i7-8700 от них должно хватить на ровно один сервер, так что пробуйте. Также внимательно смотрите на скорость процессора, она должна быть описана, чем она больше - тем бодрее двигается ваша станция. Многие хостинги любят резать процессор в половину и более (большая часть говнохостеров режет процессор по приколу, не говоря уже про триальные версии), либо подсовывают магнитные ленты вместо SSD дисков со скоростью записи/чтения в 1 байт/25 лет.

Первоначальная настройка
Думаю, процесс с созданием машины и подключением к ней вы найдёте в интернете.
Для удобства работы с сервером могу посоветовать Xshell и его лучшего друга Xftp. Если вы сейчас работаете под линуксом и не понимаете как это сделать, то могу вам посоветовать застрелиться нахуй.
Итак, подключаемся к нашей новенькой горяченькой и чистенькой машине.

Первым делом создадим учётку юзера, установим пароль и выдадим ему права на выполнение команд от лица рут-пользователя, под рутом работать никому не советую, а если вы и делаете это, то вы квалифицированный специалист и просто знаток, либо олигофрен и у вашей матери рак жопы:

adduser zlofenix
passwd zlofenix
usermod -aG sudo zlofenix
su zlofenix


Уже лучше. Выполним сразу же обновление системы и установим необходимые пакеты для дальнейшей работы:

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install git libssl-dev:i386 grep mysql-client lib32z1 pkg-config libssl-dev screen language-pack-ru unzip make


Включены все необходимые пакеты для работы бьёнда. Меняем локаль на нужную. Конкретно нам нужна руснявая ru_RU.UTF-8:

sudo nano /etc/default/locale

Выходим из редактора сочетанием клавиш CTRL+S (сохранить) и CTRL+X (закрыть). Все хоткеи у nano расписаны снизу, если вдруг забудете.
Теперь можно приступать к развёртке бьёнда.

Развёртывание BYOND
Нам нужно взять этот BYOND. Брать мы его будем отсюда: http://www.byond.com/download/
Конкретно на дату написания этой статьи мы будем использовать актуальную последнюю версию с номером 514.1568:

wget http://www.byond.com/download/build/514/514.1568_byond_linux.zip
unzip 514.1568_byond_linux.zip
rm 514.1568_byond_linux.zip
cd byond/


Теперь установим это:

sudo make install
DreamDaemon


Если выводится справочная информация, то поздравляю - бьёнд развёрнут. Иначе отпишитесь в теме приложив вывод ошибки.

Разворачиваем билд
У каждого билда свой анальный способ доведения его в рабочее состояние, но мы же возьмём за пример оригинальный /tg/. Тут всё просто.
Клонируем репу локально:

git clone --depth=1 https://github.com/tgstation/tgstation manyastation/


Поправим конфиги... Как править конфиги? А я ебу, я че бог что-ли?
Теперь мы скомпилируем и запустим наш шедевр:

DreamMaker tgstation.dme
screen DreamDaemon tgstation.dmb 1488 -trusted


Первая команда компилирует, вторая уже запускает. Должно срать ошибками. Всё из-за недостающих либ для /tg/. Выложить скомпилированные под разные билды мне не позволяет моя совесть и лимит размера файлов на форуме. Так что будем делать это ручками. Возьмём в пример rust_g. Что он делает? Уменьшает нагрузку на бьёнд в плане логгирования. В README.md либы уже описано как её компилировать, дублировать тут не буду. Допустим, есть у нас эта библиотека, закинули мы её в папку с билдом и... нихуя, опять срёт.
Проблема в том, что бьёнд не видит её и также у неё нет прав на запуск. Исправляем это так:

chmod +x rust_g
export LD_LIBRARY_PATH=/home/zlofenix/manyastation/


Теперь должно логгировать как надо. Как делать другие либы ищите там где их берёте. Один хуй всё написано долбоёбами криворукими и будет срать разными ошибками, которыми нужно бить в ебало разработчику этой хуйни.

Решение проблем с корявыми логами, которые пишутся хуй знает куда. Берём вот https://github.com/Valtosin/ss13-hub/blob/master/scripts/psv.py этот скрипт и кидаем его в папку data/ нашей станции. Он конвертирует логи в нечитабельное говно, но уже разбивает их как надо. Для конвертирования нужно дать скрипту ID-раунда:

python3 psv.py 42


Как сделать их чуть более читабельными? Да хуй знает. Попробуйте в .html перевести, может лучше станет.

Базы
Мы же установили mariadb...
Да, поднять базу тоже стоит, если вы не собираетесь играться только одни сутки. Я этот процесс не буду расписывать, могу лишь добавить некоторые трики для корректной работы /tg/.

Создавать базу нужно в кодировке latin1, если у вас версия 512 и ниже:

CREATE DATABASE manyastationthebest CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Если версия 513/514 и выше как в нашем случае, то можно не измываться над кодировкой:

CREATE DATABASE manyastationthebest;


Mysql отвечает, что ты пидор при попытке подключиться?

sudo systemctl stop mariadb.service
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -uroot


Так мы запустили её в безопасном режиме. Теперь установим пароль.

FLUSH PRIVILEGES;
SET PASSWORD FOR [email protected]'localhost' = PASSWORD('mypasswordis12345');
QUIT;


Перезапустим её.

sudo systemctl restart mariadb.service


И оно не будет работать. Так как нет доступного сокета.

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock


Теперь должно.

Ъъъъъъьъъъъъъъ x2
Всё же, если вы так нихуя и не смогли сделать, то можете описать в этой темке проблему. Вас обязательно выслушают, наверное.

Спойлер

Изображение

Старый пост: https://forum.ss13.ru/index.php?showtopic=18752

  • +Rep 5
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...