Coder Social home page Coder Social logo

pufferpanel / pufferpanel Goto Github PK

View Code? Open in Web Editor NEW
1.2K 52.0 209.0 42.38 MB

PufferPanel is an open source game server management panel, designed for both small networks and personal use

Home Page: https://pufferpanel.com

License: Apache License 2.0

HTML 0.43% JavaScript 10.22% Dockerfile 0.19% Vue 18.23% Go 48.62% Shell 0.17% SCSS 22.13%
game-server minecraft srcds panel pufferpanel daemon packagecloud discord html game-servers golang

pufferpanel's Introduction

PufferPanel Release Downloads Build

PufferPanel logo

Website | Discord | Documentation | Translations

What is PufferPanel?

PufferPanel is a web-based Game Server Management System. PufferPanel allows you to manage multiple different game servers all from one central location. You can give other users their own servers or allow them to access to your servers.

Installation

Please follow the installation guide for PufferPanel located here.

What's different about PufferPanel?

In addition to being a free and open source project, PufferPanel provides an easy-to-use interface for everyone from individual users to large networks. We strive to create a friendly community, and we would love for you to join us.

Having issues or want to help?

If you need help with PufferPanel, or you'd like to help out, you can contact us on Discord. Check out our Documentation for guides on how to install, update, and manage PufferPanel.

Copyright Notices

Some Javascript and CSS used within the panel is licensed under a MIT, Apache 2.0, or GPL license. Please check their header files for information.

Some images used within PufferPanel are Copyright (c) their respective owners.

Water Provided By

Development tools provided by JetBrains

Repositories hosted by packagecloud

pufferpanel's People

Contributors

ajarmoszuk avatar bcat avatar chomiciak avatar chrislane avatar ciak2009 avatar cwmp avatar daneeveritt avatar dependabot[bot] avatar diablillowilly avatar disconsented avatar henrikx avatar jesseke55 avatar kitling avatar koo04 avatar lordralex avatar lycano avatar nepcore avatar nerdtron123 avatar omeryl avatar oolivero45 avatar pandry avatar puffrfish avatar serviushack avatar slayerto avatar sonarbeserk avatar sysvoid avatar thecmdradama avatar toonspin avatar topjor avatar u-siro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pufferpanel's Issues

Allow private IP's for secure inter node communication

I have some nodes behind a firewall, and some nodes which communicate via VPN tunnels or in private LANs exclusively. Right now, private range IP's aren't supported because of input validation. (changing this in de DB works).

Would it be possible to either allow it by default or make it an option to enable it?

PHP error

Warning: Invalid argument supplied for foreach() in /var/www/html/node/core/ajax/overview/data.php on line 130

When viewing server with no plugins.

xCache breaks Panel

It seems xCache breaks the panel by hiding the PDO class.

Need to look into this.

GSD Fixes

It seems to me that GSD isn't ready for use yet, but I'm not sure if that's because GSD needs to be extended for PufferPanel or if PufferPanel needs to have some scripts setup for GSD to work correctly.

At the moment GSD won't really do anything, since it seems to require static configuration of the JSON file. I was looking into the API to figure out if I can contribute code for dynamic configuration, but so far, it looks like that's not even remotely implemented for GSD.

So this leaves me wondering:

  • Is GSD to be used as-is?
  • If so, should a plugin be written for dynamic config updates?
  • If not, is it a matter of waiting for GSD to be updated?

I'm aware this is development in progress, but if I can find the direction you're going, I can code and setup pull requests to help with development.

/srv/servers/$1 not actually being created

When a new server is setup on a node (Debian 7 here), a directory for the new user isn't created.

I made a quick change on line 33 in create_user.sh, changing

mkdir /srv/servers/$1/server
to
mkdir -p /srv/servers/$1/server

However, I'm wondering if there might be an issue somewhere else.
Creating the user, setting the password, and (after changing line 33) SFTP works for the new user in a chroot.

