Instalar o servidor no Linux
O pacote oficial para Linux contém o servidor MTAX completo e pronto para executar. Você não precisa compilar o projeto nem instalar o MariaDB Connector/C separadamente.
Requisitos
Seção intitulada “Requisitos”| Requisito | Suporte atual |
|---|---|
| Sistema recomendado | Ubuntu Server 24.04 LTS |
| Arquitetura | x86_64 / amd64 |
| glibc | 2.38 ou mais recente |
| libstdc++ | suporte a GLIBCXX_3.4.32 ou mais recente |
| C++ ABI | suporte a CXXABI_1.3.13 ou mais recente |
| Rede de saída | IPv4, DNS e HTTPS (443/TCP) para api.mtaxsa.com e para o host devolvido em downloadUrl (atualmente version.cdn.mtaxsa.com) |
| Licença | chave de servidor MTAX com 64 caracteres hexadecimais |
Outras distribuições podem funcionar se fornecerem essas versões da glibc e da libstdc++, mas o pacote oficial é construído e validado no Ubuntu 24.04. Não tente substituir a glibc do sistema manualmente para executar o servidor em uma distribuição antiga.
Confira o host antes de continuar:
uname -mgetconf GNU_LIBC_VERSIONO primeiro comando deve mostrar x86_64. No Ubuntu 24.04, o segundo normalmente mostra glibc 2.39.
Baixar o pacote
Seção intitulada “Baixar o pacote”O botão consulta api.mtaxsa.com no momento do clique. Primeiro ele encontra a versão mais recente compatível, depois lê o manifesto para obter a URL, o tamanho e o BLAKE3 do pacote. As rotas de leitura e download são públicas e não exigem login.
A URL é consultada somente quando você clicar. O canal beta nunca é selecionado automaticamente.
Uma URL de download pode apontar para o CDN ou ser temporária. Por isso ela não fica gravada nesta página. Se a consulta de Release informar que não há pacote estável, aguarde uma publicação ou selecione Beta conscientemente.
Download pelo terminal
Seção intitulada “Download pelo terminal”Instale as ferramentas e bibliotecas de runtime:
sudo apt updatesudo apt install --yes \ ca-certificates \ curl \ jq \ tar \ b3sum \ libc6 \ libstdc++6 \ libgcc-s1Em instalações mínimas do Ubuntu, o pacote b3sum pode exigir que o repositório Universe esteja habilitado.
O script abaixo usa Release por padrão e termina com uma mensagem clara se ainda não houver uma versão estável. Para aceitar um build de testes, troque apenas MTAX_CHANNEL='release' por MTAX_CHANNEL='beta'.
API_URL='https://api.mtaxsa.com'MTAX_CHANNEL='release'
LATEST_JSON="$( curl --fail --silent --show-error --retry 3 \ "${API_URL}/api/versions/latest?component=server&channel=${MTAX_CHANNEL}&platform=linux&arch=x86_64")"
MTAX_BUILD="$( printf '%s' "$LATEST_JSON" | jq -er '.build | select(type == "string" and length > 0)')" || { echo "Nenhum MTAX Server Linux x86_64 publicado no canal ${MTAX_CHANNEL}." exit 1}
MANIFEST_JSON="$( curl --fail --silent --show-error --retry 3 \ "${API_URL}/api/versions/server/${MTAX_CHANNEL}/${MTAX_BUILD}?platform=linux&arch=x86_64")"
ARTIFACT_JSON="$( printf '%s' "$MANIFEST_JSON" | jq -cer 'first( .files[] | select(.platform == "linux" and .arch == "x86_64" and .uploaded == true) )')" || { echo 'O manifesto não contém um pacote Linux x86_64 disponível.' exit 1}
ARTIFACT_PATH="$(printf '%s' "$ARTIFACT_JSON" | jq -r '.path')"DOWNLOAD_URL="$(printf '%s' "$ARTIFACT_JSON" | jq -er '.downloadUrl | select(length > 0)')" || { echo 'O manifesto não forneceu uma URL de download.' exit 1}EXPECTED_BLAKE3="$(printf '%s' "$ARTIFACT_JSON" | jq -r '.hash // empty')"EXPECTED_BLAKE3="${EXPECTED_BLAKE3#blake3:}"ARCHIVE_NAME="$(basename "$ARTIFACT_PATH")"
case "$DOWNLOAD_URL" in /*) DOWNLOAD_URL="${API_URL}${DOWNLOAD_URL}" ;;esac
curl --fail --location --show-error --retry 3 \ --proto '=https' \ --proto-redir '=https' \ "$DOWNLOAD_URL" \ --output "$ARCHIVE_NAME"
if [ "${#EXPECTED_BLAKE3}" -ne 64 ]; then echo 'O pacote não possui um BLAKE3 válido no manifesto; instalação cancelada.' exit 1fi
printf '%s %s\n' "$EXPECTED_BLAKE3" "$ARCHIVE_NAME" | b3sum --check -O resultado final precisa terminar em OK. O campo hash da API é BLAKE3, não SHA-256.
Instalar
Seção intitulada “Instalar”-
Crie um usuário de serviço sem login interativo.
Terminal window sudo groupadd --system mtaxsudo useradd \--system \--gid mtax \--home-dir /opt/mtax-server \--shell /usr/sbin/nologin \mtaxSe o usuário ou grupo já existir, não recrie-o.
-
Extraia o arquivo verificado.
Execute este passo no mesmo terminal usado no download, ou defina
ARCHIVE_NAMEcom o nome do arquivo que você baixou.Terminal window ARCHIVE_PATH="$(realpath "$ARCHIVE_NAME")"sudo install -d \--owner mtax \--group mtax \--mode 0750 \/opt/mtax-serversudo tar \--extract \--gzip \--no-same-owner \--file "$ARCHIVE_PATH" \--directory /opt/mtax-serversudo chown -R mtax:mtax /opt/mtax-serversudo chmod 0750 /opt/mtax-server/mtax-server -
Confira o layout e as bibliotecas.
- mtax-server executável Linux x86_64
- server.cfg configuração principal
Directorylib/
- libmariadb.so link para a biblioteca empacotada
- libmariadb.so.3
Directoryresources/ seus resources Lua
- …
Directorycache/ identidade e pacotes gerados
- …
Terminal window cd /opt/mtax-serverldd ./mtax-serverNenhuma linha do
lddpode conternot found. Alibmariadb.so.3deve ser encontrada dentro de/opt/mtax-server/lib/. -
Configure a licença e o servidor.
Crie sua chave no painel MTAX e abra o arquivo sem colocar o segredo no histórico do shell:
Terminal window sudoedit /opt/mtax-server/server.cfgNo mínimo, revise estas linhas:
endpoint_add_udp "0.0.0.0:22003"endpoint_add_tcp "0.0.0.0:22005"endpoint_add_voice "0.0.0.0:22007"sets locale "pt-BR"sets sv_projectName "Meu servidor"set sv_licenseKey "SUA_CHAVE_DE_64_CARACTERES_HEXADECIMAIS"localeé a região anunciada pelo servidor e usada na listagem, não o idioma da interface. A licença deve usarset; nunca publique a chave comsetsousetr. Veja todas as opções emserver.cfg. -
Ajuste o conteúdo de exemplo, se necessário.
Alguns pacotes podem trazer
resources/vazio enquanto oserver.cfgde exemplo ainda contém:load_server_icon logo.jpgensure [mtax]ensure [exemplos]Adicione
logo.jpge os grupos de resources correspondentes, ou comente essas linhas. Sem isso, o servidor pode iniciar, mas registrará avisos de ícone ausente eunknown resource. -
Faça uma inicialização manual.
Terminal window sudo -u mtax sh -c \'cd /opt/mtax-server && exec ./mtax-server --no-console --config server.cfg'O servidor precisa validar a licença em
api.mtaxsa.comantes de abrir para jogadores. UseCtrl+Cdepois de confirmar que a licença foi registrada e que as portas subiram.
Executar com systemd
Seção intitulada “Executar com systemd”Crie /etc/systemd/system/mtax-server.service com:
[Unit]Description=MTAX ServerWants=network-online.targetAfter=network-online.target
[Service]Type=simpleUser=mtaxGroup=mtaxWorkingDirectory=/opt/mtax-serverExecStart=/opt/mtax-server/mtax-server --no-console --config /opt/mtax-server/server.cfgRestart=on-failureRestartSec=5KillSignal=SIGTERMTimeoutStopSec=30LimitNOFILE=65535UMask=0027
[Install]WantedBy=multi-user.targetAtive e acompanhe os logs:
sudo systemctl daemon-reloadsudo systemctl enable --now mtax-serversudo systemctl status --no-pager mtax-serversudo journalctl --unit mtax-server --followO WorkingDirectory não deve ser removido: server.cfg, resources/, cache/, databases/ e logs/ usam caminhos relativos. --no-console desliga a entrada interativa, adequada para um serviço; a saída continua disponível no journal.
Liberar as portas
Seção intitulada “Liberar as portas”Por padrão, o MTAX usa:
| Porta | Protocolo | Uso |
|---|---|---|
22003 | UDP | jogo e sincronização |
22005 | TCP | informações e download de assets |
22007 | TCP e UDP | controle e áudio do voice chat |
Se você já usa UFW, libere as portas necessárias. Garanta que o SSH já está permitido antes de habilitar ou alterar um firewall remoto.
sudo ufw allow 22003/udp comment 'MTAX game'sudo ufw allow 22005/tcp comment 'MTAX assets'sudo ufw allow 22007/tcp comment 'MTAX voice'sudo ufw allow 22007/udp comment 'MTAX voice'Também abra as mesmas portas no firewall da hospedagem e faça o encaminhamento no roteador, quando houver NAT. Se não for usar voice, remova endpoint_add_voice ou defina set voice_enabled false e não abra 22007.
Verificar a instalação
Seção intitulada “Verificar a instalação”sudo systemctl is-active mtax-serversudo ss -lntup | grep -E ':22003|:22005|:22007'curl --fail --silent http://127.0.0.1:22005/info.json | jq .O servidor também precisa manter acesso HTTPS à API para renovar sua licença. Se essa comunicação ficar indisponível até o vencimento do lease, o processo encerra de forma controlada.
Atualizar sem perder dados
Seção intitulada “Atualizar sem perder dados”No Linux, o MTAX verifica a versão ao iniciar, mas não substitui o próprio executável. Quando existir um build mais recente, o log mostra o pacote e a página de detalhes. Baixe e confira o novo BLAKE3 pelo mesmo processo desta página.
Antes de atualizar, preserve:
server.cfgresources/cache/databases/logs/Extraia a nova versão em uma pasta temporária e troque somente o executável e lib/:
MTAX_STAGING="$(mktemp -d)"sudo tar --extract --gzip --no-same-owner \ --file "$(realpath "$ARCHIVE_NAME")" \ --directory "$MTAX_STAGING"
ldd "$MTAX_STAGING/mtax-server"
sudo systemctl stop mtax-serversudo install --owner mtax --group mtax --mode 0750 \ "$MTAX_STAGING/mtax-server" \ /opt/mtax-server/mtax-serversudo cp --archive "$MTAX_STAGING/lib/." /opt/mtax-server/lib/sudo chown -R mtax:mtax /opt/mtax-server/libsudo systemctl start mtax-serversudo journalctl --unit mtax-server --lines 100 --no-pagerNão extraia uma atualização diretamente sobre a instalação: o arquivo compactado também contém um server.cfg padrão e poderia sobrescrever sua configuração.
Problemas comuns
Seção intitulada “Problemas comuns”| Mensagem ou sintoma | O que conferir |
|---|---|
GLIBC_... not found | A distribuição é antiga para esse build; use Ubuntu 24.04 ou outra base compatível. |
libmariadb.so.3 => not found | O diretório lib/ não foi extraído ao lado do executável. |
sv_licenseKey is empty | Preencha a chave no server.cfg com set sv_licenseKey. |
could not validate the license key | Chave, DNS, relógio do sistema, certificados CA, IPv4 e saída 443/TCP. |
unknown resource -> [mtax] | Instale o grupo citado ou comente o ensure de exemplo. |
| A consulta Release não encontra build | Ainda não há pacote estável compatível; aguarde ou opte conscientemente pelo Beta. |
| Jogadores não conectam | Firewall/NAT de 22003/UDP; para assets, confira também 22005/TCP. |