GravitLauncher WikiGravitLauncher Wiki
  • Быстрый старт
  • /install/
  • Настройка авторизации
  • Настройка клиента
  • Привязка сервера
  • Настройка рантайма
  • Другие настройки
  • Модули
  • Установка лаунчсервера скриптом
  • Технический разбор
  • Разработчикам
Зеркало
Discord
GitHub
  • Быстрый старт
  • /install/
  • Настройка авторизации
  • Настройка клиента
  • Привязка сервера
  • Настройка рантайма
  • Другие настройки
  • Модули
  • Установка лаунчсервера скриптом
  • Технический разбор
  • Разработчикам
Зеркало
Discord
GitHub
  • Руководство

    • Быстрый старт
    • Настройка авторизации
    • Настройка клиента
    • Привязка сервера
    • Настройка рантайма
    • Другие настройки
    • Модули
    • Установка лаунчсервера скриптом
    • Технический разбор
    • Разработчикам

Установка лаунчсервера скриптом

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

Настройка хостинга

  • Первым шагом необходимо подготовить окружение:

    • Установить JDK FULL
    • Создать пользователя для ЛаунчСервера
  • Настоятельно рекомендуем:

    • Настроить проксирование через Nginx с поддоменом
    • Установить сертификат SSL на поддомен

Установка JDK 21

Для запуска ЛаунчСервера необходима Java 21. Она так же подходит для запуска майнкрафт сервера

DEBIAN / UBUNTU

Копировать и вставлять целиком

Установка пакетов и Temurin JDK 21 (Часть 1)

sudo apt-get update ;
sudo apt-get install gnupg2 wget apt-transport-https unzip -y ;
sudo mkdir -p /etc/apt/keyrings ;
sudo wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/keyrings/adoptium.asc ;
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list ;
sudo apt-get update ;
sudo apt-get install temurin-21-jdk -y

Для X86_64

