djangocms installer creates a complete and fully featured django CMS project.
By default it:
- creates the project
- installs requirements
- creates database
- (optionally) creates a sample database
- (optionally) copy a provided set of templates
- write the requirements file to the project directory
djangocms installer works as a batch script and as a command line wizard.
Batch mode (default)¶
In batch mode djangocms installer will use the arguments provided to create and configure the project. See the complete list of Arguments reference for reference.
Wizard mode works by asking relevant questions to the user; it can be invoked with
djangocms -w -p /path/whatever project_name
A wizard will ask for the missing parameters; for most of them sane defaults are provided, but you’re free to adapt to your own needs. The only required parameters are the database name, in url format, and the project languages, as a comma separated list.
By using the -R arguments, djangocms-installer won’t create a new django CMS instance but will print to stdout the list of packages required to properly setup the virtualenv. This can be helpful to customize the virtualenv:
Dump the list of requirements:
$ djangocms -p /path/whatever project_name -R > requirements.txt
Edit requirements.txt according to your needs
Run the installer again providing the customized requirements file:
$ djangocms -r custom_requirements.txt -p /path/whatever project_name
or install the requirements manually and execute the installer with n argument:
$ pip install -r custom_requirements.txt $ djangocms -n -p /path/whatever project_name
See Arguments reference for arguments reference
Config file mode¶
In config file mode, all (or some) options can be provided via an external configuration file.
See a complete example with all available arguments.
Is it possible to either provide all the values in the config file:
djangocms --config-file /path/to/config.ini project_name
Or just some, or overriding by using the command line arguments:
djangocms --config-file /path/general-config.ini -p /path/other/proj -s -q project_name
If config.ini not contains no-input = true and -q argument isn’t set then one act as a placeholder with default values for wizard.
Dump config files¶
Values passed to the installer can be dumped for later reuse:
djangocms --config-dump /path/config.ini -p . project_name
if installation fails dump can be used to fix some arguments and re-run installer with dumped config:
djangocms --config-dump /path/config.ini --db postgres://wrong-usr:pwd@host/db -p . project_name # fails djangocms --config-file /path/config.ini --db postgres://correct-user:pwd@host/db -p . project_name # succeed
If want or need to provide custom settings before the initial database sync is run, use –extra-settings parameter. To use this option, pass the path to a file as argument: its content is going to be appended to the generated settings file.
Create an empty virtualenv:
pip install djangocms-installer
pip install https://github.com/nephila/djangocms-installer/archive/master.zip
Execute the wizard:
Answer the wizard questions;
Change to your project directory:
cd /path/whatever project_name
Modify the provided settings. You will want to modify at least the language and the template settings;
Execute the project:
(whatever) $ python manage.py runserver
Use different templates directory¶
You can create the base project with a custom templateset by using the
Be aware that while djangocms installer will copy the files for you, it won’t update the
parameter, so you’ll need to modify that after installation.
You can optionally install just Django and django CMS without any additiona plugin by using the
--no-plugins option; this will allow you to further customise your installation.