wiki:Integrated Webserver

Version 12 (modified by Alloc, 9 years ago) (diff)

--

Part of the Server fixes.

Meant to become an easy to use and everywhere accessible administration interface mostly for tasks like player management. (Currently in early development stage)

Current features

  • Viewing the map of the game as much as visited by players.

Activation

The following condition must be met for the webserver to become active:

  • The contents of http://svn.illy.bz/7dtd/binary-improvements/webserver/ must be put in a folder named webserver directly in the game (engine) folder. Three ways to do so:
    • (recommended) Get the files with a SVN client. This way you can easily update the files later on by just using the SVN update command. E.g. with a console client:
      cd /path/to/7dtd/game/folder  #default is /home/sdtd/engine
      svn co http://svn.illy.bz/7dtd/binary-improvements/webserver/
      
    • You can get that folder as a .tar.gz-file here and extract it to your game folder. Make sure to rename the extract folder from webserver.r{number} to just webserver
    • Download the files individually from SVN

If you did put the folder in the correct spot the webserver will listen on the port defined as ControlPanelPort (from serverconfig) + 2. I.e. if you have set ControlPanelPort to 8080 (as it is by default) the webserver will listen on http://<yourIpOrDomain>:8082/

If you want to enable basic authorization on the webserver create a file in the webserver folder called "protect". Username for login will be "admin", password is the same as for control panel.

Is it running?

To check if the webserver was started look at the output_log.txt. It should contain a line like:

1.234 Started Webserver on 8082 (authentication enabled)

If it does the server was started on the given port. If not one of the above mentioned conditions is not met.

apache and mod_proxy

If you already have a domain for your server and want a nice looking domain like 7dtd.example.com for your internal webserver instead of http://example.com:8082/ you can use apache and mod_proxy. We will use apache and ubuntu to provide an example but any other web server or os may be used in a similar way. We will use "example.com" as our domain, please replace it with your own domain or IP address.

Install apache2 (we assume you are logged in as root during this example) using either the official documentation or any other tutorial you find on the net. Basically just run

apt-get install apache2
a2enmod proxy
a2enmod proxy_http
service apache2 restart

create a new config

nano /etc/apache2/sites-availible/7dtd.example.com.conf

and paste the following into it (assuming the ControlPanelPort is 8080)

<VirtualHost *:80>
	ServerName 7dtd.example.com
	ServerAdmin webmaster@example.com

	ProxyPass / http://localhost:8082/
	ProxyPassReverse / http://localhost:8082/	

	ErrorLog ${APACHE_LOG_DIR}/7dtd.example.com.error.log
	LogLevel warn
	CustomLog ${APACHE_LOG_DIR}/7dtd.example.com.access.log combined
</VirtualHost>

now active the new config and restart apache

a2ensite 7dtd.example.com.conf
service apache2 restart

You should now be able to visit 7dtd.example.com and see the map.

Please note that this is _not_ a secure way to hide the ControlPanelPort from your users! Port scanning is always an option!

Planned stuff

  • List of players (filter by online, banned, admin/mod, permission level ... anything else?)
    • Info: name, steamid, ip, playtime, last seen, online/offline, stats, last position ...
    • Kick/Ban, change permission level
    • show on map
    • show trail
    • show keystones as list and on map (with claimed area overlay)
    • Send PM
    • ... ?
  • List of command permissions
  • Chat log
  • Console log
  • ... ?