-
Notifications
You must be signed in to change notification settings - Fork 3
/
README
168 lines (100 loc) · 6.12 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# AlphaGSM
This is the Sector Alpha Game Server Manager.
This tool runs game servers using screen to manage the sessions and provides
tools to control them in a consistent way and to manage many servers at once.
This also contains code to share downloads and if possible the actual files
between multiple installs.
In short, setting up and installing a game server is as easy as
`alphagsm mymcserver create minecraft`
`alphagsm mymcserver setup`
`alphagsm mymcserver start`
## Setup
For a single user configuration AlphaGSM will run out of the box. Simply download the code, copy alphagsm.conf-template to alphagsm.conf and
run the alphagsm executable. Edit alphagsm.conf if you wish to alter the default setup.
Be sure to check out the dependancies and to look at the examples below to get your first game server running.
For changing users on multi-user setups, sudo is used so all protected permissions are controlled
using sudo.
The public script is alphagsm. This can either by run using it's full or relative
path or for ease of use can be installed in bin/ (or ~/bin/) using a symlink (It
can't be physically moved as other paths are resolved relative to it's true
location).
For help using it run alphagsm --help or see the examples below.
For help editing and contributing see the documentation in the source code or the
pydoc output, especially for the modules "server.gamemodules" and
"downloader.downloadermodules".
## Project hosting
The project is currently hosted at https://github.com/SectorAlpha/AlphaGSM.
## Community
If you have a question for the community and developers, you will
always be welcome to contact us by these various means of communication.
* Discord: https://discord.gg/8audc8Ukaq
* Twitter: https://twitter.com/sectoralpha
* Steam: http://steamcommunity.com/groups/sector-alpha
The plans are also being discussed on discord and within this github repo
## Dependencies
Main dependancies
python3
screen
crontab
python3-crontab
sudo (for multi user/shared downloads support)
SteamCMD dependencies
lib32gcc1 or libstdc++ or libstdc++.i686
e.g ubuntu, ib32stdc++6
for Ubuntu/Debian, redhat/centos and redhat/centos 64 bit respectively (pick one).
see https://developer.valvesoftware.com/wiki/SteamCMD#Linux for more details.
# Examples
Example of setting up of a Minecraft vanilla server
`alphagsm mymcserver create minecraft setup`
`alphagsm mymcserver start`
Example of setting up a CS:GO server
`alphagsm mycsgo create csgo`
`alphagsm mycsgo setup`
`alphagsm mycsgo start`
Example of updating the CS:GO server (A specific command for updating the server files). These commands are not specific to all game servers (e.g Minecraft).
`alphagsm mycsgo update`
`alphagsm mycsgo update -v -r`
Where the -v flag requests the validation of files, and -r will restart your server once the update has been done.
This will create a new minecraft server called mymcserver and set it up
asking you for which version and port to use and any other info it needs.
The second command will (assuming the setup succeded) start the server.
There are various servers available "minecraft" defaults to vanilla minecraft
which has the full name is minecraft.vanilla. There is also minecraft.custom
and minecraft.tekkit and many more to come including Terraria, Steam games
and team speak
To stop the server
`alphagsm mymcserver stop`
To backup
`alphagsm mymcserver backup`
which will use the default backup settings for the server. For details of how
configure backups and setup regular backups please see the full help by
running `alphagsm --help`.
# Legal
## Liscence
Licensed under GPL v3.0. See the LISCENCE file for details.
## Copyright
AlphaGSM Copyright (C) 2016 by Sector Alpha.
## Credits
Developed by Cosmosquark and Staircase27. See the CREDITS file for the full list of contributors.
# Developers
# Development
We're working on improving the clarity of the comments on the code. We have also included a file "technical_introduction.txt" which gives a quick start guide on how to develop for the code.
## Adding New Game Severs
So long as a game server is downloadable via steamCMD or over http, adding a new game
server is possible with the AlphaGSM code. An overview of the commands are given
in "server/gamemodules.py" of which are common for all game servers. "gamemodules/minecraft/vanilla.py"
is a doccumented example of how to download a game server over URL and additionally allow for
variations/mods of the same game (e.g tekkit). "gamemodules/teamfortress2.py" is a doccumented
example of how to download a game server via SteamCMD.
In each gameserver module, you are either adding new commands to the server object as described in "server/server.py", or overriding existing ones to be more suitable for the game server of choice. Esse
ntially you are extending "server/server.py".
The methods in particular that require the most attention in a game module are 'configure', where one defines the game server configuration (e.g port, startup map, game server properties file).
The other method is "get_start_command" which defines the executable command to startup the game server (e.g in minecraft this is "java -jar minecraft.jar").
If you need to develop a new downloader, "downloader/downloadermodules.py" contains doccumentation for developing this.
A tutorial is on the TODO list, but we hope for now that the game server modules that already exist act as a good starting point.
If you are interested in adding a new game server and would like help, raise an issue or a discussion on this github page
You can also contact cosmosquark on our discord server https://discord.gg/8audc8Ukaq via email [email protected].
## Developing AlphaGSM
Read over the infomation provided in "technical_introduction.txt" to get an overview of how AlphaGSM works and look at the files associated with the software. This is currently in development.
# Contact
Any queries? Contact us on Discord https://discord.gg/8audc8Ukaq or via email [email protected]