VishwaKarma Frequently Asked Questions <author>Raju Mathur <htmlurl url="mailto:raju@kandalaya.org" name="mailto:raju@kandalaya.org"> <date>$Id$ <abstract> This is the Frequently Asked (and Answered!) Question (FAQ) list for VishwaKarma, the GPL Web-hosting Control Panel for Linux systems. VishwaKarma is available from <htmlurl url="http://kandalaya.org" name="http://kandalaya.org">. </abstract> <toc> <!-- **** 0 **** --> <sect>General and Features <!-- **** 1 **** --> <sect1>General <sect2>Why is VishwaKarma free? <p>We believe that software must not be hoarded by individuals or corporations, but instead be made available to everyone who needs it. That way people can benefit from others' work without having to reinvent the wheel each time they need a problem solved. <p>We use <htmlurl url="http://www.gnu.org/gnu/manifesto.html" name="the GNU Manifesto"> as our guiding principle when writing software. <p>We release our software under the GNU <htmlurl url="http://www.gnu.org/copyleft/gpl.html" name="General Public License (GPL)">. <p>We make our money from our <htmlurl url="http://kandalaya.org/services.shtml" name="consulting services">. If you like our software, may we suggest that you consider us for your next project as a way of saying thanks? <sect2>Why write another web-hosting control panel when so many are already available? <p>Short answer: because we can! <p>Long answer: VishwaKarma has some features which no other control panel has to the best of our knowledge: <itemize> <item>4 levels of control (server manager, reseller, domain owner and e-mail user) <item>Support for multiple e-mail accounts with the same name on a single IP (e.g. info@kandalaya.org as well as info@linux-delhi.org). <item>Only one system (Unix) user account per domain, and one per reseller. E-mail users do not need system accounts. </itemize> <p>Please <htmlurl url="mailto:contact@kandalaya.org" name="let us know"> if you are aware of any software having these features. <sect2>What other free (Linux/Unix-based) control panels are available for web-hosting companies? <p>We are aware of the following: <itemize> <item><htmlurl url="http://www.freevsd.org/" name="FreeVSD"> <item><htmlurl url="http://ispman.sourceforge.net/" name="ISPMan"> <item><htmlurl url="http://www.chaogic.com/vhost/" name="vHost"> <item><htmlurl url="http://www.webmin.com/webmin/" name="Webmin"> </itemize> <p>Please <htmlurl url="mailto:contact@kandalaya.org" name="let us know"> of any other free web-hosting control panels. <sect2>What other non-free (Linux/Unix-based) control panels are available for web-hosting companies? <p>We are aware of the following: <itemize> <item><htmlurl url="http://ensim.com/" name="Ensim Web Appliance"> <item><htmlurl url="http://ensim.com/" name="Ensim ServerXchange"> <item><htmlurl url="http://www.niemueller.de/webmin/modules/ispcontrol/" name="ISP Control Module for Webmin"> <item><htmlurl url="http://www.plesk.com/" name="Plesk"> <item><htmlurl url="http://www.psoft.net/" name="Positive Software H-Sphere"> <item><htmlurl url="http://www.sphera.com/" name="Sphera ServerDirector"> <item><htmlurl url="http://www.sphera.com/" name="Sphera ClusterDirector"> <item><htmlurl url="http://www.sphera.com/" name="Sphera DomainDirector"> </itemize> <p>Please <htmlurl url="mailto:contact@kandalaya.org" name="let us know"> of any other non-free web-hosting control panels. <p>Thanks to <htmlurl url="mailto:tjung@igateway.net" name="Tim Jung"> for links. <sect2>What language is VishwaKarma written in? <p>Perl 5.005. We like Perl :-) <sect2>Will VishwaKarma run on Redhat 7.x? How about Debian? Mandrake? Corel? ...? <p>Probably, though you will have to change the locations of some system files and programs. We've tried to parametrise them as far as possible in Server.config, but there may be a couple of dependencies in the code too. <p>Red Hat 7.x is now supported as of VishwaKarma 2.0-Beta8. <sect2>Can I add features to VishwaKarma? <p>Yes. The code is commented (though sparsely) and we've tried to comment all large blocks by specifying what is being done there. It's up to you to figure out <em/how/ it's being done :-) <sect2>Is there a demo of VishwaKarma available on the 'net? <p>Sorry, we are not aware of any server which has a demo of VishwaKarma. Why don't you put one up on your server? <sect2>Can I see some screen shots of VishwaKarma in action? <p><htmlurl url="mailto:jklein@datility.net" name="Jason Klein"> has kindly put up screen shots of VishwaKarma at <htmlurl url="http://www.datility.net/pages/other/vkshots/" name="http://www.datility.net/pages/other/vkshots/">. <sect2>The install process looks very complex. Can someone install VishwaKarma for me? <p><htmlurl url="http://kandalaya.org/" name="Kandalaya"> has lots of experience in installing and configuring VishwaKarma :-) However, we survive on consultancy revenue, and charge a fee for VishwaKarma installation. Please <htmlurl url="mailto:contact@kandalaya.org" name="contact us"> if you would like us to install it for you. <p>You should also <htmlurl url="mailto:contact@kandalaya.org" name="contact us"> if you'd like to be included in a list of organisations who support VishwaKarma, for a fee or for free. This list is currently empty. <sect2>Is there a mailing list for VishwaKarma? <p>Yes, there are two mailing lists: <descrip> <tag/<htmlurl url="mailto:vk@kandalaya.org" name="vk">/ The VishwaKarma discussion list. You can ask VishwaKarma-related queries here. To subscribe, send a message with the subject <tt/subscribe <your-email-address>/ to <tt><htmlurl url="mailto:vk-request@kandalaya.org?subject=subscribe" name="vk-request@kandalaya.org"></tt>. <tag/<htmlurl url="mailto:vk-announce@kandalaya.org" name="vk-announce">/ An announce-only list. To subscribe, send a message with the subject <tt/subscribe <your-email-address>/ to <tt><htmlurl url="mailto:vk-announce-request@kandalaya.org?subject=subscribe" name="vk-announce-request@kandalaya.org"></tt>. </descrip> <!-- **** 1 **** --> <sect1>Server features <sect2>How many domains does VishwaKarma support? <p>Virtually unlimited. You are only limited by the underlying operating system, memory, disk and bandwidth. <sect2>Do I need one IP address per domain? <p>No, you need just 2 IP addresses to run VishwaKarma: 1 primary server IP (for administration) and 1 for domains. You can run all your domains on the second IP. Of course, you can use as many more IP's as you like! <sect2>Will VishwaKarma work with <insert name of favourite mail server software here>? <p>Currently VishwaKarma only supports <htmlurl url="http://www.sendmail.org/" name="Sendmail">. However, it's possible that we may support other mailers in the future; we hope that the user community sends in patches for their favourite mailers. <sect2>Will VishwaKarma run under mod_perl? <p>Probably. we've tested it on our own computers with mod_perl and not faced any problems. However, we want to make sure that VishwaKarma will run as stand-alone CGI scripts since using mod_perl requires a recompilation of the stock Apache which comes with Redhat (you <em/did/ know that mod_perl doesn't run well as a module, didn't you?) <sect2>What support packages does VishwaKarma need? <p>Required packages: <itemize> <item>procmail <item>SmartList (NOT the RPM!) </itemize> <p>Recommended packages: <itemize> <item>Webalizer (not tested with the RPM, though it should be possible to work with that too) </itemize> <!-- **** 0 **** --> <sect>Server Administration <!-- **** 1 **** --> <sect1>Common questions for Server Managers and Resellers <sect2>Why are there three fields (Manager ID, Reseller ID and Password) in the manager login screen? <p>Because there are three types of logins that you can do from this screen: <descrip> <tag/Manager Login/ Login as the server manager: Enter the manager id (usually ``manager'') in the Manager ID field and the manager password (default ``secret'' <-- CHANGE THIS!) in the Password field. <tag/Reseller Login/ Login as a reseller: Enter the reseller ID in the Reseller ID field and the reseller password in the Password field. <tag/Manager Login as Reseller/ As the server manager you can perform reseller tasks. Login with the manager ID and password, and put the reseller ID of the reseller you want to administer in the Reseller ID field. You will then be logged in as that reseller and can do everything that the reseller can. </descrip> <sect2>What is the Disk Quota assigned to a reseller? <p>This is the amount of space that all the domains created by that reseller will be able to use, cumulatively. For instance, if you assign a disk quota of 100MB to reseller RES, RES will be able to create 1 domain using 100MB, or 10 domains using 10MB each, or 1 domain using 50MB and 10 domains using 5MB each. <sect2>But I assigned a 10MB disk quota to a reseller and she's already created 20 domains of 1MB each! How can this happen? <p>In order to answer this, you have to understand how disk quotas under Linux work. When you assign a quota to a user, you are telling the system the <em/maximum/ amount of space that that user-ID can use. Hence it's possible (if not very ethical) for a reseller to assign more than her existing quota to her domains. However, the moment a few of the domains start using the quota to the full, the other domains will not be able to create any more files. <sect2>Isn't this dangerous? <p>Yes, it is, because a domain stops receiving e-mail when the domain OR the reseller exceeds quota. Do not let it happen! <sect2>Well, I don't want my users to lose any e-mail, so can't you give me a report of how much quota domains and reseller have used and have left, so that I can warn them? <p>Yes, it's being worked on. <sect2>Better yet, how about an automatic warning when a domain or reseller reaches (say) 90% of their quota allocation? <p>Good idea! We shall keep it in mind for a future version of VishwaKarma. <sect2>What are soft, hard, parked and IP domains? <p>These are the four types of domains that you can create using VishwaKarma. <descrip> <tag/Hard domains/ Hard domains are either the first or the only domain on an IP address. In other words, the IP address is dedicated to the domain when it's created. You can subsequently create more domains on that IP: the rest will automatically become soft domains (see under). <tag/Soft domains/ These are domains that share IP addresses with other domains. VishwaKarma places no limitation on the number of domains that you may have on an IP, though in practice you'll have to tweak a couple of Linux system parameters by the time you go over 1000 domains or so. <tag/Parked domains/ A parked domain shares all its data and e-mails with an existing domain. In other words, it's a shadow of an existing domain. For instance, kandalaya.com is parked onto kandalaya.org, so anyone trying anything with kandalaya.com (e.g. sending an e-mail or viewing the HTML pages) will actually be accessing kandalaya.org. <tag/IP domains/ You can create an IP domain to allow people to preview what their site will look like before actually moving it to the server. As the name implies, IP domains are accessed using the IP address (http://aa.bb.cc.dd) rather than a domain name. </descrip> <sect2>I've created a new domain using VishwaKarma, but when I try to access it I get another domain's page! <p>You need to restart the HTTP server on the system for the new domain to be reflected. Since VishwaKarma is running through the HTTP server it cannot stop it's parent... if it does, it gets killed itself! <p>One solution is to put a cron job which restarts the server from time to time. On Redhat 6.2, you can run the command <tt/crontab -e/ and add the following line to have your HTTP server restarted at 11am and 11pm daily: <p><tt>0 11,23 * * * /etc/rc.d/init.d/httpd restart</tt> <!-- **** 1 **** --> <sect1>Answers for Server Managers <sect2>I've forgotten my Manager password. What can I do? <p>Short answer: nothing. Pay Kandalaya obscene amounts of money to fix it for you. <p>Long answer: If you're familiar with OpenLDAP you may be able to tweak the slapd.conf file and get into LDAP without authentication. We haven't tried it personally, so YMMV. <sect2>Why does creating a reseller sometimes fail with ``Sorry, a system user with ID <something> already exists on this server. Please use a different reseller ID.''? <p>All resellers are assigned a system user ID at the Linux level. If you already have Linux users with a specific user-ID, you will not be able to add resellers with those ID's. <p>For example, all Linux systems have a user called ``root'' defined by default. You will not be able to add a reseller called ``root''. <!-- **** 0 **** --> <sect>Domain owner Questions <!-- **** 1 **** --> <sect1>Answers for domain owners <sect2>What is the domain owner ID? <p>Each domain has an Owner ID associated with it. For instance, the owner of the domain linux-delhi.org may be the ID ``linuxorg''. <p>The domain owner gets special privileges and extra functionality when she logs in to the domain menu using this ID. She can also FTP to upload files into her domain using this ID. <sect2>What are the two e-mail accounts created by VishwaKarma automatically? <p>VishwaKarma automatically creates an e-mail account for the domain owner when the domain is created. It also creates an account called ``_default_'', which determines the disposition of e-mail which cannot be delivered to a valid address in the domain. <p>By default, the _default_ account is setup so that all mail which cannot be delivered is automatically sent to the domain owner (see above). However, you can change this behaviour to send an auto-response on bouncing mail, to forward to another address, or even store the mail locally for POP3 retrieval. <sect2>What special privileges does the domain owner have? <p>The domain owner can do any of the following: <itemize> <item>Create more e-mail accounts <item>Delete e-mail accounts (except her own account and the _default_ account) <item>Change the settings and password for any e-mail account <item>Use FTP to manage the site data <item>Create and delete mailing lists <item>Manage mailing lists (view subscribers, subscribe/unsubscribe e-mail addresses, etc) </itemize> <sect2>But my domain is restricted to 5 e-mail addresses and I don't want to waste any of those on the domain owner and the _default_ account! <p>The domain owner account and the _default_ account are ignored when counting the maximum number of e-mail accounts in a domain. <sect2>How do I change my FTP password? <p>The domain owner's e-mail password and the domain FTP password are kept in synch. Change the password for the domain owner's e-mail account, and your FTP password will be automatically updated too. <sect2>What is the procedure for using a CGI script? <p>If your domain is called <tt/kandalaya.org/, do the following: <itemize> <item>Upload the CGI scripts to the <tt>ftp://kandalaya.org/kandalaya.org-cgi/</tt> directory. <item>Make the script executable; in a command-line FTP client, the command would be: <p><tt>chmod 755 kandalaya.org-cgi/</tt><em/name-of-script/ <item>Use the script. The URL for the script will now be: <p><tt>http://www.kandalaya.org/cgi-bin/</tt><em/name-of-script/ </itemize> <sect2>How do I use server-side includes (SSI, .shtml files)? <p>In the root WWW directory of your domain (<tt>domain.com-www</tt>), create or upload a file called <tt/.htaccess/ which contains the line: <p><tt/Options +Includes/ <sect2>I enabled FrontPage extensions for my domain and now http://domain.com/menu doesn't work. Why? <p>FrontPage has a habit of fooling around with stuff which is really none of its business. One of the things it does is disable the /menu feature. However, don't despair, you can still access the menu by appending another / to the URL as such: <p><tt>http://domain.com/menu/</tt> <sect2>How do I enable FrontPage Extensions and/or Java Server Pages for my domain? <p>In your domain menu, click on the FrontPage/JSP button and choose the Enable link. If you enable FrontPage, your admin password will be displayed: <em/Note This Down/! You can presumably change this password later through FrontPage itself. <sect2>I've enabled JSP, now how do I use it? <p>When you enable JSP, you get a virtual domain. If your domain name is <tt/kandalaya.org/, your JSP's will be available under the URL: <p><tt>http://www.kandalaya.org:8080/kandalaya.org/</tt> <p>You will have to upload your JSP scripts to the directory: <p><tt>ftp://kandalaya.org/kandalaya.org-servlets/</tt> <sect2>How do I use servlets? <p>1. Put your compiled Java classes in the <tt><em/your-domain.com/-servlets/WEB-INF/classes</tt> directory. <p>2. Add a configuration stanza for your servlet in the file <tt><em/your-domain.com/-servlets/WEB-INF/web.xml</tt>. Look at the existing stanzas for an idea of what to add. <p>3. Use the URL <tt>http://your-domain.com:8080/your-domain.com/servlet/<em>name-of-servlet</em></tt> to access your servlets <sect2>What's the URL for the formmail processor? <p>If your domain is <tt/kandalaya.org/, use the URL: <p><tt>http://kandalaya.org/cgi-sys/formmail.pl</tt> <p>In general, use the URL <tt>http://<em>your-domain.com</em>/cgi-sys/formmail.pl</tt> <sect2>How do I figure out how to use package <X> which is available on my virtual host? <p>Here are some URL's which may be useful to you: <descrip> <tag/Jakarta-Tomcat (JSP)/ <htmlurl url="http://jakarta.apache.org/tomcat/tomcat-3.2-doc/index.html" name="Tomcat Documentation (version 3.2)"> <tag/mm.mysql (MySQL JDBC driver)/ <htmlurl url="http://mmmysql.sourceforge.net/doc/mm.doc/book1.htm" name="Documentation for MM.MySQL"> <p> <htmlurl url="http://java.sun.com/products/jdk/1.1/docs/guide/jdbc/getstart/introTOC.doc.html" name="Getting Started with JDBC"> <tag/FormMail.pl/ <htmlurl url="http://worldwidemart.com/scripts/readme/formmail.shtml" name="README for Form Mail processor"> <p><htmlurl url="http://worldwidemart.com/scripts/faq/formmail.shtml" name="Form Mail Frequently Asked Questions (FAQ)"> <tag/phpMyAdmin (Web-based MySQL management tool)/ <htmlurl url="http://phpmyadmin.sourceforge.net/documentation/" name="phpMyAdmin Documentation">, or use the ``Documentation'' links in the phpMyAdmin pages. </descrip> <!-- **** 0 **** --> <sect>End User Questions <!-- **** 1 **** --> <sect1>Answers for end (e-mail) users <sect2>My e-mail (user) ID is ``abc'' on domain ``xyz.com'', but I can't retrieve mail using POP3. Why? <p>You have to use a special form of your e-mail ID to log into the POP3 system. Make the following settings in your POP3 client: <descrip> <tag/User ID:/ abc!xyz.com <tag/Server:/ xyz.com <tag/Password:/ whatever your password is </descrip> <p>Note the special way of writing your user ID: you can use any of the following forms: <itemize> <item>user@domain <item>user#domain, OR <item>user!domain </itemize> <sect2>But won't people get confused if they have to send mail to a wierd e-mail address like user!domain@domain.com? <p>They would, if they had to, but they don't! You only have to use this funky form when retrieving your mail from the POP3 server. Your e-mail address remains user@domain. <sect2>Can I access mail from popular web-mail services using this scheme? <p>Yes. Just enter user!domain as your user ID and enter the domain name as your server, and you'll be able to retrieve your e-mail. <sect2>Can I change the settings for my e-mail account myself or do I have to ask the domain owner to do it? How about my POP3 password? <p>Yes you can. Login to http://domain/menu with your e-mail ID and password to change your e-mail settings and your password. <sect2>What are all the settings I can change in my e-mail account? <p>You can change your password, and how to dispose of your e-mail: <descrip> <tag/Local Delivery/ Check this box to have VishwaKarma store incoming messages locally so that you can download them using POP3. <tag/Forward/ Enter one or more e-mail addresses (one per line) in this box to have your incoming messages automatically forwarded to these addresses. <tag/Auto-reply/ Any text you enter here will be automatically sent back to anyone who e-mails you. </descrip> <sect2>Can I have both local delivery and forwarding enabled? How about forwarding and auto-reply? <p>Yes, you can select any combination of the three mail delivery options: local delivery, forward and auto-reply. </article>