No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Stefan Tomm f42b01f3c3
Merge pull request #13 from DanyelSuxdorf/patch-1
10 months ago
controllers initial commit 2 years ago
db initial commit 2 years ago
helpers initial commit 2 years ago
models Merge pull request #13 from DanyelSuxdorf/patch-1 10 months ago
public Update manager.html 10 months ago
screenshots updated readme, added screenshots 2 years ago
scripts initial commit 2 years ago
src/scripts initial commit 2 years ago
.gitignore initial commit 2 years ago
LICENSE Initial commit 2 years ago
gulpfile.js initial commit 2 years ago
package.json updated library versions 2 years ago
readme.md fixed linking of screenshots 2 years ago
server.js initial commit 2 years ago

readme.md

Ark Server Manager

This Ark Server Manager provides the following functionality via a Web Interface to manage your Ark Server:

  • Start Ark Server
  • Stop Ark Server
  • Update Ark Server
  • Status of the Ark Server (is it up and running?)
  • Backup Ark Server Save Game

The following image shows the interface. Screenshot of Web Interface

The following configurations can be done in the Web Interface. Screenshot of Configuration

In the scripts folder, shell scripts can be found, that actually do the execution. You can modify those files, if you want the server to be started with other or additional parameters, etc.

Prerequisite

  • Linux (so far only tested on Ubuntu, but all Unix-based systems could work)
  • Nodejs (see NodeJS Website or install via package manager of your OS, see NodeJS Package Manager Installation. E.g. for Ubunut/Debian: curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs
  • Git (https://git-scm.com/ or install via package manager of your OS, e.g. apt-get install git on Ubuntu)
  • Ark Server must be installed and steamcmd must be available
  • Ports 3000 and 3001 must be accessible for everyone who shall use the web interface. It might be necessary to configure an according Port forwarding in your router.

Download & Start

  • git clone https://github.com/skanatiker/ark_server_manager to download the program
  • npm install to load all required dependencies
  • node server.js to start the server
  • Go to https://<server ip or dns name>:3001. The first call will take a while, don’t worry. Currently you have to accept the certificate, because it is not valid at the moment. See next section about HTTPS. Then login with default username admin and password admin.
  • After your first login the configuration dialog will open up. Please configure all required fields and change your admin password!

HTTPS

Let’s encrypt is being used to generate an individual SSL certificate for everyone who runs the server. For now only the testing mode is used, which only provides non validated certificates. I am working on switching to production ready certificates. It will just take some more time.

As soon as it is available, you will also have to configure your ports a bit differently. Let’s encrypt requires the server to run on Port 80. Therefore you will have to configure a local port forwarding on your server. This could look like:

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000 sudo iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3001

Support and Feedback

If any questions come up or you just want to give some feedback about the server, please don’t hesitate to contact me via skanatiker.dev@gmail.com.

Intention of this server manager

This server manager has been developed with the intention of playing on a private server with some friends. The server shall not be running all the time. It’ll only be started, when someone actually wants to play. For avoiding SSH connections to the server and the execution of shell scripts manually, i created the server manager. All my friends can login to the web interface and can quickly see whether the server is up and running and if it is not running they can simply start and later on stop server.

Perhaps there are other usecases for it. Just let me know :)

What’s next

I’ve created a Trello Board, where i collect new feature ideas and everyone can vote for these features to identify the most important ones.

Technology Insight

For all the developers out there, i also want to give a short overview on what i used for the Development. Basically it is a Nodejs Express application. The REST services and websockets are secured via JWT. I used [express-jwt]() and jsonwebtoken for this. The SSL handling for HTTPS is done via letsencrypt-express. NEDB has been used for persistence, which uses the MongoDB API, but can be run embedded in the node server.

The frontend is written with AngularJS.