Modules for the excellent Webmin server administration tool.
Both are 'beta' quality code; they are used for a set of servers hosting many hundreds of domains. Their suitability for your needs may vary.
Notes below assume familiarity with Webmin. See the Webmin site for more info.

    Webmin Batch-Apache Version 0.2.2 and Batch-DNS Modules Version 0.1.2
    Copyright (C) 2001 Daniel R. Allen and Prescient Code Solutions
    Questions/comments/suggestions are welcome- please email daniel (at) coder.com

    This module is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License. 

Contents: 
---------

Batch-Apache Module notes
Batch-DNS Module notes


                           Batch-Apache Module


Batch-Apache simplifies the task of adding a number of virtual domains to
a web server. Once some initial information is given to Batch-Apache, the
admin may add any number of domains in one step. 

This module can chain together with the Batch-DNS module, so that Master
and Slave DNS can be set up for all domains in one step each. 

Installation:  
-------------

You can obtain Batch-Apache from http://coder.com/code/batch-apache.wbm
or by visiting http://webmin.thirdpartymodules.com/?page=Servers

Standard webmin Install places this module "Batch Apache Host Addition"
into the "Others" tab.

Module Configurations:
----------------------

- Directory to put domain home directories (eg., /home/apache)
- User who owns domain files               (eg., www-user)
- Specify an email address for webmaster?   No or Yes. 
                                       If "No", webmaster@domain is used.     
- Email address of webmaster           (eg., myaddress@myotherdomain.com)
- Specify an automatically generated home-page?  No or Yes. 
                              If "Yes", the file "domain/htdocs/index.html"
                              becomes a soft link to a default file.     
- Filename that is linked to become default home-page (Optional) 
                              (Eg., your "coming soon" webpage).
- IP Address on this server   (Optional, If you need to specify a 
                              non-default address for virtual domains)
- IP Address as seen by outside (Optional, if your firewall has a 
                              different webserver IP address for outside 
                              connections
- Chaining URL to add primary DNS (optional) 

Chains the output of this module to the Batch-DNS module to create master
records.  This is done via a URL so that you can have your Apache daemon
run on one server and your Bind 8 daemon run on another server. 

To construct the URL for accessing another server in a single step
(without having to fill in your username and password each time) you can
use the following URL template: 

http://username:password@domain.com:port/batch-dns/run.cgi

(where, of course, username, password, domain.com, and port are customized
for your setup). 

Usage:
------

Log into webmin, choose the "Others" tab, and choose "Batch Apache Host
Addition". 

Fill in the text field with as many domains as you like, one on a line.
All must be fully qualified (eg., must end in .com, .org, etc).  Choose 
"Save".

The script will: create a directory for each domain under your specified
home directory, create htdocs and cgi-bin directories, and if you like,
create a link to a standard index.html for the home directory. It will
update conf/httpd.conf with the new domains, and create an alias for
accessing each domain for testing purposes.

The exact httpd.conf additions are:

    
    ServerAdmin $webmaster 
    ServerName $domain   
    ServerAlias $domain *.$domain   
    DocumentRoot $fullpath/htdocs
    
    Alias /$domain $fullpath/htdocs
 

You will see a count and list of the apache domains succesfully added; if
there were any problems, they will be listed separately. 

Choose "Restart Apache" to bring up the changes in Apache.  The output page
will tell you apache has been restarted.  Choose "Continue." 

If you filled in a Chaining URL, you will see the option to "Add Master
DNS". Choose this link to submit the list of successful domain additions
to the Batch-DNS module.  Batch-DNS may be installed on the same
physical server, or on a different server.

For those interested in the details of chaining, Batch-Apache constructs a 
POST form with the Chaining URL as the action, with the following hidden 
variables:

secondary -  (0 for primary or 1 for secondary DNS)
ip -         (IP address of this server)
domains -    (carriage-return-delimited list of domain names to add)




                              Batch-DNS Module


Batch-DNS simplifies adding any number of master or slave DNS domains for
a server running Bind 8.  It can chain to another instantiation of itself
on another server, so that after adding the master records, it can
automatically add slave records.  Any number of slave servers can be
chained in series to the master server.  It is also written to accept DNS 
records from Batch-Apache.

Installation:
-------------
You can obtain Batch-DNS from http://coder.com/code/batch-apache.wbm
or by visiting http://webmin.thirdpartymodules.com/?page=Servers

Standard webmin Install places this module "Batch DNS Domain Addition"
into the "Others" tab. 

Module Configurations:
----------------------

- Master server                           (the master's name to be used in
                                          the zone records).
- Use specific email address?             (default or yes- "default" means
                                          "root@domain" will be used.     
- Non-default email address (optional)  
- Refresh time   (in sec.)
- Transfer retry time  (in sec.)
- Expiry Time   (in sec.)
- Default time-to-live  (in sec.)
- Chaining URL to add secondary DNS (optional) 

Chains the output of this module to Batch-DNS to create slave DNS records. 
This is done via a URL so that you can have Bind control master records on
one server, and slave records on another server, ideally in a different
network for added stability.

To construct the URL for accessing another server in a single step
(without having to fill in your username and password each time) you can
use the following URL template: 

http://username:password@domain.com:port/batch-dns/run.cgi

(where, of course, username, password, domain.com, and port are customized 
for your setup).

Usage:
------

Log into webmin, choose the "Others" tab, and choose "Batch DNS Domain
Addition." 

Choose whether the records should be master or slave.  To set up a domain,
you should start with master on one server, and then add slave on a second
server. 

Fill in the domain name or IP address that will host all of the following
domain name records.  This should be the IP or domain that will run Apache
or FTP or whatever other services you want to provide with the domains. 

Fill in the text field with as many domains as you like, one on a line.
Any valid hostname is fine. (eg., server2, terminator.movie.com, etc.)
Choose "Save".

The script will create a zone file for each domain, and add an appropriate
zone record to the "named.conf" file for each master or slave. 

You will see a count and list of the domains succesfully added; if there
were any problems, they will be listed separately. 

If you filled in a Chaining URL, you will see the option to "Add Slave
DNS". Choose this link to submit the list of successful additions to the
Batch-DNS module as Slave records.  You may have as many slaves as you
like, and each slave can be chained to the next via the chained URLs. 

For those interested in the details of chaining, Batch-DNS uses a POST 
form with the Chaining URL as the action, with the following hidden 
variables:

secondary -  (0 for primary or 1 for secondary DNS)
ip -         (IP address for the host server)
domains -    (carriage-return-delimited list of domain names to add)


   ------------------------------------------------------------------

    Webmin Batch-Apache and Batch-DNS Modules
    Copyright (C) 2001 Daniel R. Allen and Prescient Code Solutions
    Questions/comments/suggestions are welcome- please email daniel (at) coder.com

    This module is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License.