Enter a topic name to show or a new topic name to create; then press Enter

LynxWiki Download

  1. The LynxWiki application is available for download here

Prerequisite Download

  1. IronPython must be downloaded and installed before deployment

Create Virtual Directory

  1. Create a physical path to hold the Virtual Directory you will create in the next step
    1. I use: C:\VirtualDir\LynxWiki
  2. In IIS Manager create a Virtual Directory below the Default or Main Web site called "LynxWiki" and assigned it to the physical path previously created.

Create LynxWiki  AppPool

  1. Create the application pool to be used by LynxWiki
    1. Enable 32-Bit Applications should be set to True
      1. The application uses highly complex regular expressions that when run in 32-bit process require milliseconds, but when run in 64-bit processes take between 30 and 80 seconds to complete
    2. The Identity should remain at ApplicationPoolIdentity
    3. Idle time-out (minutes) should be set to 1220
      1. The ParserEngine is a singleton and takes 2-3 seconds to initialize. Using this setting minimizes how often it must be created.

Move Download to Virtual Directory

  1. Unzip the contents of the download file into the physical path created for the Virtual Directory.
  2. Inspect the contents of the Virtual Directory in IIS Manager. It should appear as below

Configure Attachment Directory Security

  1. In a Windows File Explorer open the Security Permissions Property for the Attachments Folder
  2. Select Edit and then Add
  3. In the Select Users or Groups dialog enter IIS AppPool\LynxWiki
    1. Note that this is a special user not locatable in the Advanced User dialog

  1. After clicking OK in the Select Users or Groups dialog ensure that the permissions are checked for the LynxWiki user as shown in the Permissions dialog below

  1. It is not necessary to change any settings in for the upload directory, but the security dialog for that directory shows inherited special permissions for the LynxWiki user

  1. Those special permissions above result in the Advanced security settings show for the user in the upload directory below.

  1. It is necessary to change permissions for the docs, images and misc directory
    1. Open the Advances Security Settings dialog and click Change Permissions.
    2. The dialog changes and includes 2 checkboxes and 3 buttons
      1. ensure the checkboxes are unchecked and press Edit...
      2. In the Windows Security dialog press Add to convert inherited permissions to explicit permissions

  1. The Advanced Security Settings dialog will now show as being not inherited
  2. There may be multiple entries for the LynxWiki user based on different permissions or scope

  1. Edit each entry for the user LynxWiki so that they are the same as the dialog below
  2. When all entries are the same they will be combined into a single entry with a scope of This folder, subfolders and files
    1. Ensure the checkbox for Traverse folder / execute file is unchecked

Configure User Database for Initial Use

  1. The User database is not included in the release as it is auto-generated by the application on first startup.
  2. It is necessary to edit the DataSource of the DefaultConnection in the web.config file so that it points to the correct Sql locator for the server
  3. Do not change the AttachDbFilename, of the InitialCatalog values
  4. Update the Authentication Settings in IIS Manager so that they match the dialog below

Other web Configuration Steps

  1. Update the Output Caching settings to match the entries below

Configure User Database with Roles

  1. After the application has been run once and the User database has been successful created and the user that will be the administrator has been registered (using the link on the application at the upper right), open the database in your SQL client.
  2. Open the table webpages_Roles and add the roles WikiAdmin and WikiUser
  3. Open the table UserProfile and determine the ID of the user that will be assigned the WikiAdmin role
  4. Open the table webpages_UserInRoles and add the entry to assign the admin user to the admin role and user role

Rebuild Search Index

  1. While logged in as the admin user go to the SearchPage and select the Rebuild Index option

Update Web.Config

