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_apiO resource depende de
oxmysql, vRP e opcionalmente PL_PROTECT. Verifique fxmanifest.lua para a lista atual.2. Criar o tenant no painel
- Faça login no painel SaaS como Owner.
- Vá em Configurações → Conta & perfil.
- Copie o
serverLinkTokene otenantSluggerados — você vai colá-los emconfig.lua. - 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 = trueToken = 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
- Abra Overview. O card de saúde deve mostrar Lua: OK.
- Conecte qualquer jogador no servidor — em ~3 s ele aparece em Online e no Live Feed.
- 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
- Mexer nos adapters Lua para ajustar ao schema do seu banco (se não usa o vRP padrão).
- Configurar permissões e cargos no painel.
- Ativar o Live Feed com hooks customizados (economia, craft, gangs, etc.).