If you have a fresh instance of Ubuntu 13.04 or later, you can install Wagtail, along with a demonstration site containing a set of standard templates and page types, in one step. As the root user:
curl -O https://wagtail.io/ubuntu.sh; bash ubuntu.sh
This script installs all the dependencies for a production-ready Wagtail site, including PostgreSQL, Redis, Elasticsearch, Nginx and uwsgi. We recommend you check through the script before running it, and adapt it according to your deployment preferences. The canonical version is at github.com/torchbox/wagtail/blob/master/scripts/install/ubuntu.sh.
Once you've experimented with the demo app and are ready to build your pages via your own app you can remove the demo app if you choose.
If you have a fresh instance of Debian 7, you can install Wagtail, along with a demonstration site containing a set of standard templates and page types, in one step. As the root user:
curl -O https://wagtail.io/debian.sh; bash debian.sh
This script installs all the dependencies for a production-ready Wagtail site, including PostgreSQL, Redis, Elasticsearch, Nginx and uwsgi. We recommend you check through the script before running it, and adapt it according to your deployment preferences. The canonical version is at github.com/torchbox/wagtail/blob/master/scripts/install/debian.sh.
Once you've experimented with the demo app and are ready to build your pages via your own app you can remove the demo app if you choose.
Install pip and virtualenvwrapper if you don't have them already. Then, in your terminal:
mkvirtualenv wagtaildemo git clone https://github.com/torchbox/wagtaildemo.git cd wagtaildemo pip install -r requirements/dev.txt
Edit wagtaildemo/settings/base.py
, changing ENGINE to django.db.backends.sqlite3 and NAME to wagtail.db. Finally, setup the database and run the local server:
./manage.py syncdb ./manage.py migrate ./manage.py runserver
We provide a Vagrant box which includes all the dependencies for a fully-fledged Wagtail environment, bundled with a demonstration site containing a set of standard templates and page types. If you have a good internet connection we recommend the following steps, which will download the 650MB Vagrant box and make a running Wagtail instance available as the basis for your new site:
Install Vagrant 1.1+
Clone the demonstration site, create the Vagrant box and initialise Wagtail:
git clone https://github.com/torchbox/wagtaildemo.git cd wagtaildemo vagrant up vagrant ssh # within the SSH session ./manage.py createsuperuser ./manage.py update_index ./manage.py runserver 0.0.0.0:8000
This will make the app accessible on the host machine as localhost:8111 - you can access the Wagtail admin interface at localhost:8111/admin. The codebase is located on the host machine, exported to the VM as a shared folder; code editing and Git operations will generally be done on the host.
@oyvindsk has built a Dockerfile for the Wagtail demo. Simply run:
docker run -p 8000:8000 -d oyvindsk/wagtail-demo
then access the site at http://your-ip:8000 and the admin interface at http://your-ip:8000/admin using admin / test.
See https://index.docker.io/u/oyvindsk/wagtail-demo/ for more details.
If you're not using Ubuntu or Debian, or if you prefer to install Wagtail manually, use the following steps:
With PostgreSQL running (and configured to allow you to connect as the
'postgres' user - if not, you'll need to adjust the createdb
line
and the database settings in wagtaildemo/settings/base.py accordingly),
run the following commands:
git clone https://github.com/torchbox/wagtaildemo.git cd wagtaildemo pip install -r requirements/dev.txt createdb -Upostgres wagtaildemo ./manage.py syncdb ./manage.py migrate ./manage.py runserver
SQLite is supported as an alternative to PostgreSQL - update the DATABASES setting in wagtaildemo/settings/base.py to use 'django.db.backends.sqlite3', as you would with a regular Django project.
Once you've experimented with the demo app and are ready to build your pages via your own app you can remove the demo app if you choose.
PROJECT_ROOT
should be where your project is located (e.g. /usr/local/django) and PROJECT
is the name of your project (e.g. mywagtail):
export PROJECT_ROOT=/usr/local/django export PROJECT=mywagtail cd $PROJECT_ROOT/$PROJECT ./manage.py sqlclear demo | psql -Upostgres $PROJECT -f - psql -Upostgres $PROJECT << EOF BEGIN; DELETE FROM wagtailcore_site WHERE root_page_id IN (SELECT id FROM wagtailcore_page WHERE content_type_id IN (SELECT id FROM django_content_type where app_label='demo')); DELETE FROM wagtailcore_page WHERE content_type_id IN (SELECT id FROM django_content_type where app_label='demo'); DELETE FROM auth_permission WHERE content_type_id IN (SELECT id FROM django_content_type where app_label='demo'); DELETE FROM django_content_type WHERE app_label='demo'; DELETE FROM wagtailimages_rendition; DELETE FROM wagtailimages_image; COMMIT; EOF rm -r demo media/images/* media/original_images/* perl -pi -e"s/('demo',|WAGTAILSEARCH_RESULTS_TEMPLATE)/#\1/" $PROJECT/settings/base.py