VDS

В данному руководстве мы установим последнюю версию Go на Debian 12 и запустим Telegram бота.

Для запуска бота необязательно использовать OC Debian. Но все команды, которые мы покажем далее, тестировались только на этой операционной системе.

Установка GO (Golang)

1. Обновим все пакеты

apt update
apt upgrade

2. Скачаем последнюю версию Go

Скопируем ссылку на последний дистрибутив перейдя по адресу https://go.dev/dl/.

2.1 Скачаем и распакуем архив

wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz

2.2 Добавим переменную в файл профиля

echo "export PATH=/usr/local/go/bin:${PATH}" | sudo tee -a $HOME/.profile
source $HOME/.profile

2.3 Проверим версию

go version

go1.21.5 linux/amd64

Готово.


Установка Telegram бота

1. Создадим папку botik

mkdir botik

2. Перенесём туда все файлы из архива

3. Перейдём в эту папку и выполним команды

cd bot
go mod init CSManager
go mod tidy

Готово.


Настройка Telegram бота

Перейдём в папку configs

Откроем файл local.json:

{
    "botToken": "Токен бота от BotFather",
    "logger": { // Управление логами бота
        "botDebug": false, 
        "development": false,
        "encoding": "json"
    },
    "admins": {
        "154257224": { // Telegram ID админов для доступа к боту
            "flags": "z" // Флаги для доступа к функционалу бота
        }
        // Если надо больше админов, то это будет выглядеть так:
        "481236471": { 
            "flags": "z"
        },
        "712331415": { 
            "flags": "z"
        },
    },
    "servers": { // Управление серверами
        "topserver": { // ID сервера для телеграмма. (Писать МАЛЕНЬКИМИ буквами)
            "ip": "37.230.162.200",
            "port": 27015, // Port для подключения к серверу
            "rcon": {
                "password": "1234",
                "port": 27015 // Rcon port для отправки rcon-запросов
            },
            "databases": { // Управление базами данных для сервера "topserver"
                "iks-admin": { // Имя iks-admin нельзя поменять на другое!
                    "db": "s1", // ID базы данных для подключения (конфигурация снизу)
                    "table": "iks_admins",
                    "server_id": "A" // ID сервера у iks-admin
                },
                "vip": { // Имя vip нельзя поменять на другое!
                    "db": "s1", // ID базы данных для подключения (конфигурация снизу
                    "table": "vip_users",
                    "server_id": "1" // ID сервера у VIP
                }
            }
        }
        // Если надо больше серверов, то это будет выглядеть так:
        "topserver": { // ID сервера для телеграмма. (Писать МАЛЕНЬКИМИ буквами)
            "ip": "37.230.162.200",
            "port": 27015, // Port для подключения к серверу
            "rcon": {
                "password": "1234",
                "port": 27015 // Rcon port для отправки rcon-запросов
            },
            "databases": { // Управление базами данных для сервера "topserver"
                "iks-admin": { // Имя iks-admin нельзя поменять на другое!
                    "db": "s1", // ID базы данных для подключения (конфигурация снизу)
                    "table": "iks_admins",
                    "server_id": "A" // ID сервера у iks-admin
                },
                "vip": { // Имя vip нельзя поменять на другое!
                    "db": "s1", // ID базы данных для подключения (конфигурация снизу
                    "table": "vip_users",
                    "server_id": "1" // ID сервера у VIP
                }
            }
        },
        "topserver2": { // ID сервера для телеграмма. (Писать МАЛЕНЬКИМИ буквами)
            "ip": "37.230.162.201",
            "port": 27015, // Port для подключения к серверу
            "rcon": {
                "password": "1234",
                "port": 27015 // Rcon port для отправки rcon-запросов
            },
            "databases": { // Управление базами данных для сервера "topserver"
                "iks-admin": { // Имя iks-admin нельзя поменять на другое!
                    "db": "s1", // ID базы данных для подключения (конфигурация снизу)
                    "table": "iks_admins",
                    "server_id": "A" // ID сервера у iks-admin
                },
                "vip": { // Имя vip нельзя поменять на другое!
                    "db": "s1", // ID базы данных для подключения (конфигурация снизу
                    "table": "vip_users",
                    "server_id": "1" // ID сервера у VIP
                }
            }
        }
    },
    "databases": { // Управление базами данных
        "s1": { // ID базы данных для подключения сервера (Писать МАЛЕНЬКИМИ буквами)
            "host": "",
            "port": 3306,
            "user": "",
            "password": "",
            "dbname": ""
        }
    }
}

Сохраним изменения и загрузим на сервер. Готово.


Запуск Telegram бота

Для независимой работы бота установим пакет screen. Для этого введём в консоль SSH:

sudo apt install screen
screen -S имя_сессии (например, botik)
cd botik/cmd/bot/main.go
go run main.go

Готово.

Если возникает ошибка panic: fatal error config file: Config File "local.json" Not Found in "[C:\Users\topuser\Desktop\CSManager\cmd\configs]", обратитесь в раздел F.A.Q

Last updated