JPanel - Minecraft Webpanel
JPanel - A plugin based web panel for Bukkit
What is this?
JPanel is a plugin based control panel for your minecraft server. It is viewable within a web browser, and does not require running any external web servers, or knowledge of PHP or databases. This plugin is in beta, and has a number of key features, including:
- A live view of the server console
- Live view of the server ram usage, cpu usage and ticks per second
- User permissions
- Modify player groups (requires vault)
- Easily kick or ban online players (not currently implemented in new player manager)
- Manage server files
- Passwords hashed with a salt
Before installing
THIS PLUGIN REQUIRES JAVA 8. ALSO BE AWARE IT'S STILL IN BUGS, AND THERE MIGHT BE BUGS OR INCOMPLETE FEATURES.
Installing
Since this plugin doesn't require anything else other than the Bukkit server, installation is extremely easy
- Put the plugin jar file in your plugins folder
- Restart the server
- Ensure that port 4567 are port forwarded (this can be tested with this tool here)
- In the server console, use /addlogin <username> <password> to add a user to the panel
- OPTIONAL: Stop the server and edit the config file to allow you access to the JPanel features
For developers
As of JPanel Beta 5, you can now add pages to the panel. For more information, please see the guide.
Commands
- /addlogin <username> <passsword> - allows you to add a user to a panel
- /passwd <username> <oldpassword> <newpassword> - change the password of a user
All commands can only be executed through the console, either via JPanel or a standard minecraft console.
HTTPS support
In the latest beta (Beta 6) I've added standalone https support! This requires some configuration.
-
First, you'll need to put a keystore file in the JPanel folder. You can either attempt to generate one using these instructions or download a premade keystore file from here. The pre-made keystore has an unsigned certificate that'll get you going with security warnings in most browsers, so isn't recommended unless you can't use an actual certificate.
-
Stop the server, and enter the name of the keystore file (with file extension) under keystore-name and the password for the keystore file under keystore-password in the JPanel config.yml. If you're using the premade keystore, use the password 'password' (ultra secure).
-
Restart the server, then access the panel normally except with https.
HTTPS should now be working!
Panel Permissions
- canEditFiles - allows a JPanel user to edit files
- canChangeGroups - allows a JPanel user to change the groups of a user
- canSendCommands - allows a JPanel user to send commands through the console
These are modified through the config file. Once modified, restart the server.
Non browser Clients
I'm developing a series of apps that you can use to access the panel. Currently, there is an app for windows 10.
- Windows 10 App - https://www.microsoft.com/en-us/store/apps/jpanel/9nblggh1rnm5 (source will be released later)
- Android app - coming soon!
- iPhone app - due to a lack of $99 a year, a Mac computer and a device to test on, this is unlikely to be coming any time soon
Source Code
All source code is avaliable on github, check it out!
@VoltaJack
When you have installed the plugin, go to 127.0.0.1:4567 or when you on a server to SERVER-IP:4567
There you find the Web-Panel and the console. There's no need to create a webpage.
Don't forget to create a login for the administrative user. You can make this ingame or over the condole with /addlogin <username> <password>. Without this step you can't login into the panel!
Where i find the Web-Console? I need to create a WebPage?
Any updates
Hey can u make it so you can remove / add files plugins etc in the control panel? coz i have my server on my server pc but jpanel can only edit files is there way you can make it so i can remove and add files or plugins?
@TheCrystalStar
Are you referencing the internal or the external IP of your server? If it's the external IP, you'll have to port forward ports 4567 and 9000. If it's the internal IP (the IP your server has on your network) make sure you're using the correct IP.
i cant connect to jpanel through another pc using browser or windows 10 app on the same network help PLZZ
I already fixed the group error. The problem was in the groupmanager because it had a problem with the group i was trying to use. And i will try to change the restart in the spigot.yml. Many thanks!
@COTDspeed
When i try to add a user to a group it tells me an error occured.
Is there an error in the console when this happens?
And when i try to restart the server it tells me no start.sh found. Can i change the start.sh to start.bat?
JPanel doesn't add a restart command - that's a spigot feature, you'll have to configure it in your spigot.yml
When i try to add a user to a group it tells me an error occured. And when i try to restart the server it tells me no start.sh found. Can i change the start.sh to start.bat? and how do i fix the add group error?
Good to know, i was worried i made a mistake setting up the server . Thanks for the quick response!
@COTDspeed
That's a windows issue unfortunately, nothing I can do to fix that
Hi there, My CPU usage is showing me -25%. I get no errors or anything while starting the server. Any idea how to fix this? I use this cpu: Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
@kemmeo
Found a workaround!
Running /addlogin (user) (pass) on local testbed and then transfering config output to the live server works fine.
Seems there is something in my setup preventing me from adding a user via the console command.
@rymate1234
My apologies.
Updated to Java 8 and the plugin loads just fine. (Honestly thought I was running Java 8 )
However I still get an error when I try logging into the control panel.
@kemmeo
You need Java 8
Received the following error, running Beta 5 of the plugin on PaperSpigot 1.8.8
<<code [02:03:06] [Server thread/ERROR]: Could not load 'plugins/JPanel.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: net/rymate/jpanel/PanelPlugin : Unsupported major.minor version 52.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) [paper.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) [paper.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [paper.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) [paper.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:198) [paper.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [paper.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Thread.java:745) [?:1.7.0_91] Caused by: java.lang.UnsupportedClassVersionError: net/rymate/jpanel/PanelPlugin : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) [?:1.7.0_91] at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [?:1.7.0_91] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [?:1.7.0_91] at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) [?:1.7.0_91] at java.net.URLClassLoader.access$100(URLClassLoader.java:71) [?:1.7.0_91] at java.net.URLClassLoader$1.run(URLClassLoader.java:361) [?:1.7.0_91] at java.net.URLClassLoader$1.run(URLClassLoader.java:355) [?:1.7.0_91] at java.security.AccessController.doPrivileged(Native Method) [?:1.7.0_91] at java.net.URLClassLoader.findClass(URLClassLoader.java:354) [?:1.7.0_91] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) [paper.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) [paper.jar:git-Spigot-db6de12-18fbb24] at java.lang.ClassLoader.loadClass(ClassLoader.java:425) [?:1.7.0_91] at java.lang.ClassLoader.loadClass(ClassLoader.java:358) [?:1.7.0_91] at java.lang.Class.forName0(Native Method) [?:1.7.0_91] at java.lang.Class.forName(Class.java:278) [?:1.7.0_91] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) [paper.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) [paper.jar:git-Spigot-db6de12-18fbb24] ... 6 more
<</code>>
[23:05:23] [Server thread/INFO]: Failed to create user![m [23:05:23] [Server thread/WARN]: java.lang.ArrayIndexOutOfBoundsException: 1 [23:05:23] [Server thread/WARN]: at net.rymate.jpanel.PanelPlugin.onCommand(PanelPlugin.java:158) [23:05:23] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [23:05:23] [Server thread/WARN]: at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [23:05:23] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [23:05:23] [Server thread/WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [23:05:23] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [23:05:23] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [23:05:23] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [23:05:23] [Server thread/WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [23:05:23] [Server thread/WARN]: at java.lang.Thread.run(Unknown Source)
If we could restart and add files this would be awesome.
Excellent plugin, a life saver, instead of having to use the console constantly. Windows 10 app works great also!!
@rymate1234
Thanks =D