wiki:SetupGuide

Version 2 (modified by dozzie, 8 years ago) (diff)

--

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, two differences 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.
  • DashWiki needs few things in database already. For this to happen, deploy.py script was created. It replaces manage.py syncdb command (but since syncdb is designed to be no-harm, it can be called anyway).

Short guide for WSGI

  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
  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. Configure Apache
  6. Create settings_local.py in source directory (see first section of ./deploy.py for reference).
    Variables you could want to override:
    • 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 Europe/Warsaw)
  7. If your database choice is not SQLite, create database user and database itself. (SQLite will create database file automatically.)
  8. Ensure that Apache can write to following directories:
    • anything mentioned in DASHWIKI_LOGGING_CONFIG
    • DASHWIKI_CACHE_ROOT
    • directory for database file (if the engine was SQLite)
  9. Run ./deploy.py in source directory.
  10. Create some users:
    ./manage.py useradd $username user.email@example.com
    ./manage.py userpw $username