[RELEASE] FiveM Web API (start / stop / reboot your server, made easy)

Nice m9 gud werk… k

i will post a tutorial later on today for you

3 Likes

Sorry for bumping old topic. Can you @mrdigital01 post the linux conversion, thanks :slight_smile: Or if someoen can point me towards a new/wider version of this

Sorry for not seeing this i will upload in a few minutes

for Linux users use this for your app.js

note you MUST create a service for your FiveM Server

where you see fivemserverservicenamehere update it with whatever you called your FiveM Server Service

var express = require('express')
var app = express()
var url = require('url');
var exec = require("child_process").exec

var server_dir = "C:\\path\\to\\server\\directory\\";
var server_file = "server.bat";

var key = "123456";
var port = 82;

app.get("/", function(request, response){ 
    response.send("FiveM Communication API - Made by Koen1997#2008<hr><a href='/restart'>Restart</a><br><a href='/stop'>Stop</a><br><a href='/start'>Start</a>");
});

app.get("/restart", function(request, response){ 
	var url_parts = url.parse(request.url, true);
	var query = url_parts.query;
    if (query['key'] === key) {
		exec("service fivemserverservicenamehere restart", (error, stdout, stderr) => { 
		 console.log(error);
		})
		response.send("done");
	} else {
		response.statusCode = 401;
		response.send("401 Unauthorized");
	}
});

app.get("/start", function(request, response){ 
	var url_parts = url.parse(request.url, true);
	var query = url_parts.query;
    if (query['key'] === key) {
	exec("service fivemserverservicenamehere start", (error, stdout, stderr) => { 
		console.log(error);
	})
	response.send("done");
	} else {
		response.statusCode = 401;
		response.send("401 Unauthorized");
	}
});

app.get("/stop", function(request, response){ 
	var url_parts = url.parse(request.url, true);
	var query = url_parts.query;
    if (query['key'] === key) {
		exec("service fivemserverservicenamehere stop", (error, stdout, stderr) => { 	
			console.log(error);
		})
		response.send("done");
	} else {
		response.statusCode = 401;
		response.send("401 Unauthorized");
	}
});

app.listen(port);
console.log("Running on port "+ port);

1 Like

Hey, this API does not work correctly for me, the error i get does not make sense and idk how to fix.

Error:

{ Error: Command failed: cd C:UsersAdministratorDesktopTestServer && start server.bat
Das System kann den angegebenen Pfad nicht finden. >> Translated: “The System can’t find the specified Path”

at ChildProcess.exithandler (child_process.js:294:12)
at ChildProcess.emit (events.js:189:13)
at maybeClose (internal/child_process.js:970:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

killed: false,
code: 1,
signal: null,
cmd:
‘cd C:UsersAdministratorDesktopTestServer && start server.bat’ }

Becauae your missing your 's it should be C:\Users\Administrator\Desktop\TestServer && start server.bat

1 Like

I don’t think so:

Add extra \ for each folder

Did it but now I am always get a Syntax error, this is my config:

Syntax error
C:\Users\Administrator\Desktop\TestServer>cd C:\Users\Administrator\Desktop\TestServer\server-data &&

For your password use a hashed version, I makes it secure

Sorry for a late bump, but to fix the syntax error that people are having. You need to set the server_dir to have 3 slashes.

For Example:
var server_dir = "C:\\\Users\\\Administrator\\\Desktop\\\Drift";

1 Like

I have this working, but when I close/restart is doesn’t close the current cmd.exe window (current running server) but instead opens a new one. How can I get it to close the old window?

@kloentje2

Do you have a version for Linux Debian 10? Would be nice if could make one.