Improved readme.
This commit is contained in:
parent
7664186559
commit
807b47137d
32
README.md
32
README.md
|
@ -11,9 +11,41 @@ the minecraft server hardware itself.
|
||||||
The web server's responsibility is to show the latest server status information
|
The web server's responsibility is to show the latest server status information
|
||||||
and provide a way for players to request to turn on a server.
|
and provide a way for players to request to turn on a server.
|
||||||
|
|
||||||
|
The server is built using [handy-http](https://github.com/andrewlalis/handy-httpd).
|
||||||
|
|
||||||
|
In addition to serving the web app from the associated `app` directory, the
|
||||||
|
following API endpoints are defined:
|
||||||
|
* POST `/api/servers` - for the agent to send the latest server status info.
|
||||||
|
* GET `/api/servers` - for clients to fetch the latest server status.
|
||||||
|
* POST `/api/servers/:id/requests` - for clients to request a server startup.
|
||||||
|
* GET `/api/server-requests` - for the agent to get a list of requested servers.
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
This application is deployed to run under a reverse proxy, like Nginx. Call the
|
||||||
|
`deploy-web.sh` script to deploy it to Andrew's main server.
|
||||||
|
|
||||||
## Agent
|
## Agent
|
||||||
|
|
||||||
The agent will periodically inspect the status of all servers, and send that
|
The agent will periodically inspect the status of all servers, and send that
|
||||||
data to the web server. The agent will also automatically shutdown servers
|
data to the web server. The agent will also automatically shutdown servers
|
||||||
that have been inactive for more than 15 minutes.
|
that have been inactive for more than 15 minutes.
|
||||||
|
|
||||||
|
More precisely, the agent will activate periodically, and each time perform the
|
||||||
|
following activites:
|
||||||
|
* Send the latest server status information to the web server.
|
||||||
|
* Use an *idle-tracker* file to determine the amount of time a server has been
|
||||||
|
*idle* (on, with no players active).
|
||||||
|
* If the server is idle, but doesn't yet have a tracker file, one is created.
|
||||||
|
* If the server has at least one player, any existing tracker file is removed.
|
||||||
|
* If the server is idle and there's a tracker file present, and the tracker
|
||||||
|
file is at least 15 minutes old, then the server is shut down.
|
||||||
|
* Get the list of requested servers to start from the web, and start each server.
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
This agent is simply deployed to the physical server where the minecraft
|
||||||
|
servers are installed, and it is linked as a SystemD service (but not enabled),
|
||||||
|
and then a SystemD timer is activated to trigger it to run every so often.
|
||||||
|
|
||||||
|
Run `deploy-agent.sh` to deploy the agent to the server.
|
||||||
|
|
Loading…
Reference in New Issue