Elite NetworkElite SaaS · Docsv0.1
GitHubPainel

Quickstart

Do zero a um servidor FiveM reportando dados ao painel em ~10 minutos.

Este guia assume que você já tem o painel SaaS rodando (backend Nest + frontend Next + MariaDB) e o servidor FiveM com vRP, oxmysql e mtg_* instalados. Se a sua stack diferir, comece pelos adapters antes — eles isolam o acoplamento ao banco.

1. Copiar o resource

Copie a pasta elite_saas_api/ (publicada pelo seu serviço SaaS) para resources/[elite]/ ou qualquer outro caminho do FXServer.

server.cfg·bash
# Adicione antes dos resources que dependem dele
ensure elite_saas_api
O resource depende de oxmysql, vRP e opcionalmente PL_PROTECT. Verifique fxmanifest.lua para a lista atual.

2. Criar o tenant no painel

  1. Faça login no painel SaaS como Owner.
  2. Vá em Configurações → Conta & perfil.
  3. Copie o serverLinkToken e o tenantSlug gerados — você vai colá-los em config.lua.
  4. Em Configurações → Conta também defina o Lua API base URL (ex.: http://ip-do-fx:30120/elite-saas) — é onde o Nest vai fazer GET ao resource.

3. Preencher o config.lua

config.lua·lua
-- ELITE_SAAS_API · Configuração mínima
Config = Config or {}

-- Identidade do tenant
Config.TenantSlug      = "elite-city"                      -- igual ao slug no painel
Config.SaasTenantId    = "ck...id-interno-vindo-do-painel" -- opcional, só metadado
Config.ServerName      = "Elite City RP"

-- Autenticação
Config.ServerLinkToken = "cole-aqui-o-token-do-painel"     -- 64 chars

-- Roteamento HTTP
Config.BasePath        = "/elite-saas"                     -- prefixo das rotas

-- Debug (desligue em prod)
Config.DebugHttp       = false

-- Métricas de host (opcional — sidecar Node em :39998)
Config.HostMetricsUrl          = "http://127.0.0.1:39998/metrics"
Config.StartHostMetricsSidecar = true
Token = secret
O serverLinkToken identifica e autoriza o servidor — trate como senha. Se vazar, gere outro no painel.

4. Reiniciar e validar

bash
# No console do FXServer
restart elite_saas_api

# Logs esperados (com Config.DebugHttp = true):
# [elite_saas_api] events_buffer loaded (capacity=500)
# [elite_saas_api][debug] request GET rawPath=/elite-saas/health ...

Teste o endpoint manualmente:

bash
curl -i http://IP-DO-FX:30120/elite-saas/health \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "x-tenant-id: elite-city"

# Deve devolver:
# HTTP/1.1 200 OK
# {"ok":true,"tenantId":"elite-city","serverTime":1700000000,...}

5. Conferir no painel

  1. Abra Overview. O card de saúde deve mostrar Lua: OK.
  2. Conecte qualquer jogador no servidor — em ~3 s ele aparece em Online e no Live Feed.
  3. Clique no jogador — abre o perfil completo (via GET /elite-saas/player/{userId} mais o adapter de search).
Não viu o jogador?
Veja Troubleshooting e o card "Diagnóstico bridge Lua" no Overview — ele explica o exato motivo da falha (URL, token, slug ou rota).

Próximos passos

Elite Network — Command Center