Knowledgetree Document Management System on a WHS

I setup Knowledgetree on my WHS because I didn’t like other options and it was free. I didnt want to use the canned installation because I didn’t want Apache and openoffice running in the background taking up my ram.

KT = Knowledgetree
WHS = Windows Home Server

  1. Setup a shared directory for kt with duplication, in my example I am going to use DMS you can use DMS$ if you want it hidden from browsing
    1. Add the users that are going to use KT
  2. Install the WHS PHP Extension
    1. http://www.mediasmartserver.net/downloads/add-ins/WHSPHP_1.0.4.zip
  3. Install WHS MySql Extension
    1. http://www.mediasmartserver.net/downloads/add-ins/MySqlInstallerForWHS_0.0.8.zip
    2. Change your mysql root password at http://localhost/pma
  4. Enable curl in php.ini
    1. Edit c:\php5\php.ini and add extension=php_curl.dll under the other extensions
  5. Install SUN Java 1.6
    1. http://www.java.com/en/download/manual.jsp
  6. Download the KT Source Code its about 60mb, the Windows version.
    1. http://www.knowledgetree.com/products/opensource/downloadopensource
  7. Extract KT to d:\dms
    1. Add full rights for the “Windows Home Server Users” group to d:\dms
  8. Create a virtual directory under the default website in IIS called DMS and using d:\dms as the document root
    1. Disable anonymous authentication and enabled basic authentication
  9. Run the KT setup at http://localhost/dms
  10. Setup the httpsso for single sign-on to your whs users.
    1. http://forge.knowledgetree.com/gf/project/httpsso/
    2. you must first manually make the matching user in KT first.
  11.  Scheduled Tasks 
    1.  ktscheduler – runs internal tasks
      1. Run: c:\php5\php.exe d:\dms\bin\scheduler.php
      2. Start in: d:\dms\bin
      3. Run As: NT AUTHORITY\SYSTEM
      4. Run every 15 minutes for 24 hours
    2. ktlucene
      1. Run: “C:\Program Files\Java\jre6\bin\java.exe” -jar D:\DMS\bin\luceneserver\ktlucene.jar
      2. Start in: D:\DMS\bin\luceneserver
      3. Run As: NT AUTHORITY\SYSTEM 
      4. Run at system startup
      5. Uncheck the stop the task if it runs for 72 hours
    3. ktDbBackup
      1. Run: C:\php5\php.exe d:\dms\ktdbbackup.php
      2. Start In: d:\dms
      3. Run As: Administrator (needs network access for backups)
      4. Run every 12 hours for 24 hours

    
    #stephen
    #www.stephenjc.com
    #kt backup for whs
    #dump sql backup of kt to document root
    #dump a quick csv to help convert files back to their original names
    
    #ktconfig
    $ktconfig = parse_ini_file("config/config.ini");
    
    $mysqlLink = mysql_connect($ktconfig["dbHost"],$ktconfig["dbUser"],$ktconfig["dbPass"]);
    if (!$mysqlLink) {
        echo "Unable to connect to DB: " . mysql_error();
        exit;
    } 
    if (!mysql_select_db($ktconfig["dbName"])) {
        echo "Unable to select mydbname: " . mysql_error();
        exit;
    }
    
    #get document location from db
    
    $sql = 'SELECT * FROM `config_settings` WHERE item = \'documentRoot\'';
    $result = mysql_query($sql);
    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }
    $row = mysql_fetch_assoc($result);
    $docHome = $row["value"];
    
    #dump database to document root
    system('mysqldump --user ' . $ktconfig["dbAdminUser"] . ' --password=' . $ktconfig["dbAdminPass"] . ' ' . $ktconfig["dbName"] . ' >' . $docHome . '\ktdbbackup.sql');

    #create csv to restore original documents just in case
    $sql = 'select * from documents, document_content_version, users where documents.status_id = 1 and document_content_version.document_id = documents.id and documents.creator_id = users.id';
    $result = mysql_query($sql);
    if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
    }
    if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
    }

    $mycsvBackup = $docHome . "\ktbackup.csv";
    $fh = fopen($mycsvBackup, 'w');
    fwrite($fh,"Original_Name,KT_StoragePath,Owner,md5hash\n");
    while ($row = mysql_fetch_assoc($result)) {
    fwrite($fh,$row["filename"] . "," . $row["storage_path"] . "," . $row["username"] . "," . $row["md5hash"] . " \n");
    }
    fclose($fh);
    ?>

    Acer H340 WHS Recovery

    The directions in the manual are wrong to recover the Acer H340.

    1. Shut off your WHS
    2. Hold the recovery button on the back and turn on your WHS.
    3. Let go of the recovery button when the red i starts to blink
    4. Wait about 5 to 10min until the recovery image boots and you get network link lights on the back of the unit
    5. Run the recovery software from a Windows computer.
    6. If your computer does not see your WHS still do the following.
      1. Plug into the same switch
      2. disable all other network cards including wireless
      3. disable your firewall