Version - Add the following keys to appSettings in the web.config file:

    <add key="PythonLibPath" value="C:\Program Files (x86)\IronPython 2.7\Lib"/>
    <add key="HostWikiPath" value="C:\LynxWiki-root\LynxWiki\" />
    <add key="HostWikiPathDev" value="C:\LynxWiki-root\LynxWiki\" />
    <add key="HostWikiPath" value="C:\VirtualDir\LynxWiki\" />
    <add key="SiteUrl" value="http://localhost/LynxWiki/"/>
    <add key="SiteUrlDev" value="http://localhost/LynxWiki/"/>
    <add key="SiteUrlProd" value=""/>
    <add key="WikiRoot" value="WikiRoot\WikiDir"/>
    <add key ="RssFeed" value="http://localhost/LynxWikiSyndication/api/RssFeed"/>
    <add key ="RssFeedDev" value="http://localhost/LynxWikiSyndication/api/RssFeed"/>
    <add key ="RssFeedProd" value=""/>
    <add key ="AtomFeed" value="http://localhost/LynxWikiSyndication/api/AtomFeed"/> 
    <add key ="AtomFeedDev" value="http://localhost/LynxWikiSyndication/api/AtomFeed"/>
    <add key ="AtomFeedProd" value=""/>

The keys ending with Dev and Prod are just there for convenience. The keys in use are the ones without the Dev of Prod postfix. The RssFeed and AtomFeed keys are optional and only required if LynxWikiSyndication has been installed in its own web application. See LynxWikiSyndicationInstallationNotes for instructions

Add Video Directory

Version - Add a video directory under the upload directory and configure it the same as the docs directory

Update Web.Config

Version - Modify the httpRuntime setting to add: max RequestLength="30000"

jsMath support for Formula creation

Verson adds jsMath to LynxWiki

Malicious Activity Controls

Version added functionality for controlling malicious activity: see LynxWikiMaliciousActivityControls

Export Wiki Directory support

Version added capability to export a wiki directory. A setting was added to web.config

    <add key="EmoticonUrl" value="/LynxWiki/"/>

to manage emoticons better than was being done previously.

Creative Commons License Support

Version added the capability to assign Create Commons licenses to a topic. See LynxWikiCreativeCommons for more details. The web.config has had the following settings added:

    <!-- Options for key="CreativeCommons" are on|off -->
    <add key="CreativeCommons" value="on"/>
    <!-- DefaultLicense should be one of CC-BY|CC-BY-ND|CC-BY-SA|CC-BY-NC|CC-BY-NC-ND|CC-BY-NC-SA - other may be added by extending the xslt file-->
    <add key="DefaultLicense" value="CC-BY-SA"/>
    <add key="ValidLicense" value="CC-BY:CC-BY-SA:CC-BY-NC:CC-BY-NC-ND:CC-BY-NC-SA"/>

Google Plus Badge

Version added the canonical meta tag and the option to display a Google Plus badge in the Admin menu

    <add key="GooglePlusBadge" value="true"/>

Admin Page

Version added support for managing users and roles via an Admin Page. See LynxWikiAdminPage. The role WikiAdmin is required for using this functionality. Another roles used is WikiUser. Both of these roles are created on database initialization, if they do not already exist.

The web.config has a new optional key added in this version:

    <add key="BootstrapAdminUser" value="jwd"/>

Once this user is created by registering in the application the next startup of the application will assign the user specified to the WikiAdmin role.

Privacy Policy - Terms & Conditions

Version added pages in the Home controller for Privacy Policy and Terms & Conditions. When creating a new installation these should be updated to match your site requirements and information.

Advanced Attachment Capabilities

Version adds significantly more capabilities for Attachments.

Update Web.Config

Version adds a MaxAttachmentSize parameter to the configuration so that control of file upload size will respect error management

    <!-- The key system.web::httpRuntime maxRequestLength should be greater than MaxAttachmentSize for error processing to work correctly -->
    <!-- The key system.webServer::security::requestFiltering::requestLimits maxAllowedContentLength should be greater than or equal the key system.web::httpRuntime maxRequestLength -->
    <add key="MaxAttachmentSize" value="50000000"/>

Version: 25   Revised: 2013-08-27 08:50:00 Last Updated by: jwd Rename Show Links to Topic