
Settings 
========

Woven has a number of configuration options that can be set in your project's
Django settings.py. They are all optional.

::

    #List of hoststrings to setup on as per Fabric.
    HOSTS = [] #eg ['woven@example.com','example.com','10.0.0.1']
    #You can group collections of servers instead of HOSTS as per fabric
    ROLEDEFS = {} #This would be used instead of HOSTS  eg {'staging':['woven@example.com']}
    #The ssh port to be setup. We change the port for security
    HOST_SSH_PORT = 10022 #default
    #User can be defined here instead of in the hosts/roledefs
    HOST_USER = ''
    #Since password login will normally be disabled you can define it here
    #for just ssh key security per host
    HOST_PASSWORD = ''
    
    #As per fabric KEY_FILENAME option to specify a path to an ssh key to use
    SSH_KEY_FILENAME  = ''
    
    #The first setup task is usually disabling the default root account and changing the ssh port.
    ROOT_USER = 'root', #optional - mostly the default administrative account is root
    DISABLE_ROOT = False, #optional - disable the default administrative account
    ROOT_PASSWORD = '', #optional - blank by default
    #The default ssh port, prior to woven changing it. Defaults to 22
    DEFAULT_SSH_PORT = 22 #default
    DISABLE_SSH_PASSWORD = #optional - setting this to true will disable password login and use ssh keys only.
    #Firewall rules (note HOST_SSH_PORT/tcp is always allowed)
    ENABLE_UFW = True #default - setting this to false will disable UFW
    #Any rule(s) defined will overwrite the default
    UFW_RULES = ['allow 80,443/tcp'] #default - see Ubuntu UFW for more details about rules
    ROLE_UFW_RULES = {} # eg {'postgresql':['allow 5432/tcp']}
    
    #The default ubuntu packages that are setup. It is NOT recommended you overwrite these
    #use ROLE_PACKAGES if you want to define all your packages
    HOST_BASE_PACKAGES = [
        'subversion','git-core','mercurial','bzr', #version control
        'gcc','build-essential', 'python-dev', 'python-setuptools', #build
        'apache2','libapache2-mod-wsgi', #wsgi server
        'nginx', #webserver
        'python-imaging', #pil
        'python-psycopg2','python-mysqldb','python-pysqlite2'] #default database drivers
    
    #Package notes:
    #If you define gunicorn in your extra packages then apache and mod-wsgi will not be
    #installed, or will be removed. psycopg2 or mysqldb will only be installed
    #if they are required by your DATABASES engine settings.
    
    #Put any additional packages here to save overwriting the base_packages 
    HOST_EXTRA_PACKAGES = []
    
    #define a list of repositories/sources to search for packages
    #Current just handles Personal Package Archives (PPAs)
    LINUX_PACKAGE_REPOSITORIES = [] # eg ['ppa:bchesneau/gunicorn']
    
    #Role packages give you complete flexibility in defining packages with ROLEDEFS.
    #By default any role that does not have role packages defined installs the HOST_BASE_PACKAGES + EXTRA_PACKAGES instead
    ROLE_PACKAGES = {} #eg ROLE_PACKAGES = {'postgresql':['postgresql']}
    
    #Apache list of modules to disable for performance and memory efficiency
    #defaults to the following:
    APACHE_DISABLE_MODULES=['alias','auth_basic','authn_file','authz_default','authz_groupfile',
                              'authz_user','autoindex','cgid','dir',
                          'setenvif','status'],         
    #Virtualenv/Pip
    DEPLOYMENT_ROOT = ''# defaults to /home/$USER.

    PIP_REQUIREMENTS = [] # list of text pip requirements files (not pybundles). Defaults to any file in the setup.py directory with `req` prefix
    # Note: Woven will also look for zip files matching the requirements in the dist directory.
    #you can use the bundle management command to create these.
    
    PROJECT_APPS_PATH = '' #a relative path from the project package directory for any local apps. See also the wsgi template.
    
    #Application media - as per build_static app
    STATIC_URL = '' #by default this is set to the ADMIN_MEDIA_PREFIX
    STATIC_ROOT = '' #by default this gets set to the admin media directory if admin is used
    
    #Database migrations
    MANUAL_MIGRATION = False #Manage database migrations manually


