diff options
Diffstat (limited to 'docs/install-1.x.rst')
-rw-r--r-- | docs/install-1.x.rst | 352 |
1 files changed, 352 insertions, 0 deletions
diff --git a/docs/install-1.x.rst b/docs/install-1.x.rst new file mode 100644 index 0000000..b31ac25 --- /dev/null +++ b/docs/install-1.x.rst @@ -0,0 +1,352 @@ +.. -*- coding: utf-8 -*- + +==================== +Chimère installation +==================== + +:Author: Étienne Loks +:date: 2012-02-15 +:Copyright: CC-BY 3.0 + +This documents presents the installation of Chimère. + +----------------- +Base installation +----------------- + +Installation +------------ + +Prerequisites +************* + + - `apache <http://www.apache.org/>`_ version 2.x with [mod_python http://www.modpython.org/] 3.x + + - `python <http://www.python.org/>`_ versions 2.6 or 2.7 + + - `geodjango <http://www.djangoproject.com/>`_ version 1.0 + + - `postgres <http://www.postgresql.org/>`_ version 8.x + + - `gettext <http://www.gnu.org/software/gettext/>`_ + + - `psycopg2 <http://freshmeat.net/projects/psycopg/>`_ + + - `Python Imaging Library <http://www.pythonware.com/products/pil/>`_ + + - `Beautiful Soup <http://www.crummy.com/software/BeautifulSoup/>`_ + + - `lxml <http://lxml.de/>`_ + +geodjango is a part of django version 1.0 but it has some specific (geographically related) additionnal dependencies: + + - `geos <http://trac.osgeo.org/geos/>`_ 3.0.x + + - `proj.4 <http://trac.osgeo.org/proj/>`_ 4.4 to 4.6 + + - `posgis <http://postgis.refractions.net/>`_ versions 1.2.1 or 1.3.x + + - `gdal <http://www.gdal.org/>`_ + + +Optionaly (but recommanded): + + - `tinymce <http://tinymce.moxiecode.com/>`_ + + - `gpsbabel <http://www.gpsbabel.org/>`_ + + +The simpliest way to obtain these packages is to get them from your favorite Linux distribution repositories (for instance python, python-django, python-beautifulsoup, tinymce, apache2, libgeos-3.2.0, proj, gdal-bin, python-gdal, python-lxml, python-psycopg2, python-imaging, gettext, postgresql-8.4 and postgresql-8.4-postgis packages for Debian Squeeze). If these packages do not exist in your distribution's repository, please refer to the applications' websites. + +Database configuration +********************** + +Now that postgres and postgis are installed, you need to create a new user for chimere:: + + createuser --echo --adduser --createdb --encrypted --pwprompt chimere-user + +Then, you have to create the database, and initialize the geographic types (adapt the paths accordingly to your needs):: + + createdb --echo --owner chimere-user --encoding UNICODE chimere "My Chimère database" + createlang plpgsql chimere + psql -d chimere -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql + psql -d chimere -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql + +Getting the sources +******************* + +The last "stable" version is available in this `directory <http://www.peacefrogs.net/download/>`_. + +Another solution is to get the last git version:: + + git clone git://www.peacefrogs.net/git/chimere + git tag -l # list tagged versions + git checkout v1.0.0 # checkout the desired version + + +Install the sources +******************* + +Unpack and move the files in an apache user (www-data for Debian) readable directory:: + + sudo mkdir /var/local/django + cd /var/local/django + sudo tar xvjf /home/etienne/chimere-last.tar.bz2 + sudo chown -R etienne:www-data chimere + +In your chimere application directory create settings.py to fit to your configuration. +A base template is provided (settings.py.example):: + + cd chimere/chimere/ + cp settings.py.example settings.py + vim settings.py + #### + PROJECT_NAME = u'Chimère' + + ROOT_PATH = '/var/local/django/chimere/chimere/' # path to the installation of Chimère + + SERVER_URL = "http://www.peacefrogs.net/" # root of the web address of Chimère + EXTRA_URL = 'chimere/' # suffix to the web address of Chimère + BASE_URL = SERVER_URL + EXTRA_URL + EMAIL_HOST = 'localhost' # smtp of an email server to send emails + + TINYMCE_URL = SERVER_URL + 'tinymce/' + + # chimere specific + DEFAULT_CENTER = (-1.679444, 48.114722) # default center of the map + EPSG_PROJECTION = 900913 # projection used for data exchange (JSON flow) + EPSG_DISPLAY_PROJECTION = 4326 # projection used to display on the map + + # default id category to check on the map + DEFAULT_CATEGORIES = [1] # list of default category ids checked on the map + + # JS definition of the main map cf. OpenLayers documentation for more details + # to begin you can leave the default OpenStreetMap map rendered with Mapnik + MAP_LAYER = "new OpenLayers.Layer.OSM.Mapnik('Mapnik')" + + # setting the appropriate language code for your site + LANGUAGE_CODE = 'en-gb' + + # database configuration + DATABASE_ENGINE = 'postgresql_psycopg2' # leave it to 'postgresql_psycopg2' + DATABASE_NAME = 'chimere' # database name + DATABASE_USER = 'chimere-user' # database user + DATABASE_PASSWORD = 'mypassword' # database password + DATABASE_HOST = '' # set to empty string for localhost + + DATABASE_PORT = '' # set to empty string for default + + #### + +If you want to use tinymce don't forget to make it available to Chimère. + +In this same chimere directory, make a symbolic link to django's basic styles (do not forget to change the path according to your configuration, it is the last time I will recall it to you. Next time, you are on your own!):: + + ln -s /usr/share/pyshared/django/contrib/admin/media/ . + +Compiling languages +******************* + +If your language is available in the locale directory of chimere, you will just need to get it compiled. Still being in the chimere directory, this can be done with (here, "de" stands for german. Replace it with the appropriate language code):: + + django-admin compilemessages -l de + +If your language is not available, feel free to create the default po files and to submit it, contributions are well appreciated. Procedure is as follows : + +You first need to create the default po file (of course, replace "de" according to the language you chose to create):: + + django-admin makemessages -l de + +There should now be a django.po file in locale/de/LC_MESSAGES. Complete it with your translation. + +Now that the translation file is completed, just compile it the same way you would have if the language file was already available. + +Database initialisation +*********************** + +Create the appropriate tables (still being in chimère application directory):: + + ./manage.py syncdb + +You will be prompted for the creation of an administrator account (administration can be found at: http://where_is_chimere/admin). +The database is set, congratulations! + +Webserver configuration +*********************** + +Apache configuration with mod_wsgi +++++++++++++++++++++++++++++++++++ + +Install mod_wsgi for apache:: + + sudo apt-get install libapache2-mod-wsgi + + +Create and edit a configuration for Chimère:: + + sudo mkdir /var/local/django/chimere/apache + sudo cp /var/local/django/chimere/docs/conf/django.wsgi /var/local/django/chimere/apache/django.wsgi + sudo cp /var/local/django/chimere/docs/conf/apache-wsgi.conf /etc/apache2/sites-available/chimere + +Adapt the files django.wsgi (with the correct sys path) and chimere. + +To activate the website reload apache:: + + sudo a2ensite chimere + sudo /etc/init.d/apache2 reload + +Apache configuration with mod_python +++++++++++++++++++++++++++++++++++++ + +Install mod_python for apache:: + + apt-get install libapache2-mod-python + +Create and edit a configuration file for Chimère:: + + sudo vim /etc/apache2/sites-available/chimere + +Insert Apache directives for your installation:: + + # part of the address after the root of your site + <Location "/chimere/"> + # directory path to the father of the installation of Chimère + PythonPath "['/var/local/django/'] + sys.path" + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE chimere.settings + # set it to on or off if in test or production environment + PythonDebug On + # put differents interpreter names if you deploy several Chimère + PythonInterpreter chimere + </Location> + +To activate the website reload apache:: + + sudo a2ensite chimere + sudo /etc/init.d/apache2 reload + + +Now that you have gone through ALL this configuration procedure (which was not that hard after all) you can configure the site. + +------------------ +Base configuration +------------------ + +When you have installed the application there is a few simple steps to follow to configure *your* Chimère. + +Most of theses steps are done in the administration pages accessible at : http://where_is_chimere/admin +To access theses pages you have to identify you with login and password provided at the initialization of the database. + +Creating users +-------------- + +If you are not the only administrator of this Chimère installation you have to create account for the other users. +Currently the process has to be done manualy. + +Simply click on the Add button near Users. Give a name and a default password (the user can change it on in own later). +Then complete the other pieces of information. +Check the case: Member of the staff (or this user will not be able to log to this administration site). +To simply give this user correct rights don't add permission manualy but make this user member of a group. +Two default group are proposed: application administrator and moderator. + +Detail of rights for default user/groups: + ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Task | Application owner | Application administrator | Moderator | ++=========================================+===================+===========================+===========+ +| User add/modify/delete | yes | no | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Group add/modify/delete | yes | no | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Property model add/modify/delete | yes | no | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| News add/modify/delete | yes | yes | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Area add/modify/delete | yes | yes | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Icon add/modify/delete | yes | yes | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Category/Subcategory add/modify/delete | yes | yes | no | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Point Of Interest add/modify/delete | yes | yes | yes | ++-----------------------------------------+-------------------+---------------------------+-----------+ +| Route add/modify/delete | yes | yes | yes | ++-----------------------------------------+-------------------+---------------------------+-----------+ + +Setting the welcome page +------------------------ + +The message has to be set by updating the file templates/welcome.html. +You only have to change the message at the begin of #detail_content. + +Creating property models +------------------------ + +A basic installation of Chimère only permit to associate a name, a category and (for the point of interest) a picture for each point of interest and each route. You may want to add more fields like phone number or opening hours. For that all you have to do is to add a new property model. +The administration ask you for name, order (to order between other properties), availability for the user and type (only text field and long text field are available for the moment). +Then to make this property available it is necessary to restart your application (and then probably to reload Apache). +All forms are then automaticaly updated with this new field. + +Updating the detail window +-------------------------- + +When clicking on a POI a window appear with the details. +Particulary if you have set some new property models you may want to customize this window. +Each property is in a paragraph with id: property_i_j (i is the order and j is the model property id - the first model property is id 1 then 2...). +You can simply adapt the CSS file (static/styles.css) to match the desired presentation. +If you want to really change the whole presentation you can change the template file templates/detail.html (go to the Django template documentation for details). + +Updating the design +------------------- + +You can of course customize Chimère with your own CSS. To do that just edit the file static/styles.css. + +After this basic configuration done the harder is done. You can do now application administration tasks. + +------------------- +Site administration +------------------- + +The explanation are to create new elements. To modify these elements it is the same if only some fields are already filled. + +Creating news +------------- + +A news system is available. +All you have to to do is to click on the Add button near News. +For each news you have to provided a name and a content. The content can contain HTML tags. +The avaibility is set with a checkbox. + +Creating categories/subcategories +--------------------------------- + +Before adding categories you have to set some icons. Theses icons appears on the map and in the categories' box on the main map. +Be careful to resize correctly your icons. Indeed the icon will be presented at their real size on the map. +To add icons: the Add button near Icons. + +Categories are in fact only containers for subcategories. You'll have to provide only a name and an order. +To add categories: the Add button near categories (quite clear now, isn't it?) + +Fields of subcategories are: an associated category, a name, an icon, an order, a color and an element type. +Theses fields are mainly quite self-explainatory. +The color is used to draw routes (if this subcategory contains routes). If it a basic color it can be set with the english name (for instance: "red", "blue", "yellow" or "purple") otherwise you can put the HTML RVB code (for instance "#9227c9"). +The element type is the type of element the subcategory can contain: POI, route or both. + +Creating areas +-------------- + +Areas are useful to provide a quick access to a particular town, a district, etc. +To define an area fill a name and move/zoom to the choosed location. Submit it and that's all. + +---------- +Moderation +---------- + +The moderation step is quite simple. It works the same with POIs and routes. +The moderator can access to all POIs (or routes) by clicking on the Modify button. +A search field is available to search by name but the more interesting is to filter POIs (or route) by state and by subcategory. +Then to modify an item you have to click on his name. +The submission can now freely modified. Compared to the main submission interface there is only on field add: the state field. To be publish in the main site the item must have the state: Available. +If an item is not revelant the Delete button permit to remove it. + |