wget https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-jmods.zip ;
unzip openjfx-22.0.2_linux-x64_bin-jmods.zip ;
sudo cp javafx-jmods-22.0.2/* /usr/lib/jvm/temurin-21-jdk-amd64/jmods ;
rm -r javafx-jmods-22.0.2 ;
rm -rf openjfx-22.0.2_linux-x64_bin-jmods.zip

Для ARM64

wget https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-aarch64_bin-jmods.zip ;
unzip openjfx-22.0.2_linux-aarch64_bin-jmods.zip ;
sudo cp javafx-jmods-22.0.2/* /usr/lib/jvm/temurin-21-jdk-arm64/jmods ;
rm -r javafx-jmods-22.0.2 ;
rm -rf openjfx-22.0.2_linux-aarch64_bin-jmods.zip

Смена Java по умолчанию

sudo update-alternatives --config java
sudo update-alternatives --config javac

Примечание:

При наличии следующей ошибки:

java.lang.UnsatisfiedLinkError: /usr/lib/jvm/temurin-21-jdk-amd64/lib/libfontmanager.so: libfreetype.so: cannot open shared object file: No such file or directory
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)

Установите необходимую библиотеку:

sudo apt-get install libfreetype-dev
  • Обычно такая ошибка встречается на Ubuntu 22.04
CENTOS

Копировать и вставлять целиком

Добавление репозитория Adoptium и установка Temurin JDK 21 (Часть 1)

cat <<EOF > /etc/yum.repos.d/adoptium.repo
[Adoptium]
name=Adoptium
baseurl=https://packages.adoptium.net/artifactory/rpm/rhel/\$releasever/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.adoptium.net/artifactory/api/gpg/key/public
EOF
dnf install temurin-21-jdk

Для X86_64

wget https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-jmods.zip ;
unzip openjfx-22.0.2_linux-x64_bin-jmods.zip ;
sudo cp javafx-jmods-22.0.2/* /usr/lib/jvm/temurin-21-jdk/jmods ;
rm -r javafx-jmods-22.0.2 ;
rm -rf openjfx-22.0.2_linux-x64_bin-jmods.zip

Для ARM64

wget https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-aarch64_bin-jmods.zip ;
unzip openjfx-22.0.2_linux-aarch64_bin-jmods.zip ;
sudo cp javafx-jmods-22.0.2/* /usr/lib/jvm/temurin-21-jdk/jmods ;
rm -r javafx-jmods-22.0.2 ;
rm -rf openjfx-22.0.2_linux-aarch64_bin-jmods.zip

Смена Java по умолчанию

sudo alternatives --config java
sudo alternatives --config javac
WINDOWS

Откройте PowerShell (От имени Администратора)

  • Установите пакет Adoptium JDK 21 с помощью winget
winget install EclipseAdoptium.Temurin.21.JDK
  • Откройте сайт OpenJFX и скачайте последнюю версию SDK и jmods для Java 21
  • Распакуйте файлы с расширением jmod из архива с jmods в C:\Program Files\Eclipse Adoptium\ВАША_JDK\jmods
  • Распакуйте файлы из архива SDK (внутри будет папка с названием версии, распакуйте её содержимое а не саму папку) в C:\Program Files\Eclipse Adoptium\ВАША_JDK\
OTHER

Установка для других систем

Посетите сайт JDK Adoptium и OpenJFX

Создание пользователя launcher

Создание пользователя launcher: (Актуально для Ubuntu, Debian, CentOS, ArchLinux)

sudo useradd -m -s /bin/bash launcher
Инструкции по работе с su:

Выполнение команд от имени пользователя launcher и переход в домашнюю папку:

su - launcher

Выполнение команд от имени пользователя launcher без смены каталога:

su launcher

Выход обратно в root:

exit

Установка LaunchServer

Перейдите в пользователя launcher:

su - launcher

Выполнить установку LaunchServer'a скриптом:

wget -O - https://mirror.gravitlauncher.com/scripts/setup-master.sh | bash <(cat) </dev/tty

После завершения установки запустите ЛаунчСервер для начальной настройки:

./start.sh
  • Укажите ваш ДОМЕН или IP, на котором будет работать ЛаунчСервер
  • Укажите название вашего проекта, которое будет отображаться в Лаунчере и в папке AppData
  • После первого запуска закройте ЛаунчСервер командой stop
stop

Использование X11 Forwarding

Для установки некоторых Forge версий клиентов вам может понадобиться использование X11 Forwarding:

  • Установите пакет xauth на ваш сервер
  • Добавьте или измените параметр X11Forwarding на yes в sshd_config на вашем сервере
  • Перезапустите sshd
  • Следуйте инструкции для вашего SSH клиента:
[ WSL 2 ]

Использование WSL 2 (рекомендуется)

  • Установите WSL 2 по этому гайду
  • Находясь в WSL, выполните команду ssh -XYC yourusername@SERVER_IP
  • Находясь в этой SSH сессии, запустите лаунчсервер без использования screen, docker, tmux и других средств
  • Теперь вы можете установить Forge клиент командой installclient (см. выше)
[ Linux ]

Использование Linux (рекомендуется)

  • Выполните команду ssh -XYC yourusername@SERVER_IP
  • Находясь в этой SSH сессии, запустите лаунчсервер без использования screen, docker, tmux и других средств
  • Теперь вы можете установить Forge клиент командой installclient (см. выше)
[ Putty ]

Использование Putty

  • Установите X Server на Windows: vcxsrv и запустите его с настройками по умолчанию
  • Включите X11 Forwarding в настройках соединения Putty и подключитесь к серверу
  • Находясь в этой SSH сессии, запустите лаунчсервер без использования screen, docker, tmux и других средств
  • Теперь вы можете установить Forge клиент командой installclient (см. выше)
[ Windows SSH Client ]

Использование стандартного клиента SSH в Windows

  • Установите X Server на Windows: vcxsrv и запустите его с настройками по умолчанию
  • Если у вас не работает команда ssh в терминале Windows, установите компонент
  • Выполните команду для CMD set DISPLAY=localhost:0 или для PowerShell $env:DISPLAY = 'localhost:0'
  • Не закрывая терминал, выполните команду ssh -XYC yourusername@SERVER_IP
  • Находясь в этой SSH сессии, запустите лаунчсервер без использования screen, docker, tmux и других средств
  • Теперь вы можете установить Forge клиент командой installclient (см. выше)

Настройка Nginx

Для достижения оптимальной производительности отдачи файлов нужно настроить Nginx

  • Посетите сайт [NGINX] и установите Nginx в соответствии с вашей системой

  • Создайте в пространстве имён своего домена A запись, вида launcher.ИМЯ_ВАШЕГО_ДОМЕНА.ru, с вашим IP машины с ЛаунчСервером

Путь к конфигурации Nginx:

Предпочтительно создавать отдельный файл конфигурации для каждого домена отдельно: (Воспользуйтесь SFTP клиентом)

/etc/nginx/conf.d/launcher.ВАШ_ДОМЕН.conf

Если у вас на машине будет только одна настройка, можете отредактировать конфигурацию по умолчанию:

nano /etc/nginx/conf.d/default.conf
[ На DNS имени ]
upstream gravitlauncher {
    server 127.0.0.1:9274;
}
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
    listen 80;
    server_name launcher.ВАШ_ДОМЕН;
    charset utf-8;
    #access_log  /var/log/nginx/launcher.ВАШ_ДОМЕН.access.log;
    #error_log  /var/log/nginx/launcher.ВАШ_ДОМЕН.error.log notice;
    
    root /путь/до/updates; # Example: /home/launcher/updates
    
    location / {
    }
    location /api {
        proxy_pass http://gravitlauncher;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /webapi/ {
        proxy_pass http://127.0.0.1:9274/webapi/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location ~ /\.(?!well-known).* {
        deny all;
    }
}
[ На IP ]
upstream gravitlauncher {
    server 127.0.0.1:9274;
}
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
    listen 80;

    charset utf-8;
    #access_log  /var/log/nginx/launcher.access.log;
    #error_log  /var/log/nginx/launcher.error.log notice;
    
    root /путь/до/updates; # Example: /home/launcher/updates
    
    location / {
    }
    location /api {
        proxy_pass http://gravitlauncher;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /webapi/ {
        proxy_pass http://127.0.0.1:9274/webapi/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location ~ /\.(?!well-known).* {
        deny all;
    }
}
[ Под Docker ]

Для главного nginx, не в контейнере

  • Получить IPAddress контейнера. Где <container id> это UUID контейнера
docker inspect <container id> | grep "IPAddress"
  • Заменить 127.0.0.1 адрес на локальный IP от вашего интерфейса для Docker, полученный выше
upstream gravitlauncher {
    server 127.0.0.1:9274;
}
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}
server {
    listen 80;
    server_name ВАШ_ПОДДОМЕН_ДЛЯ_ЛАУНЧЕРА;
    charset utf-8;
    #access_log  /var/log/nginx/launcher.ВАШ_ДОМЕН.access.log;
    #error_log  /var/log/nginx/launcher.ВАШ_ДОМЕН.error.log notice;
    
    root /путь/до/updates;
    
    location / {
    }
    location /api {
        proxy_pass http://gravitlauncher;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location /webapi/ {
        proxy_pass http://127.0.0.1:9274/webapi/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Проверить конфигурацию и перезагрузить Nginx:

nginx -t

Должны увидеть:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Включить Nginx как службу Systemd:

systemctl enable nginx

Перезагрузка сервиса:

Systemd
systemctl restart nginx
init.d
service nginx restart

Примечание

  • Без доменного имени перенос Лаунчера на другую машину привёдёт к отказу самообновления.
  • Так же SSL сертификат невозможно выдать на IP. В последствии соединение будет незащищённым и может быть скомпрометировано.
Заметки по правам: Важно

Если у nginx нет прав для чтения директорий, выдайте:

chmod +x /home/launcher &&
find /home/launcher/updates -type d -exec chmod 755 {} \; &&
find /home/launcher/updates -type f -exec chmod 644 {} \;

Изменить группу и пользователя на всё содержимое домашней директории launcher:

chown -R launcher:launcher /home/launcher
Измените эту страницу на GitHub
Последнее обновление: 28.06.2025, 16:46
Prev
Модули
Next
Технический разбор