Start up configuration for KDL Django based projects.
This project uses the technologies outlined in our Technology Stack and is configured to use Vagrant for local development and Fabric for deployment. The project also includes the choice of Bulma or Foundation.
Pre-configured options include LDAP Authentication, GeoDjango, ActiveCollab Digger, Wagtail and Haystack
- Clone this repository:
git clone git@github.com:kingsdigitallab/django-bare-bones.git
- Go into the
django-bare-bones
directory - Run the bootstrap command and follow the prompts to set up the project:
./bootstrap.sh
- The bootstrap script will then:
- Check your development environment, and install/update tools as necessary
- Clone a new copy of the repo into PROJECT_KEY-django. It will use the same branch you are on now.
- Populate settings, URLs and apps selected during the installation
- Remove all git configurations from the project, so that it can be added to a new repo
- Add a correct readme file to the project
- Enter the new project directory
cd ../PROJECT_NAME-django
- Edit local settings and configuration files as needed
Bootstrap.sh accepts the following arguments:
--help
: Displays help text--local
: Copies your local working copy of django-bare-bones rather than cloning from git.--no-dep-check
: Disables dependency checking. Use with extreme caution - this will cause the script to fail if a dependency is not installed. Never use for production-ready projects.
To use this script successfully you will need the following on the host machine:
- Python >= 3
- Ansible >= 2.3
- Vagrant >= 1.9
- VirtualBox >= 5.0
To provision a new local development virtual machine, run the command vagrant up
. To SSH into the virtual machine, run vagrant ssh
.
The provisioning script will create a default superuser login:
username: vagrant
password: vagrant
If you selected kdl-ldap
in the bootstrap script, all members of the kdl-staff
ldap group can login as superuser. All members of the group entered in the bootstrap script will be able to login as staff. Note: LDAP authentication will only work within the college firewall.
The default virtual machine is configured with:
- 1 Core, 2GB RAM
- Ubuntu 16.04 LTS
- Python 3
- ElasticSearch 5/Java 8 (256-2048M Heap)
Detailed instructions for initial deployment are available in the shared drive under Group Share/Systems/Servers
.
For an initial deployment:
- Run
fab <instance> setup_environment
- Run
fab <instance> deploy:<branch>
as normal - the script will prompt for further details as required - Update UWSGI configuration to reference the newly deployed application
For an update deployment:
- Run
fab <instance> deploy:<branch>
- Ctrl-c does not work when a whiptail window is visible. Cancel button replicates this functionality
- Fix issues
- Add editor config files
- Fixed tox/travis config
- Modified Pipenv configuration to no longer store the virtualenv under the project directory (See https://www.virtualbox.org/ticket/8761 )
-
Tested with Django 2.1.5 & Wagtail 2.4
-
Replaced pip with pipenv & bower with npm, please familiarise yourself with those two tools
-
Please make sure you install python packages with pipenv and NOT pip from now on
-
requirements.txt and requirements-dev.txt are no longer used. Pipfiles replace them.
-
please ensure that Pipfile and Pipfile-lock are added to the repository
-
NEVER edit pipfile-lock directly, this file is generated by pipenv lock / install
-
Before deploying to a server check that the pipenv is installed by root (pip install pipenv)
-
Replaced bower with npm. Please use npm i X to install a new js / css library.
-
reason: bower is deprecated and npm is more deterministic when deploying versions to servers
-
libraries are installed into node_modules folder, which is excluded from repo with .gitignore, node_modules therefore replaces assets/vendors
-
package.json and package-lock.json now replace bower.json, they are generated from npm commands
-
make sure those two files are added to your github repo
-
before deploying with fabfile make sure npm is installed on the VM
-
vue.js is now included by default
-
google analytics only loaded when GA_ID is set
-
NOTE that wagtail 2.4 no longer supports front-end search page
-
http://docs.wagtail.io/en/latest/releases/2.0.html#deprecated-search-view
- Django 2 support
- Complete rewrite with improved UI
- Added fix for SSH hanging upon login with virtualbox provider.
- Fixed django version to 1.10. 1.11 has a breaking change for wagtail. We should try to keep these app versions fixed where possible.
- Fixed installation of setuptools which is failing due to (not) missing dependencies. Hopefully this is a temporary bug with setuptools. Fixed dependencies are in requirements-setuptools-fix.txt.
Testing!!!!