Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development Needs #1

Open
12 tasks
DaneEveritt opened this issue Nov 29, 2014 · 0 comments
Open
12 tasks

Development Needs #1

DaneEveritt opened this issue Nov 29, 2014 · 0 comments

Comments

@DaneEveritt
Copy link

Things that PufferPanel would need from GSC in order to be functional. All of this would need to be able to be handled through a HTTP API of some sort. I've added possible URL ideas, but they aren't necessarily required by any means.

Web API

  • Power ControlsGET /server/id/power/[on|off|restart]
    • This controls the current status of the server.
  • Console (WebSocket) — ws(s)://server/id/console
    • A live stream of the current servers console including all errors that are outputted. Basically as if you were looking directly at the terminal window.
  • Command SendingPOST /server/id/command
    • Sends a command to the server in raw format. Would be accessible by sending a JSON post request to the URL with the string to be sent into the server.
  • File ListingGET /server/id/files/[some/plugins/dir]
    • This would return a list of all files and folders in a directory. Obviously this would need to be locked down to only read inside the users server directory and not outside of it.
  • File EditingGET/PUT /server/id/files/some/plugins/dir/myfile.conf
    • GET — Returns the contents of a specified file.
    • PUT — Saves the "putted" content to the file given.
  • Process Stats (WebSocket) — ws(s)://server/id/procstats
    • Would return a JSON array of current CPU, Memory, and (possibly) disk usage. Data is sent every 10-20 seconds over the web socket.
  • Players Online (WebSocket) — ws(s)://server/id/players
    • Returns a JSON array of all players currently online on the server.

Additional Features

  • CPU Limting / Disk Limiting
    • The ability to set the amount of disk or CPU that a server can use would be fantastic. This might be better done through a module that can be enabled if wanted. These values would be set through the API when creating a server, and should be able to be updated later. The CPU Limiting can be done through cpulimit, and disk limiting through quota.
  • FTP (or similar)
    • A built in FTP/SFTP server that can connect to an external service to handle authentication would be needed. If some way to handle authentication internally is possible with an API to handle changing passwords if needed that can be used instead.
  • API Permissions
    • PufferPanel relies on allowing users different permissions to control their server. Obviously some users should have permission to create new servers and manage others, while other users need only to control their personal server. Additionally, subsets should be able to have their own permissions so that they can only execute tasks that they are assigned. An example of the permissions can be found here.
  • SSL Connections
    • Server should be able to accept connections over a secure socket for both HTTP and Websockets.
  • Custom JVM Flags
    • When creating a server it should be possible to define custom JVM flags to add when the server is started. Additionally, some way to default the config values when starting would be great. This would prevent users from being able to change their port or IP address that is assigned.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant