I am an Open Source enthusiast who loves the Internet. I love to create things for the web which are interesting and fun.
Wagtail cookiecutter Foundation
A comprehensive starter template for the Django based Wagtail Content Management System. A cookiecutter template with a comprehensive suite of apps to use for building your site. The project uses Foundation Sass, Bower for package management, Deployment and provisioning using Ansible and Vagrant for easy setup of development environment.
Why this Project?
Let's pretend you want to create a Wagtail CMS project. Rather than using wagtail start and then editing the results to include your name, email, and various configuration issues that always get forgotten until the worst possible moment, get cookiecutter to do all the work.
- Open Source
- It provides a comprehensive suite of apps to use for building your site. The apps provided are pages, blog, contact, events, photo gallery, documents, products, feeds, people, faqs and utils.
Create awesome UI with Foundation Sass already setup for you to work on.
Frontend dependency management with Bower.
Image compression with Grunt.
Server provisioning and deployment using Ansible that has been extensively tested on Digital Ocean and Linode VPS. You can drive the Ansible playbooks using a set of make commands.
Vagrant for easy setup of development environment.
A Django content management system focused on flexibility and user experience
A command-line utility that creates projects from cookiecutters (project templates).
The most advanced responsive front-end framework in the world.
$ pip install cookiecutter $ cookiecutter https://github.com/chrisdev/wagtail-cookiecutter-foundation.git
Cloning into 'wagtail-cookiecutter-foundation'... remote: Counting objects: 611, done. remote: Compressing objects: 100% (13/13), done. remote: Total 611 (delta 3), reused 0 (delta 0), pack-reused 598 Receiving objects: 100% (611/611), 423.98 KiB | 0 bytes/s, done. Resolving deltas: 100% (264/264), done. Checking connectivity... done. project_name (default is "Wagtail Project")? repo_name (default is "wagtail_project")? version_control_system (default is "hg")?, vcs_host (default is "bitbucket")?, author_name (default is "Your Name")? email (default is "Your email")? description (default is "A short description of the project.")? timezone (default is "UTC")? now (default is "2015/04/16")? year (default is "2015")? production_host_name (default is example.org)? use_ssl_in_production (default is true)? staging_host_name (default is staging.example.org)? use_vagrant_staging (default is true)? deploy_user_name (default is django) django_admin_user (default is my_admin_user)
You can change the default values with your project specific details.
Setup for local development
$ make all
$ vagrant up $ vagrant ssh
This command will create your project's virtual environment, install all pip dependencies, create the development database, run migrations and load initial data to database, install front-end dependencies and finally start the development server for you.
Now you have a solid foundation to build your project upon.
Provisioning and Deployment
You project comes with a suite of Ansible playbooks to support the provisioning your servers and deploying changes to production and staging. The detailed process is present in project docs.
Is it being used anywhere?
ChrisDev have developed various solutions for its clients with this cookiecutter. Website of the Ministry of Foreign and CARICOM Affairs of Trinidad and Tobago is being redeveloped with this cookiecutter. Various companies working with Django and Wagtail CMS are using it to start their project. The projects generated with it are highly customizable and developers can customize them according to their needs.
By Parbhat Puri