ISPConfig 3.0.0.1 Alpha Released

Discussion in 'Developers' Forum' started by till, Jun 4, 2007.

  1. till

    till Super Moderator Staff Member ISPConfig Developer

    Hi,

    I'am proud to announce the first release of ISPConfig 3 :) This release is a alpha version of the mail and client module, it is meant for development and testing and not for any kind of productivity systems. It is also not feature complete, e.g. the autoresponder is not implemented yet.

    The software itself can be downloaded here:

    http://www.ispconfig.org/downloads/ISPConfig_3.0.0.1-alpha.tar.gz

    Additionally I will prepare a VMWare image of the software installed on Debian later today and post a download link. Below is a short feature list and the installation instructions to install the software on debian etch without using the vmware image.

    What does this relaese offers?

    Client Module
    -------------

    - Management of clients
    - client limits for the mail module

    Mail Module
    -----------

    - mail domains
    - mail aliases
    - mail boxes / users
    - mail forwarders
    - mail catchall accounts
    - spamfilter rules which can be set global, per domain and per mailbox
    - spamfilter policys
    - antivirus (part of the spamfilter policys), filtering can be definied globally, per domain or per user.
    - spamfilter whitelists and blacklists
    - postfix smtp whitelists / blacklists
    - Fetch email from pop3 or imap mailboxes

    The mail module can manage multiple mailservers from one controlpanel (not tested much yet).

    System requirements
    --------------------

    This release supports only debian Etch (4.0).

    Installation
    -----------

    It is recommended to use a clean (fresh) debian etch install where you just selected "Standard System" as package selection during setup. Then follow the steps below to prepare your server for ISPConfig 3:

    1) Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin with one single command (one line!):

    Code:
    apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4
    Answer the questions from the package manager as follows.

    Create directories for web-based administration ? <-- No
    General type of configuration? <-- Internet site
    Mail name? <-- server1.mydomain.tld
    SSL certificate required <-- Ok

    ...use your own domain name of course ;)

    2) Install Amavisd-new, Spamassassin and Clamav (1 line!):

    Code:
    apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip
    
    3) Install apache, PHP5 and phpmyadmin (1 line!):

    Code:
    apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin
    4) Install ISPConfig 3

    Code:
    apt-get install php5-cli
    Code:
    cd /tmp
    wget http://www.ispconfig.org/downloads/ISPConfig_3.0.0.1-alpha.tar.gz
    tar xvfz ISPConfig_3.0.0.1-alpha.tar.gz
    cd ISPConfig_3.0.0.1-alpha/install/
    The installer does not ask any questions yet, so everything must be edited in the config file before you start the installer.

    Code:
    vi dist/conf/debian40.conf.php
    There are just two values that you should change:

    Enter the mysql root password in this line. If the password is e.g. secret, the line should look like this:

    $conf["mysql_server_admin_password"] = "secret";

    The other line is:

    $conf["mysql_server_ispconfig_password"] = "5sDrewBhk";

    Replace "5sDrewBhk" with a password of your choice, the installer will create a new mysql database user named "ispconfig" and the user will get the password that you enter in this line.

    Now start the installation process by executing:

    Code:
    php -q install.php
    The installer will configure all services like postfix, sasl, courier, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not nescessary. To login to the ISPConfig controlpanel, open the following URL in your browser (replace the IP to match your settings!):

    http://192.168.0.100/ispconfig/

    the default login is:

    user: admin
    password: admin

    In case you get a permission denied error from apache, please restart the apache webserver process.

    -------------------------
    - update
    -------------------------

    The vmware appliance can be downloaded from here:

    http://www.ispconfig.org/downloads/ispconfig3_developer_appliance.zip

    the root password is "ispconfig". The mysql database password is not set. The IP of the appliance is 192.168.0.100
     
    Last edited: Jun 5, 2007
  2. edge

    edge Active Member Moderator

    Yahooo.. Nice new things to play with :)

    I'll be installing it on one of my test servers later today!

    Thank you ISPconfig team!
     
  3. Ben

    Ben Active Member Moderator

    Sounds great.... :)
     
  4. I just installed it a little while ago. :)

    I'm still looking around everything, trying to figure it out. I love the new look!!

    One quick question, though:

    When I install MySQL, do I need to set the root password? Or does ISPConfig do that when it asks for the root password? I did set it, just to be safe, but I'm not sure if I *need* to. No big deal, though, since it sets everything else up for me in the blink of an eye :)
     
  5. till

    till Super Moderator Staff Member ISPConfig Developer

    The installer does not set the root password, you must set the correct current root password in the config file to be able to install ISPConfig. The root password is only used during installation, afterwards PSPConfig uses the mysql user "ispconfig" to connect to the database.
     
  6. till

    till Super Moderator Staff Member ISPConfig Developer

    While I wait that the upload of the vmware image finishes, here some more technical infos how ISPConfig3 works:

    In ISPConfig3, every daemon that allows database based configuration gets the information from the central mysql database. For all other configuration tasks, ISPConfig has a daemon script that runs on every server.

    The server daemon is modular, has plugins and is event based. What does this mean:

    1) If a server provides just email services, only the email code is loaded. The modules configure themself automatically as soon as the files were dropped or symlinked to the directory /usr/local/ispconfig/server/mods-enabled/. So enabling or disabling a complete module means just removing the file or symlink, the other functionality is not affected by this.

    2) Every module "listens" to the database tables and provides events like "mail_box_insert" or "mail_alias_update" to the plugins. The plugins reside in the directory /usr/local/ispconfig/server/plugins-enabled/. The plugins are also configured automatically. When a plugin file is copied or symlinked to this directory, the plugin is loaded and connects to the event listeners of the module.

    This makes customisation and updates very easy.

    I plan to write a plugin writing howto soon to give you some examples.
     
  7. Ben

    Ben Active Member Moderator

    Hey sounds great.... what kind of API do you use to trigger the events?
     
  8. till

    till Super Moderator Staff Member ISPConfig Developer

    It is a custom API that I've written for ISPConfig. It works like this.

    Every plugin has a onLoad() function which is called when the plugin is loaded in the server process. The onLoad function contains the function calls to subscribe for events like this:

    $app->plugins->registerEvent('mail_user_update','maildrop_plugin','update');

    This registers the function named update in the class maildrop_plugin to be called when the event mail_user_update is risen by the mail module or in other words, the function $app->loaded_plugins['maildrop_plugin']->update(....); is executed when something in the mail_user database table has been changed. The "update" functions gets as parameter an associative array with the datarecord before and after the change, so it is easy to e.g. rename users or directories as the old and new username / domain name / etc. is at hand.

    It is possible of course that more then one plugin subscribes for an event like mail_user_update.
     
    Last edited: Jun 5, 2007

Share This Page