Italiano English
Edit History Actions

Diff for "InstallNodeshot"

Differences between revisions 3 and 4
Revision 3 as of 2012-03-30 18:23:26
Size: 4404
Editor: 147
Comment: preformatted code
Revision 4 as of 2012-03-31 11:40:49
Size: 5220
Editor: 147
Comment:
Deletions are marked like this. Additions are marked like this.
Line 32: Line 32:

== Where do I place the code? ==

When installing django apps
Line 86: Line 90:
== Media files ==

== Admin media files ==

If you go to http://<YOUR_URL>/admin/ you will notice that the static files (css, images and javascript) for the admin interface are missing. Infact those files are stored in the django framework. You can either copy or link those files, but we strongly advise to link because when you will update django to a newer version the static admin files will also get updated automatically.

Example:
{{{
ln -s <DJANGO-INSTALLATION-DIR>/contrib/admin/static/admin <VIRTUAL-HOST-DIR>/media/admin
}}}

Substitute <DJANGO-INSTALLATION-DIR> with the path to the directory where django is installed and <VIRTUAL-HOST-DIR> with the path to the directory of your server which is reachable from public HTTP.

Nodeshot is an easy to use Wireless Community MapServer made by the Ninux Community. One instance can be find on their website. It's based on Django. This page aims at providing a tutorial on how to install an instance of this software.

Requirements

Before starting the installation be sure to have a server ready with the following software:

  • Linux OS
  • Python > 2.5

  • Django > 1.4 (GenericIPAddressField for IPV6 was added in 1.4)

  • Web server (eg: apache, nginx) - alternatively you can use the django development server (for development production only)
  • * database (mysql, postgresql, sqlite3 and others
    see setting.example.py)

Installing Django

Installing django is out of the scope of this document, for that please check the official django documentation: https://docs.djangoproject.com/en/1.4/intro/install/ . We advise to install the latest development version from svn or git so it's easy to upgrade.

In a production environment you must setup a VIRTUAL HOST in your webserver and to enable MOD_PYTHON or MOD_WSGI in order to get Nodeshot to work. That's also out of the scope of this guide because the way you want to do that might vary depending on distribution, habits, ecc.

if you use mod_wsgi this is the code you need to get it to work (create a file caled wsgi.py):

import os
import sys
sys.path.append(os.path.dirname(os.path.realpath(__file__)))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()


Where do I place the code?

When installing django apps

Install nodeshot

1. Choose the folder where you want to store the code of the project and clone the git repository with: git clone https://github.com/ninuxorg/nodeshot.git

2. rename the folder created by git with a different name than "nodeshot" (this prevents python in getting confused on some systems), eg: mapserver

mv nodeshot mapserver

cd mapserver

3. Create the database for nodeshot if using mysql or postgresql create a new database in the web admin tool or via command line

MySQL: Set up a database for MySQL for the root user and a password e.g. "Nodeshotpassword"

mysql -u root -p Nodeshotpassword

Sqlite3: doesn't need you to create anydatabase, indicate the absolute path were you want django to create the file for example "/home/USER/mapserver/nodeshot.db"

4. Then edit the settings of nodeshot in the nodeshot folder. a) Create settings.py by copying settings.example.py with the following command line cp settings.example.py settings.py b) Edit the settings example edit setting.py c) Fill in the following database information

set TIME_ZONE to your area set LANGUAGE_CODE to your language set SITE_URL to your URL (localhost if in development environment) set NODESHOT_GMAP_CENTER, change the coordinates of the center of the map to your area set NODESHOT_SITE (name and domain) edit NODESHOT_KML['description'] to a description that suits your community (optional) edit NODESHOT_ROUTING_PROTOCOLS and choose the ones that are used in your network set NODESHOT_DEFAULT_ROUTING_PROTOCOL to the prefered choice

NODESHOT_FRONTEND_SETTINGS

  • META_ROBOTS: this indicates if you want Google to index your map-server or not. Possible choices are the ones indicated here http://googlewebmastercentral.blogspot.com/2007/03/using-robots-meta-tag.html SHOW_STATISTICS: boolean that indicates if you want to show the number of active nodes, potential nodes, hotspots, links and total link surface on the website SHOW_KML_LINK: this indicates if you want to show the KML feed icon and link HELP_URL: set up an URL on your website to explain how to use the map-server or whatever you need to tell to your users (this might change in the future, maybe is better to ship some instrctions with the core code)

5. create the database structure $ python manage.py syncdb this command creates the SQL tables and asks you to

6. the previous command might fails because you miss some python libraries. If this happens you must install these libraries in order to proceed.

Some common missing libraries are:

* MySQLdb - fix with "apt-get install python-mysqldb" (depends on your distribution)

Media files

Admin media files

If you go to http://<YOUR_URL>/admin/ you will notice that the static files (css, images and javascript) for the admin interface are missing. Infact those files are stored in the django framework. You can either copy or link those files, but we strongly advise to link because when you will update django to a newer version the static admin files will also get updated automatically.

Example:

ln -s <DJANGO-INSTALLATION-DIR>/contrib/admin/static/admin <VIRTUAL-HOST-DIR>/media/admin

Substitute <DJANGO-INSTALLATION-DIR> with the path to the directory where django is installed and <VIRTUAL-HOST-DIR> with the path to the directory of your server which is reachable from public HTTP.

http://176.31.121.62/admin If not working, try this command with mapserver as working directory sudo chown www-data. .