Is it maybe a difference in the useradd program? I can image that other distros like CentOS might create the user home for you (if it doesn't exist), but on Debian, that doesn't happen.
According to man, useradd doesn't create the homedir when using -d in the process.

Now, the thing as a whole isn't working right now, I can't actually start a server, but I'm willing to put some time in this to help make it better. I am quite experienced with PHP, Java, C#, Obj-C and Bash scripting. (I would have posted this on the forums if they were online)

RCON Class

Old RCON class was removed due to license issues. Need to make a new RCON class.

Panel is currently not working front-end wise.

Allow Post-Setup Addition of IP Addresses to Nodes

Currently it appears that you are only able to add IP addresses to nodes when you first configure them via the panel, unless you want to manually edit the database. Being able to configure additional IP addresses for nodes after initial setup would be a very useful addition.

SSL-TLS PDO Connections

For ongoing security improvements PDO connections should be handled over SSL.

In addition the entire project should have support added for HTTPS connections. (Contemplating making the entire panel require SSL in order to work, no option to not use it.)

Errors within automatic installer

First issue: "Database host" detects the website/ip. It would be better defaulted to "localhost".

Second issue: Installation stalls at "Installing tables". Maybe have a live feed of what it is doing so that the user knows that the system hasn't crashed

Following error came from php error log in regards to the stalling:
[Fri Dec 20 18:26:47 2013] [error] [client 192.168.0.17] PHP Warning: fopen(../../../core/framework/master_configuration.php.dist): failed to open stream: Permission denied in /var/www/master/admin/install/do/start.php on line 77, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:26:47 2013] [error] [client 192.168.0.17] PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/master/admin/install/do/start.php on line 83, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:26:47 2013] [error] [client 192.168.0.17] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/master/admin/install/do/start.php on line 84, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:26:47 2013] [error] [client 192.168.0.17] PHP Warning: rename(../../../core/framework/master_configuration.php.dist,../../../core/framework/master_configuration.php): Permission denied in /var/www/master/admin/install/do/start.php on line 86, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:26:48 2013] [error] [client 192.168.0.17] PHP Warning: require(master_configuration.php): failed to open stream: No such file or directory in /var/www/master/core/framework/framework.database.connect.php on line 31
[Fri Dec 20 18:26:48 2013] [error] [client 192.168.0.17] PHP Fatal error: require(): Failed opening required 'master_configuration.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/master/core/framework/framework.database.connect.php on line 31
[Fri Dec 20 18:31:18 2013] [error] [client 192.168.0.17] PHP Warning: require(master_configuration.php): failed to open stream: No such file or directory in /var/www/master/core/framework/framework.database.connect.php on line 31
[Fri Dec 20 18:31:18 2013] [error] [client 192.168.0.17] PHP Fatal error: require(): Failed opening required 'master_configuration.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/master/core/framework/framework.database.connect.php on line 31
[Fri Dec 20 18:31:51 2013] [error] [client 192.168.0.17] PHP Warning: fopen(../../../core/framework/master_configuration.php.dist): failed to open stream: Permission denied in /var/www/master/admin/install/do/start.php on line 77, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:31:51 2013] [error] [client 192.168.0.17] PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/master/admin/install/do/start.php on line 83, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:31:51 2013] [error] [client 192.168.0.17] PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/master/admin/install/do/start.php on line 84, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:31:51 2013] [error] [client 192.168.0.17] PHP Warning: rename(../../../core/framework/master_configuration.php.dist,../../../core/framework/master_configuration.php): Permission denied in /var/www/master/admin/install/do/start.php on line 86, referer: http://192.168.0.30/master/admin/install/do/start.php
[Fri Dec 20 18:31:51 2013] [error] [client 192.168.0.17] PHP Warning: require(master_configuration.php): failed to open stream: No such file or directory in /var/www/master/core/framework/framework.database.connect.php on line 31
[Fri Dec 20 18:31:51 2013] [error] [client 192.168.0.17] PHP Fatal error: require(): Failed opening required 'master_configuration.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/master/core/framework/framework.database.connect.php on line 31

I also checked the database and nothing was in there.

User MySQL support.

Allow for user created MySQL Databases, similar in function to that offered by cpanel. Or at least similar to what multicraft can do, but cPanel's implementation is far superior.

Admin CP Restrictions

Addition of admin permissions to limit the actions that different levels of admins can do. Things such as adding accounts, deleting accounts, editing nodes, etc.

redierction to weird places.

I went through normal installation process, on Virtualbox (Ubuntu 10.04) and everything went fine until the AdminCP. Once there it redirects me within the configuration folder, instead of taking me out of it. A export of my acp_settings is below just incase you need it. Browser is Firefox 24.0.2. OS is Windows 7, 64 bit.

