Installation ============ django-wiki is an application for Django. This means that you need to setup a basic Django project in order to use django-wiki. .. seealso:: Read more about setting up your first Django project in the `official Django tutorial `__. Pre-requisite: Pillow --------------------- For image processing, django-wiki uses the `Pillow library `_ (a fork of PIL). The preferred method should be to get a system-wide, pre-compiled version of Pillow, for instance by getting the binaries from your Linux distribution repos. Debian/Ubuntu ~~~~~~~~~~~~~ You need to get development libraries which Pip needs for compiling:: sudo apt-get install libjpeg8 libjpeg-dev libpng12-0 libpng12-dev After that, install with ``sudo pip install Pillow``. You might as well install Pillow system-wide, because there are little version-specific dependencies in Django applications when it comes to Pillow, and having multiple installations of the very same package is a bad practice in this case. Mac OS X 10.5+ ~~~~~~~~~~~~~~ `Ethan Tira-Thompson `_ has created ports for OS X and made them available as a .dmg installer. Download and install the universal combo package `here `_. Once you have the packages installed, you can proceed to the pip installation. PIL will automatically pick up these libraries and compile them for django use. Installing ---------- To install the latest stable release:: pip install wiki Install the latest pre-release (alpha, beta or rc):: pip install --pre wiki Upgrading --------- Always read the :doc:`release_notes` for instructions on upgrading. Configuration ------------- Configure ``settings.INSTALLED_APPS`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following applications should be listed - NB! it's important to maintain the order due to database relational constraints: .. code-block:: python 'django.contrib.sites.apps.SitesConfig', 'django.contrib.humanize.apps.HumanizeConfig', 'django_nyt.apps.DjangoNytConfig', 'mptt', 'sekizai', 'sorl.thumbnail', 'wiki.apps.WikiConfig', 'wiki.plugins.attachments.apps.AttachmentsConfig', 'wiki.plugins.notifications.apps.NotificationsConfig', 'wiki.plugins.images.apps.ImagesConfig', 'wiki.plugins.macros.apps.MacrosConfig', Configure ``context_processors`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``django-wiki`` uses the `Django Templates` backend. Add ``'sekizai.context_processors.sekizai'`` and ``'django.template.context_processors.debug'`` to ``context_processors`` section of your template backend settings. Please refer to the `Django templates docs `_ to see the current default setting for this variable. .. code-block:: python TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'APP_DIRS': True, # ... 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.request', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', "sekizai.context_processors.sekizai", ], }, }, ] Database ~~~~~~~~ To sync and create tables, do: :: python manage.py migrate Set ``SITE_ID`` ~~~~~~~~~~~~~~~ If you're working with fresh Django installation, you need to set the SITE_ID .. code-block:: python SITE_ID = 1 User account handling ~~~~~~~~~~~~~~~~~~~~~ There is a limited account handling included to allow users to sign up. Its settings are shown below with their default values. To switch off account handling entirely, set ``WIKI_ACCOUNT_HANDLING = False``. .. code-block:: python WIKI_ACCOUNT_HANDLING = True WIKI_ACCOUNT_SIGNUP_ALLOWED = True After a user is logged in, they will be redirected to the value of ``LOGIN_REDIRECT_URL``, which you can configure in your project's settings.py to point to the root article: .. code-block:: python from django.urls import reverse_lazy LOGIN_REDIRECT_URL = reverse_lazy('wiki:get', kwargs={'path': ''}) Include urlpatterns ~~~~~~~~~~~~~~~~~~~ To integrate the wiki in your existing application, you should ensure the following lines are included in your project's ``urls.py``. .. code-block:: python from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('notifications/', include('django_nyt.urls')), path('', include('wiki.urls')) ] The above line puts the wiki in */* so it's important to put it at the end of your urlconf. You can also put it in */wiki* by putting ``'^wiki/'`` as the pattern. .. note:: If you are running ``manage.py runserver``, you need to have static files and media files from ``STATIC_ROOT`` and ``MEDIA_ROOT`` served by the development server. ``STATIC_ROOT`` is automatically served, but you have to add ``MEDIA_ROOT`` manually:: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) Please refer to `the Django docs `__.