
|
View Full Version : An open-source control panel?
cyansmoker 01-26-2002, 06:48 AM OK gang,
here's the thing: I'm sure we're not the only ones here who wrote their own Control Panel, but we actually use ours, it's nothing fancy so far but it pretty much covers our clients' needs.
Now, I'm basically the only one working on it, and I don't have much time to spend on it, so that it could become a fully robust _and_ appealing product.
So, well, I though that it may be interesting that I release the source code, and with the help of people who are genuinely interested in participating to the effort, we could build our nice open-source Control Panel.
Actually we're pretty excited about this open source thing, because the CP could only get better, security holes would be spotted -and patched- quickly and we could even recompile on different platforms.
Here's some info:
The CP is named "VPanel". Well, see, even the name ain't that fancy ;)
Run its own Apache server as non-privileged user, the front-end is written in PHP but the backend is a tiny C program, that handles locking to avoid race conditions.
** Email:
Requires:
-SMTP: Sendmail
-POP: spop3d (it's a patched version of spop3d)
CP Features:
-Create email account
-List/Delete email accounts
-Add Forward definition
-List/Delete Forward definitions
** Files Management:
CP Feature:
-Files Explorer; it's a PHP script where all actual files I/O are performed by the C backend; only the UI is PHP
-Very basic access to custom pages editing
** Databases:
Requires:
-MySQL
-PostgresSQL support is planned
CP Features:
-Create a new Database
-Manage Databases: phpMyAdmin, modified so that each user can see and manage their own databases
-Clients are allowed to have one or more DBs, increment is easily configured
** Statistics:
Requires:
-Webalizer and Cron
CP Features:
-access Webalizer pages
-See the xxx last error messages
** Tools:
Requires:
-tar
CP Features:
-Auto-installation of web templates (pre-visualisation and install)
-Auto-setup of predef'd CGI scripts
** Support:
Requires:
-PerlDesk (wonderful product)
CP Features:
-Trouble Tickets (very rough, I plan on fully integrating it with the CP security)
-Whois/Traceroute tools (whois parsing)
-MRTG: bandwidth/CPU load/...
** System Operator:
Requires
-Apache
-Named
-ProFTPD
CP Features:
-Automatic new domain setup (Apache/Named/...): DNS update, plan selection, shared or dedicated IP...
-Various template emails sending
-Global server usage stats (showing each site bandwidth usage, well, not more accurate than an other CP, meaning: HTTP and FTP usage, mostly)
-Some paranoid tools, checking for spam attempts, etc
*** And then?
Some other features are still being developped, such as auto-responders; they're here but not mature enough
*** And theeeeen?
Well, please let me know what your think, any advice, positive or negative will be greatly appreciated.
Regards,
-Chris.
ps: sorry if some parts of my message seem confused, it's getting quite late :stickout
EzCool 01-26-2002, 11:23 AM If you released a good open source control panel, you could assuredly be just as commonplace on new servers as webmin or, depending on value, apache (funny how good free things spread quick).
This would lend instant credibility if you wanted to sell other products or work on contractual basis.
cyansmoker 01-26-2002, 05:06 PM Hi,
thing is, it's not currently a "good" CP.
What I mean is that the code needs cleaning, it's more a "brute force" working piece of code. But we've had it installed in production for six months and never had any problem.
Let's put it this way: this is one the the ugliest things I ever wrote. But it's still much better than what some people will ever do :rolleyes:
But with the help of other developers, we can make it an excellent tool. And BTW, it the people who vote "I will help" could also tell me who they are, this would help ;)
BTW, I'm not doing this for selling other stuff, but because I'm fed up with being the only one working on it. I'm sure that many of you would like to run their own CP, and this is mostly what this is about.
LiveTronix 01-26-2002, 05:56 PM I would be willing to make a front end design and test it - i'm currenty only so-so at PHP and won't want to do anything thats over my head!
shadrach 01-26-2002, 06:30 PM I would like to help.
I was just talking to a friend about doing this the other day. cpanel and such are crazy expensive and there are getting to be more and more small outfits that want to run their own dedicated system, from mini-hosts to developers even.. (dialtone now has a dedicated linux server for $95/month, that's the price of a big virtual account.)
I would like to make something that is super simple.. something that could even be packaged with one of these setups that group mysql or postgresql, php, and apache together.. then with one big tarball that they can wget to the server they'd have everything and a simple, feature rich interface. we should make it plugin to webmin too.
How about setting up a sourceforge account, maybe change the name, and licence it as GPL then get going!
how about.. butterfly - the open option interface. ?
butterfly is a nice name.. I like the oreilly tradition of associating an animal.. then you have all these warm funny connotations as opposed to xpanel, cpanel, yada. "get butterfly, to run everything on your server".
the logo could be a butterfly with the php, apache, mysql logos on it's wings, sort of as a mock to corporate branding.. then the butterfly's there with wings out like a presentation of these services.. but do it nice so that the canvas of it's wings is made up of these logos, not just that the logos are on the wings.. and until you pay attention, it would have the colorful patchwork appearance of natural butterfly wings.
I might seem to be getting ahead of the horse here, but branding is important, lovable huggable tux will have a large role in linux's success. vpanel, cpanel, cold, dead, butterfly, simple, engaging, wants to help me.
anyways, you get my point. I think that is important, a rallying point.
I'm learning php now, and a little c, and work mostly with postgre.
email: john@sampsononline.com
DougBTX 01-26-2002, 06:39 PM I voted for "want to work on it", but I'll just say that I havn't worked on many (any) lare-scale PHP projects..though it can't be that hard ;)
Problem for me would be testing it/code I make, as I don't have a server myself...
Douglas
I'd be willing to help.
I'm pretty fluent in Perl, C++, and some PHP.
Let me know if you'd like some assistance...
cyansmoker 01-27-2002, 02:59 AM Hi,
I must say that John (shadrach) seems to have a fairly good vision, here. Yes, something simple yet functional would be dreamy.
And I personnaly have nothing against the name "butterfly" :D
Douglas, Ben and Livetronix, I'll remember that you're willing to work on it.
Now, there isn't that many replies; maybe people aren't really that interested in another CP, I don't know. I'll just wait a few more days and make up my mind.
Regards,
shadrach 01-27-2002, 05:03 PM Thanks cyan, glad you liked the ideas.
I think there is a huge public interest for an open source server interface. It amazes me that there isn't one yet that will manage virtual domains and email accounts, database admin, etc, and that the proprietary panels are so expensive, charging monthly!
I know that when I got my server I loaded webmin, but the only guy who offered a "plugin" that would do what we want to, no longer supported it and offered me an unsupported version for $150. Dialtone's "server interface" is quite lacking.
Basically, I had resolved to make a proprietary product because there is such a space in the market.. then I remembered how I don't believe in software developers constantly reinventing the wheel so that they can be in control of it, or that the natural freedoms of owning any other type of product are not included with proprietary software (ability to share, extend, repair, etc.).
So I wouldn't think that the response to this thread is indicative of the overall demand, even though IMO the response has been significant.
If we don't start here, I still want to build an open source interface, my friend just happened to direct me to this site and thread, neither of which had I seen before.
also.. almost all open source projects except the very largest only have 1-5 primary developers and then a large amount of testers and community submittions.
Nihuua 01-27-2002, 06:37 PM Me myself i love the idea and am intrested in working on it i am a php programmer please email me more info about this at brandon@guruhosting.biz or aim me at guru3h
cyansmoker 01-27-2002, 10:49 PM Hi all,
I started putting together a tarball that would contain the front-end and back-end.
Doing this only is already a lot of work. Well, it may be because I have to comment what file is used for what purpose :stickout
I'll keep you posted on my progress.
In the meantime, of course, comments on the concept of an open-source CP are WELCOME!
Thanks,
benoire 01-27-2002, 11:37 PM Count me in! Backend wise I can do php, and I could also work on the frontend. Having said that, I'm a fast learner so could pick up other things quite quickly.
I'm also in the UK which would help make this international :). I suggest you get a site and some forums up to start collating thoughts and ideas, as well as a community etc
cyansmoker 01-27-2002, 11:50 PM Originally posted by benoire
Count me in! Backend wise I can do php, and I could also work on the frontend. Having said that, I'm a fast learner so could pick up other things quite quickly.
I'm also in the UK which would help make this international :). I suggest you get a site and some forums up to start collating thoughts and ideas, as well as a community etc
Well, Benoire, I think you're so right about this. I'll set up a dev site, I guess.
Glad to see such enthusiastic contributors!
(hey, I was born in the UK)
benoire 01-27-2002, 11:58 PM :D whereabouts?
I'm currently working on other possible names/branding for the panel - always good to have a couple of options to choose from :)
shadrach 01-28-2002, 12:38 AM sounds great cyan.
couple comments:
I think that we should think "integration" with other open technologies.
normally there is an obvious "best" option among open softwares since, because of the cooperative nature, people aren't as hyper competitive. so we could focus on each of these best options, with butterfly optimized to present each of them. some could include. .
qmail / squirrel mail (http://www.squirrelmail.org/)
postgresql / phppgadmin (http://phppgadmin.sourceforge.net/)
mysql / phpmyadmin (http://phpmyadmin.sourceforge.net/)
apache / openstats (http://www.openstats.net/)
webmin (http://www.webmin.com/webmin/) (which includes a file manager and telnet applet)
php / server based remedial color identifying text editor
and the lists go on.. perhaps we could have two major compilations..
one which is all good current "interface" type products, like mail readers, stats, etc.. which are generally small in file size, along with our code, that would have a list of the softwares it is made to present..
then another which is all that software with the aformentioned interface is combined, bug free, and pre-configured to interoperate.
and then a third which is our code alone..
so basically, at the highest level it would be a "distribution" of modern server technologies, and at a lower level it would be "redhat modified aspects", if we were redhat.. so it would be taking the compilation approach one step further, presented on the wings of the butterfly..
a lot of people don't know, or don't think, about wget or lynx.. almost any dedicated server has a very fat connection, so the size of a compilation isn't really a consideration, we could emphasize to users that they need only:
} wget http://butterfly.sourceforge.net/tarball.tgz or
} lynx http://butterfly.sourceforge.net/tarball.tgz
} tar zxvf tarball.tgz
} cd tarball
} ./configure
} make, make install
basically, our goal would be to offer a measure of the ease of use that people cleave to microsoft for, point and click database entry, server config, etc, without any loss of the power and functionality of linux. besides, the natural progression of computing is already "apps within the browser" as opposed to client side interfaces.
this is all for way down the road.. as far as what we will most immediately be creating.:
[list=1]
ability to "plugin" shell scripts, providing easy link or scheduling
easy plugin and submittion to us of any sort of function.. in short, take a modular approach
easy links to all the standard .conf files.. and presentation for editing of them within the browser, this could turn a very cryptic process into a very simple one.
integrated links to our, central site, which could include extensive compiled faq's on every related issue. and more in general, have links back to us, or other places where they can find support (perhaps an irc applet that auto logs on to irc.openprojects.net #butterfly), integrated within butterfly.
bug submittion form on every page of the interface.
ah, good one.. they're going to be logging into the interface regularily, and who wants to subscribe to bugtraq and get 40 emails a day (?), so, a security page of the interface, and a security section of the logon page, would access our site and present security notices for the software associated with butterfly.. and info on how to install them. none of us really need all of the notices that a security freak would scour over, but the ones that we do need are rarely weeded out.
lastly, since the project will be gpl'd, anybody "taking control" is no longer an issue, it's impossible, and all of us will have to have the purest of intentions, to imporve and share. with that in mind, there should be a section of the project site that lists the projects creators, who want to be listed, as people who can install the interface for a prefixed price.. this would be an extended support service presented by the premeire creators, so that those who need it can make a buck. just like redhat selling cd's. of course any other programmer would be able to provide the same service, but just would not be listed on the project site unless he is a major contributor to butterfly.
[/list=1]
I know that all of these are more strategical than logistical issues, but I think that establishing the outline and longterm project goals is important before starting to write code.
TimPD 01-28-2002, 12:40 AM I'm willing to throw a helping hand in when I have time with the design. Just when I have time :).
shadrach 01-28-2002, 12:54 AM butterflies are famous for their metamorphosis from a catepillar to their current state..
"the butterfly will metamorph your server management from the speed and appeal of a catepillar to the ability and beauty of a butterfly, just don't fly your server into a truck windshield."
mybutterfly.org and butterflygroup.org are available. it could also be called metamorph, which is not an actual word (so could perhaps be TM trademarked as was linux), but has an obvious implication.
metamorphosis n 1: the marked and rapid transformation of a larva into an adult that occurs in some animals [syn: metabolism] 2: a striking change in appearance or character or circumstances: "the metamorphosis of the old house (server) into something new and exciting" 3: a complete change of physical form or substance especially as by magic or sorcery.
benoire 01-28-2002, 01:00 AM I was thinking along the metamorphosis line - I thought 'cocoon' or 'chrysalis' or a variation would be a nice name too.
If we are going to setup some other forums, it might be an idea to do it sooner rather than later so all discussion like this can be kept in one place.
cyansmoker 01-28-2002, 01:03 AM Yes Benoire, I'm setting up phpBB right now. We're getting kinda off-topic here, I think...:D
benoire 01-28-2002, 01:04 AM Um, that post just got severely editted :D points are still very valid though!
Let us know where to go when your done installing :D
nethead 01-28-2002, 01:18 AM While I appreciate the idea of doing this open source, I think that the right team could go commercial with a CP and share revenues based on input in the project. My company can offer many man-months towards such a commercial venture, and I invite others to participate.
Please see my post at http://www.webhostingtalk.com/showthread.php?s=&threadid=33588
benoire 01-28-2002, 01:30 AM I see where your coming from, but that would take the 'fun' away from doing it - open source projects aren't about making money obviously, its a case of people doing something they like to do.
Once you start making it commercial, you have pressure, you have to keep close tabs on the competition, you have to market etc etc.
I think its better to keep open source and get income through installations, donations etc - or at the very most, have a free version and a more advanced paying version.
cyansmoker 01-28-2002, 01:40 AM We may now have reached the point where we're utterly off-topic.
As suggested, I have set-up a forum, here: clicdev.suhosting.com (http://clicdev.suhosting.com) .
Let's all happily continue this debate over there, if you don't mind :cartman:
JustinH 01-30-2002, 02:56 AM Something here has confused me a bit. I noticed that you said postgresql support is planned. However, as I understand postgresql, it doesn't work well on a virtual user. Eg. user "bob" creates new db and adds credit_card info to it (note: bob is a dork and doesn't encrypt) technically with postgresql user "jim" would have access to bob's database. I believe this is the reason 99.9% of CP's don't have built-in postgre support.
I could be completely wrong so correct me if so :).
On a side note: I would be happy to help out with this, I'm not much of a designer but I have a several years experience with PHP and would like to see a good GPL control panel :).
cyansmoker 01-30-2002, 03:04 AM Originally posted by comphosting
Something here has confused me a bit. I noticed that you said postgresql support is planned. However, as I understand postgresql, it doesn't work well on a virtual user. Eg. user "bob" creates new db and adds credit_card info to it (note: bob is a dork and doesn't encrypt) technically with postgresql user "jim" would have access to bob's database. I believe this is the reason 99.9% of CP's don't have built-in postgre support.
I could be completely wrong so correct me if so :).
Here are my work assumptions:
-Postgresql is great for many reasons; among these: transactional database, object-based types, fine-grained record locking, better isolation...
-Postgresql allows for the same privileges definitions than most commercial DBs do; now if it doesn't it IS a big shock.
I'll crawl through their doc to find out...right now I'm just in denial ;)
priyadi 01-30-2002, 03:21 AM It is possible to offer PostgreSQL securely. Take a look at file pg_hba.conf, you can assign a different password file to different database. It is not as elegant as MySQL, but it works.
JustinH 01-30-2002, 03:21 AM http://www.postgresql.org/idocs/index.php?privileges.html
I stand corrected :)
I'm interested in helping as well, but I'm not much of a programmer, I know a little C++, VB, and PHP though so I may be of some assistance. I might be able to figure the code out if it is documented well enough though. Mostly looking at this as a learning experience but who knows, I might come in useful a time or two. Have registered at the forums cyan setup. Will be keeping a close eye on this.
ckpeter 01-30-2002, 05:13 PM Just out of curiosity, why don't you guys help the webcp project instead. Felix could certainly use some help.
Peter
benoire 01-30-2002, 07:21 PM webcp? what's that then? not come across it yet
ckpeter 01-30-2002, 07:31 PM Its an open-source control panel. webcp.can-host.com.
Peter
benoire 01-30-2002, 07:42 PM Thanks, I'll look into it
shadrach 01-31-2002, 12:31 AM I had forgotten all about web.cp. I remember checking it out a few months ago but saw it had little functionality and moved on. I think the code that is being given to butterflycp might be more significant than the current codebase of web.cp anways, so hopefully we'll make a good go of it.
cyansmoker 01-31-2002, 06:35 AM Nah,
'ButterflyCP' (I'm getting used tot that name!) doesn't really offer many features yet.
I remember webcp, I also had a look and got scared. I had a look again today and I didn't remember that it was runnig a daemon...(that was the thing that scared me the most, back then; I really feared race conditions)
Félix C.Courtemanche 02-01-2002, 01:54 AM Originally posted by cyansmoker
Nah,
'ButterflyCP' (I'm getting used tot that name!) doesn't really offer many features yet.
I remember webcp, I also had a look and got scared. I had a look again today and I didn't remember that it was runnig a daemon...(that was the thing that scared me the most, back then; I really feared race conditions)
race conditions? by definition, a daemon is just a program that is always on and sits iddle untill it has something to do. This is exactly what the script does, PHP does not seem to leak memory and it serves as an automated protection against duplicate modification (or locking hell) problems.
Good luck, I will gladly help you if you need it.
cyansmoker 02-01-2002, 05:20 AM Thanks Felix, that's very kind of you to offer your help; I appreciate it.
Actually what I meant is that, as I recalled, there was no daemon. But I may be insane ;)
BTW, what happened to your project? Is it still in progress?
Best regards,
Félix C.Courtemanche 02-01-2002, 07:59 AM Yes. You can contact me by e-mail to discuss this further if you want.
In brief, we expect a 0.5 release within a few weeks, with it tons of goodies and pretty much total rewrite to allow easier multi-platform, multi-language, multi-look
Hang around on our forum and you will learn more :)
diyoha 02-01-2002, 11:01 PM where is the forum located?
Why don't you use sourceforge for everything? It was designed for openSRS projects!
It has forums, csv, etc.
This is a good idea that shouldn't die out because of lost communication ...
David
ckpeter 02-01-2002, 11:06 PM David,
You should go to webcp's website webcp.can-host.com, because you will see the link to the forum.
And Webcp does use sourceforge.net, the mailling list, for example, is hosted by sourceforge.
Peter
cyansmoker 09-08-2002, 06:31 AM Well, this is a *bump* to let you know that butterflycp (work name: http://butterflycp.sf.net) was almost entirely rewritten to offer more flexibility to web developers.
Thus, we are now willing to integrate new developers who'd create new modules, no matter what language you're using.
Have a good Sunday!
whctrlpanel 09-13-2002, 02:13 PM I love the idea. I wish to work on this control panel. Please email me the specifics.
michaeln 09-15-2002, 01:17 AM If you need anymore php help on it let me know.
|