Skip to main content

Peregrine is an opinioned blog system for the Wagtail content management system on the Django Web Framework.

Project description


Peregrine is an opinionated blogging platform which uses the Wagtail CMS on the Django web framework. It uses Wagtail's fantastic StreamField feature to provide fully structured content body element blocks, completely separating content from the presentation layer (CSS, JS, and HTML).

Peregrine requires at least Wagtail 2.0 and Django 2.0.

Are you looking for a more robust system, for example, creating a marketing site? The maintainer of Peregrine also contributes to CodeRedCMS, which offers a lot more bells and whistles. Peregrine will remain a basic blogging system.

Getting Started: the Five Minute Install

These instructions will be fleshed out, but if you want to give it a try, here are the basics.


mkvirtualenv my_blog
pip install peregrine
django-admin startproject my_blog
cd my_blog


Your settings file will be located in my_blog/ if you're using the default Django project layout created by the startproject command above. You'll need to add the sections beneath INSTALLED_APPS and MIDDLEWARE, and add 'wagtail.contrib.settings.context_processors.settings', to your TEMPLATES context processors in your settings to look like this.










        'OPTIONS': {
            'context_processors': [



from django.contrib import admin
from django.urls import include, path, re_path

from wagtail.admin import urls as wagtailadmin_urls
from wagtail.documents import urls as wagtaildocs_urls

urlpatterns = [

    # Wagtail / Peregrine URLs
    path('documents/', include(wagtaildocs_urls)),
    path('cms/', include(wagtailadmin_urls)),
    re_path(r'^', include('peregrine.urls')),

Fire it up!

After you've set up your settings, we need to create your database and a superuser. Issue the following commands from your project root directory.

Only run the command peregrine_initial_site if you are running on a new project, as it loads database fixtures!

python migrate
# ** Be sure to see the note above before running this next command. It isn't necessary if you don't want to. **
python peregrine_initial_site
python createsuperuser
python runserver 0:8000

You should then be able to navigate to http://localhost:8000/cms/ and log in, and start creating!



Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for peregrine, version 0.2.6
Filename, size File type Python version Upload date Hashes
Filename, size peregrine-0.2.6-py3-none-any.whl (29.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size peregrine-0.2.6.tar.gz (19.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page