What is this? You most likely know of web administration software, like SpaceBukkit or McMyAdmin, which are all frankly awesome. They take the pain out of managing your server, especially if you're inexperienced in that sort of thing. As said before, that software is awesome, but I believe with more innovation we can make something truly spectacular. I call this piece of software Milky, after the Milky Way galaxy. Why is this special? Milky carries some ideas that others have not brought to the table. All other web administration software either requires you to pay or forces you to use some server wrapper on your existing Bukkit installation. Milky instead takes a different approach. All you have to do is install one plugin(Hubble), login with your Minecraft account on the website(Stars), and connect the two with a key. For those who still want to run a web server, there will most likely be a very small one built with node.js. Because Milky is built in this way, it is even easier to create iOS and Android apps so you can administrate your server anywhere. Milky is going to be free from the start. In addition, you guys, the community, will contribute to this project from the start too, with suggestions, ideas, and constructive criticism. What has been made so far? I have deliberately not started this project to know if the community wants something like this, and if they do, what they want. If it turns out no one thinks this is useful, then this topic will stay inactive. If people do think this is useful, I can start working on it. So far, I have some pseudo-code written, along with the start of some mockups. Again, all of this depends on whether I get enough of a response from you guys to begin. I will have school, so the release date may be variable or nonexistent. Although, for those who still want to see a sliver of how it might look like, here's a mockup from a month ago: This will not be what the first couple versions will look like, they will be built with bootstrap early on(to avoid wasting time designing things like I did). Thanks so much for reading. Please let me know your ideas and if you think this would be useful. Also, let's have some advanced discussion about this; write thoughtfully.
I WANT THIS! Can you add, something like, an easier installation into web servers? FTP and such. If you already said that then.. meh. But most of the web panels. I really like but their installation is kind of hard of web servers, and the android app thing. Thats amazing as fudge. EDIT: I got more ideas. If you can, add an option where you can press a button then all your plugins are updated, and Can i be your tester or something? i'll try and donate when i get more money. Another idea, i dont know if you plan on doing this or not, on the dashboard or the main page, can you place a meter that shows how much ram the server used?
@ChumCHumx Awesome! I'll add all of that. Already the only thing required is to install a plugin, which then communicates to a master server. If you still want to run it on your own server, I think I'll add some software in node. Yes, ram and cpu will most likely be displayed real-time on the dashboard.
Sounds really interesting, in fact @Killie01 and I (@Mitch528) have been working on one that follows a similar thought process. Actually, if I didn't know any better, I would say you somehow read my mind . Anyway, I hope you decide to make this. In my opinion, the more innovative control panels out there, the better .
@ChumCHumx I think there will be a closed beta. Later on in development I'll have a page for people to signup.
@VoidWhisperer Well, I'm not sure. There may be a way to monetize this in the future(business license? premium version?), so the source probably won't be available until I make a decision. I'm considering open-sourcing the free version(yes, there definitely be a free version with all features described) and having any paid versions closed-source. I've thought through how to restart it from the plugin. First, when the server is told to stop, you create a new process. This process does what the plugin does: poll the host. Except, the only thing this process does is start a server(making a new process again) and stop running when it receives the start command.
@MDCreator: I mean have the plugin on the server, and then a java application apart from the server to interperet the data saying to restart/stop/start the server .
@VoidWhisperer Well, I sort of thought, "Why not just have one plugin and not worry about anything else?" So here we are. I find it far more intuitive to just have a plugin + a process when needed as opposed to a separate executable.
@VoidWhisperer Hmm... good point. I think in the plugin's data folder you can include a compiled process.class file which would be the separate process, and then do Code:java ProcessBuilder pr = new ProcessBuilder('java', 'process');pr.directory(getDataFolder());pr.start();
@ChumChum Unfortunately, this will take awhile. I'm working on it currently. I'm going to push my current mockups to a website where people can view them and give feedback.
I've uploaded my first mockup!(nothing is functional.. yet). The site is rather fragmented, but is nevertheless a good preview. You can find it at milky.tk.
hmm why it sounds like something fishy... Code: Logging into Milky is super easy. Just use your existing Minecraft or Mojang account(be sure to use your email if you use a Mojang account.) Once you're logged in, press 'new server', and copy your key into the clipboard or save it. This key will be used later on.
Why does that sound fishy? The users of this are Minecraft users, so why not use their account? I don't even store the login information; I hash it(md5 would know ), which basically means I can only compare and not retrieve. If you mean key.. for every server you create, a new key is generated to ensure security between your server and the website. That's what allows the two to connect without mayhem and madness.
@dark_hunter @kenner03 Well then, I don't really know what to do at this point then, as anything I say will probably lead to more conspiracies. Instead, I'm going to explain how I specifically prevent stealing of information. Hashing! Hashing is a one-way algorithm. Given any input, it creates a unique output that cannot be converted back(well, until someone cracks it. That doesn't happen often). I'll be using an already cracked algorithm, md5() in this example. md5('notch:notch_password') => 83de459080fb4ab198b2cc80bd87ee8d md5('jeb_:jeb_password') => 5ce6d96e79ce1522cf933b77641efb0f md5('83de459080fb4ab198b2cc80bd87ee8d') => ec46cc1930a1e34c04ae69feb6accfbb It's like one-way encryption. Now, all I do is store the hashed user/password combination(as no one can use it), and hash every time you login to check. That's it. No data is compromised, stolen. etc. Is there any other way I can prove this?
@steaks4uce I simplified for the purpose of explanation. I'm not going to tell you what hashing algorithm I will use, but I will use a salt.