September 1, 2024

Как развернуть сайт вашего сервера Rust используя RSWT

RSWT - Rust-Server-WEebsite-Template

Что такое RSWT?

RSWT (Rust-Server-Website-Template) — это простой, одностраничный шаблон для быстрого развёртывания сайта вашего игрового сервера Rust.

Собран на Vue, вёрстка Bootstrap. Использует API Rust-Servers.Net и Discord Widget. Помимо статических шаблонов, будет динамически подгружать данные с вышеуказанных API и обновлять данные на странице:

  • Статус сервера Онлайн/Оффлайн
  • Количество игроков на сервере Rust
  • Количество участников на сервере Discord

Что нужно для развёртывания?

Для того, чтобы запустить (развернуть) RSWT будет достаточно самого простого VPS с предустановленным Docker.

Где арендовать VPS?

Вы можете выбирать любой, в качестве рекомендации могу предложить следующие.

Облако Рег.ру

Начать можно с тарифа Std C1-M1-D10 за 390 ₽/мес. Полноценный VPS с SSH доступом. Характеристики: 1 ядро 2.2Ghz / 1 GB RAM / 10 GB SSD

Арендовать облачный сервер на Рег.ру можно по моей ссылке, а можно и без неё =)

timeweb.cloud

На момент написания статьи самый дешевый тариф доступен в регионе SPB-2 за 530 ₽/мес. Полноценный VPS с SSH доступом. Характеристики: 1 ядро 2.8Ghz / 1 GB RAM / 10 GB SSD

В timeweb помимо аренды VPS можно сделать деплой приложения сразу из GitHub с помощью Dockerfile или Node.js+Vue.

В первом случае стоимость будет составлять 188 ₽/мес. Характеристики: 1 ядро 3.3 GHz / 1 GB RAM / 15 GB NVMe. Без доступа по SSH и возможности редактировать файлы.

Во втором случае стоимость будет зависеть от лимитов:

  • 50 тыс/мес 50 Мб 1 ₽/мес
  • 200 тыс/мес 1 Гб 99 ₽/мес

Доступа по SSH так-же не будет, как и возможности редактировать файлы. Второй вариант супер дешевый, однако редактировать шаблон можно будет только создав форк ГитХаб репозитория RSWT, и ре-деплой приложения после изменения файлов в нём.

Арендовать облачный сервер на timeweb можно по моей ссылке (+300 ₽ на счет)

Деплой RSWT

Далее немного подробнее о процессе развёртывания (деплоя) RSWT.

VPS, Docker, SSH

Если вы арендовали полноценный VPS и хотите запустить сайт на нём. Отталкиваемся от того, что вы арендовали VPS с предустановленным Docker (Ubuntu 24.04 + Docker).

Заходим через SSH, далее подготовим окружение и клонируем репозиторий:

apt update
git clone --branch rswt-vue https://github.com/Mo45/Rust-Server-Website-Template.git rswt
apt install npm -y

Установим приложение, соберём образ Docker и запустим его:

cd rswt
npm install
docker build -t rswt-vue .
docker run -p 80:80 rswt-vue

Последняя команда запустит образ который мы клонировали с ГитХаба и собрали локально, и пробросит 80 порт из контейнера на 80 порт вашего VPS.

Теперь вы можете зайти и проверить всё-ли работает http://IP_вашего_VPS:80

Всё работает? Отлично, остановим контейнер ctrl+c

Теперь можно персонализировать сайт, для этого нужно отредактировать файлы шаблона. В первую очередь src\config.json:

{
  "TITLE_SHORT": "RSWT Vue App", <-- Короткий заголовок, используется в качестве заголовка страницы
  "TITLE_FULL": "Mega Awesome Servers", <-- Основной заголовок, используется в h1 и футере
  "PRJ_SLOGAN": "Most Amazing Rust Servers", <-- Подзаголовок, или слоган h2
  "DISCORD_ID": "XXXXXXXXXXXXXXXXXX", <-- ID вашего сервера Discord

  "S1_API_KEY": "YOUR_API_KEY", <-- API ключ Rust-Servers.Net для первого сервера
  "S1_BANNER": "mosharust.png", <-- Баннер для первого сервера
  "S1_DESC": "The original experience", <-- Краткое описание первого сервера

  "S2_API_KEY": "YOUR_API_KEY", <-- API ключ Rust-Servers.Net для второго сервера
  "S2_BANNER": "mosharust.png", <-- Баннер для второго сервера
  "S2_DESC": "Another cool description", <-- Краткое описание второго сервера

  "S3_API_KEY": "YOUR_API_KEY",
  "S3_BANNER": "mosharust.png",
  "S3_DESC": "Another cool description",

  "S4_API_KEY": "YOUR_API_KEY",
  "S4_BANNER": "mosharust.png",
  "S4_DESC": "Another cool description"
}

Теперь приступим к редактированию разделов FAQ, Staff, Rules и т.д.

Для каждого из разделов редактируем

components\faqSection.vue
components\rulesSection.vue
components\staffSection.vue
components\storeSection.vue

Следуем комментариям в коде. Всё должно быть понятно, это базовый HTML.

Теперь можно запустить контейнер и проверить:

docker compose up -d --build

Эта команда запустит контейнер в свёрнутом виде.

Если контейнер необходимо запустить на другом порту (не 80), измените его в файле .env в корневой директории:

#!/usr/bin/env bash

APP_NAME=rswt-vue
APP_PORT=80 <-- изменить на необходимый порт
APP_VER=0.0.2

Деплой приложения Vue в timeweb

Полная пошаговая инструкция доступна на сайте timeweb.

Если кратко:

  1. Выбираем Frontend -> Vue
  2. Жмём Подключите git-репозиторий по URL
  3. Вставляем URL репозитория: https://github.com/Mo45/Rust-Server-Website-Template.git (или на свой форк)
  4. Выбираем ветку rswt-vue и самый актуальный (верхний) коммит
  5. Остальное не меняем, жмём Запустить деплой — 1 ₽/мес