wiki:SetupGuide
Last modified 5 years ago Last modified on 04.10.2013 12:21:29

DashWiki setup guide

DashWiki in principle is a typical Django web application, so pretty much any generic installation guide will do (e.g. official one).

There are, however, small difference from the rest of applications. DashWiki uses settings_local.py for installation-specific settings. You still can edit main settings file (dashwiki/settings.py), but optional local one is more elegant solution.

Short guide for WSGI under Apache

  1. Install required Python modules:
    • Django
    • YAML (optional if your configs are going to be written in JSON)
    • pysqlite (or other Django-supported database module); see list of supported modules for details
    • currently: other Python modules, depending on list of installed plugins (at the moment, mainly rrdtool module)
  2. Install Apache and required modules:
    • mod_wsgi
  3. Download DashWiki's source code:
    git clone \
      --branch production \
      http://dashwiki.jarowit.net/code/dashwiki.git \
      dashwiki
    
  4. Put the code to a known place, e.g. /srv/dashwiki
  5. Create settings_local.py in source directory (see first section of ./deploy.py for reference).
    Variables you could want to override:
    • ALLOWED_HOSTS -- required; list of hostnames under which this instance is available (they say you shouldn't set it to * in production)
    • DASHWIKI_LOGGING_CONFIG -- file (JSON or YAML, detected by extension) that configures logging subsystem
    • DASHWIKI_PLUGINS_DIR -- list of directories that will contain protocol plugins
      • defaults to single-element list of $source/plugins
    • DASHWIKI_CACHE_ROOT -- directory for storing files fetched from remote or otherwise generated by DashWiki (mainly: for graphs)
      • defaults to $source/cache
    • DATABASES -- database configuration (see Django documentation for details)
      • default value:
        DATABASES = {
          'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': '$source/db/dashwiki.db',
          }
        }
        
    • TIME_ZONE (defaults to UTC)
  6. If your database choice is not SQLite, create database user and database itself. (SQLite will create database file automatically.)
  7. Configure Apache
  8. Ensure that Apache has access to following directories:
    • write permission for anything mentioned in DASHWIKI_LOGGING_CONFIG
    • write permission for DASHWIKI_CACHE_ROOT directory
    • write permission for directory for database file (if the engine was SQLite)
    • read permission for settings_local.py
  9. Run ./deploy.py in source directory. It will run syncdb for you (and will create settings_local.py if it doesn't exist yet; note that the file will be created with 0600 permissions).
  10. Create some users:
    ./manage.py useradd $username user.email@example.com
    ./manage.py userpw $username