INSERT INTO acp_settings (setting_ref, setting_val) VALUES
('company_name', 'test'),
('master_url', 'http://localhost/master/'),
('cookie_website', ''),
('postmark_api_key', NULL),
('mandrill_api_key', NULL),
('mailgun_api_key', NULL),
('sendmail_email', '******@hotmail.com'),
('main_website', 'http://localhost/'),
('sendmail_method', 'php'),
('captcha_pub', '6LdSzuYSAAAAAHkmq8LlvmhM-ybTfV8PaTgyBDII'),
('captcha_priv', '6LdSzuYSAAAAAISSAYIJrFGGGJHi5a_V3hGRvIAz'),
('assets_url', ''),
('use_api', '0'),
('api_key', NULL),
('api_allowed_ips', '
'),
('api_module_controls_all', '0');

If you need any other information just ask.

JS on Console not holding pos

The JS on the console isn't holding the textarea position if you scroll up in the Textarea and new lines are added. it scrolls down a bit based on the lines added.

Chrome 32. OSX.

Cant Login after installation

I installed the panel and everything was green at the start.
After the installation i cant login. When i enter my details and press Login. Then the screen refreshes and nothing happens.
The adress bar changes from the http:///paneel/ to http:///paneel/index.php?redirect=http:///paneel/servers.php

Wiki Contributions

I'm not sure where to post this, so I'm making this an issue (but it might simply be my fault);
where do we (or I) post suggestions for the wiki?

I have written up a complete Debian Stable setup for both the master node (and it's environment) and the client node or game server node (and it's environment as well). If someone wants to use it, I'm happy to share it. Since I made it on Debian, any Debian-based distro will automatically work too (such as Ubuntu).

SSH connection to node isn't working for me...

Can anyone tell me what I'm doing wrong? I created public and private keys using root account, on master server. I put them to node sftp/ssh settings, without SSH Secret. I added public key to "authoried_keys" on node, and master server can't connect to node.
Account on node works properly, I checked.

Please help! I haven't got any idea what to do! (I did everything from wiki, maybe there is some mistake?)

Random logout bug

Still need to try and figure out why accounts are randomly logged out for no apparent reason even if the user is active at the time.

IP change callback

There should be a notification whether or not a change was successful in the Server Information page, especially when changing the IP or port a server is assigned.

Backups not Running

[04-Dec-2013 17:11:56] PHP Warning:  ssh2_exec() expects parameter 1 to be resource, boolean given in /var/www/kelp.in/public_html/node/backup.php on line 227
[04-Dec-2013 17:11:56] PHP Warning:  stream_set_blocking() expects parameter 1 to be resource, null given in /var/www/kelp.in/public_html/node/backup.php on line 235

Installation script suggestion

Not really a issue, but more of a suggestion. I've tried to set this up on a development site and there is no way login without having to manually access the database. I'm wondering if you would be able to add a installation script that would configure database connections and after that it would ask the user to create a admin user.

IP Allocation Whitespace Check

The node allocation needs to strip whitespace from inputs (apparently it isn't).

Causes a bug when adding a new server.

Error on Installation

I get this error when trying to install the panel:

[Mon Feb 17 18:09:56 2014] [error] [client 78.62.215.116] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in /var/www/html/panel/admin/install/do/settings.php:90\nStack trace:\n#0 /var/www/html/panel/admin/install/do/settings.php(90): PDOStatement->execute(Array)\n#1 {main}\n thrown in /var/www/html/panel/admin/install/do/settings.php on line 90, referer: http://mantux5.96.lt/panel/admin/install/do/settings.php

Remove Database Settings from AdminCP

The database settings page should be removed, as it currently does nothing. If it did exist, it would likely be of little use as well as pose a risk of being accidentally changed.

Improved Error Handling

Built-in error manager should be added to allow admins to view errors occurring in the panel as well as debug information.

Can't open server management or whatever it's called

I think I have made node setup correclty, but after I add a server, I just can't access it from the panel. I just press on the server name and get the page refresh, that's all.

Server folder is created but the SFTP user is not created. Probably because of user not having permissions. Because you're asking not to use ROOT user, so I don't know what permissions to give to the new user.

[Critical] Security Hole

It has come to my attention that there is a critical security hole in the software. If you are currently running this installation on a server that people are able to access please disable it.

This bug occurs if two servers on the same node have the same name. The bug would allow for users to access data for the other server via the console and power options. This bug will be patched shortly. Until then you should disable the software or ensure that all servers have a unique name.

Update Password Redirection

Should change it to allow users to change their password right then and there rather than email them a new password which they then have to change later on.

New File Manager

The current file manager is lacking in features and is made up of very messy code. A new file manager should be made.

Features:

  • Support uploading files
  • Support deleting files & directories
  • Inline file moving
  • File Editor
  • Download File
  • Cleaner/Safer URLs

Can't add new servers with latest release.

When attempting to add a server it defaults to a location of "/pufferadmin/pages/server/add.php" puffer being my folder name. I believe there is a bug in the file path of this.

Feature requests

Just had a idea. Would there be a way to create a "Group" like feature where if a user is in said group their server would receive certain features i.e. Certain amount of ram, disk space, amount of total cpu speed available to that server (Not sure if being able to limit and control cpu speed for a server would actually be possible, would be cool and neat though), etc.?

Also there could be a "Demo" feature where a button would appear on the front page (Style and what not could be completely customisable) and if would immediately create a new server and show the ip and port for the new server owner to join to. Could also add like a text box to ask for the their MC In game name to be automatically added to the OP list for the server.

You could even customise the amount of time that the server owner is given to play around on it for, then after the time is up they can either upgrade to a regular plan or have it deleted. You would also want a way to limit users from creating multiple servers by using their ip to block additional creations while they already have one running (Could use the database to control this). You could also put a timer on how long they have to wait after their server has been deleted before they can create another one, to prevent constant abuse on your system.

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.