GithubHelp home page GithubHelp logo

skanatiker / ark_server_manager Goto Github PK

View Code? Open in Web Editor NEW
19.0 7.0 6.0 1.44 MB

Linux based Web Interface to manage your private Ark Server (Beta)

License: GNU General Public License v3.0

JavaScript 61.96% CSS 2.64% HTML 32.81% Shell 2.59%

ark_server_manager's Introduction

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 [email protected].

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.

ark_server_manager's People

Contributors

skanatiker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ark_server_manager's Issues

Port

Hey,

ich will zwei Webinterfaces installieren da ich 2 Server habe. Dementsprechende muss ich ja auch dem 2. WI einen anderen Port zuweisen. Wie mache ich das? Gibt es sonst noch etwas zu beachten?

LG Tim

Is this Project dead?

I wanted to use this Server Manager on my Linux Server.. last updates are from 3months ago. Is this project still maintained?

choose ssl/not

Hi,
Is it possible to add the non-letsencrypt for reverse-proxy direct access ?
Thx for all

Add install step to download gcc and gcc-c++ or npm install make will fail on CentOS 7

npm install kept failing for me on Centos 7. I had to install gcc and gcc-c++ to make the install work.

sudo yum install gcc gcc-c++

gyp ERR! build error gyp ERR! stack Error: make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/lib/build.js:276:23)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 3.10.0-327.36.3.el7.x86_64
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/thecenter/ark_server_manager/node_modules/ursa
gyp ERR! node -v v6.9.1
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok

Infos?

Hallo,

gibts irgendwie auch ne demo von den WI? Screenshots würden ja schon reichen.
Des weiteren suche ich jemanden der mir etwas bei der Installation hilft. Bekomme es nicht zum laufen. Hauptsächlich macht mir die HTTPS geschichte Probleme.

Bin Dankbar für jede Antwort.

Gruß Tim

Docker

I am new to Linux. Is there a way/guide to install this in docker? Thank you

Web interface with Ark Server tools

Hello I'm trying to combine yourbeautiful interface with the great Ark Server tools we can find here :
https://github.com/FezVrasta/ark-server-tools
(I posted my message on his github too)
So I replaced in ~/ark_server_manager/scripts/server_start.sh

#! /bin/bash
# Check if gedit is running
if pgrep "ShooterGame" > /dev/null
then
    echo "Ark Server is already running ..."
else
  echo "starting ark server: $1"
  ulimit -n 100000
  ./ShooterGameServer TheIsland?listen?SessionName=$1?MaxPlayers=$4?ServerPassword=$2?ServerAdminPassword=$3 -server -log &
  echo ServerPID:$!
fi

by

#! /bin/bash
# Check if gedit is running
if pgrep "ShooterGame" > /dev/null
then
    echo "Ark Server is already running ..."
else
  echo "starting ark server: $1"
  ulimit -n 100000
  arkmanager start &
  echo ServerPID:$!
fi

but I have a PID error who affects the "stop" action, because impossible to him to stop the good PID.. do you know why ?
I did the same things with the "update_ark.sh" and all is fine.
I m trying to do that for moderators on my server..
I someone knows to combine those two tools properly it will be great..! :)
Thank you !

What should i do?

Hi, i want to install this to my linux64 server:

https://github.com/skanatiker/ark_server_manager

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

`

npm install

npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm ERR! Linux 3.16.0-4-amd64
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.3.1
npm ERR! npm v3.10.3

npm ERR! No compatible version found: asn1js@^0.2.3
npm ERR! Valid install targets:
npm ERR! 1.2.12, 1.2.11, 1.2.10, 1.2.9, 1.2.8, 1.2.4, 1.2.3, 1.2.2, 1.0.2, 1.0.1
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! https://github.com/npm/npm/issues

npm ERR! Please include the following file with any support request:
npm ERR! /root/ark_server_manager/npm-debug.log

npm-debug.txt

node server.js

bash: /usr/sbin/node: No such file or directory

`What should I do to run the right version?
Can someone Help me?

Much thanks
Bierziege

shrinkwrap releases

To avoid issues like #3 releases should be shrinkwrapped.

This would allow easier reconstruction of errors and makes the application more resistant to version changes of dependant libraries.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.