diff options
-rw-r--r-- | README.pod | 262 |
1 files changed, 6 insertions, 256 deletions
diff --git a/README.pod b/README.pod index e621aa589..8305b29ea 100644 --- a/README.pod +++ b/README.pod @@ -26,7 +26,7 @@ L<http://www.fiksgatami.no/> If you're reasonably sure what you are doing then you can follow the quickstart instructions. Otherwise there are more detailed instructions -further down. +in L<notes/INSTALL.pod> =over @@ -40,11 +40,11 @@ Create a new PostGIS enabled database =item * -Run C<db/schema.sql> and the C<db/alert_types.sql> +Create the database using C<db/schema.sql> and the C<db/alert_types.sql> =item * -Run C<./bin/install_perl_modules> +Run C<./bin/install_perl_modules> to install the required Perl modules. =item * @@ -53,7 +53,7 @@ Create a new Apache vhost based on C<conf/httpd-conf.example> =item * Copy C<conf/general.yml-example> to C<conf/general.yml> and update -the defaults accordingly +the defaults accordingly. =item * @@ -65,257 +65,7 @@ Restart the webserver =item * -Install the crontab from C<conf/crontab> +Edit the crontab from C<conf/crontab> to replace the placeholders and +install it. See L<notes/INSTALL.pod> for more details on the placeholders. =back - -=head1 DOWNLOADING - -Fetch the latest version from L<github|http://github.com/mysociety/fixmystreet> - -=head1 REQUIREMENTS - -On the server you are installing FixMyStreet on you will need the following things: - -=head2 Software requirements - -=over - -=item * - -PostgreSQL and the PostGis extension - -=item * - -Perl 5.8 or above - -=item * - -ImageMagick and the perl bindings. - -=item * - -A webserver that supports FastCGI - -=item * - -gettext - -=item * - -The CSS for FixMyStreet is generated from SCSS sources so you will need a SCSS -to CSS convertor. You can get one from L<http://sass-lang.com/> - -=back - -If you're expecting a lot of traffic it's recommended that you install L<memcached|http://memcached.org/> - -If you are using a Debian based linux distribution there is a list of relevant -packages in C<conf/packages>. - -=head2 Service dependencies - -For most uses of FixMyStreet you'll also need access to a MaPit server with -data for the types of bodies you are reporting issues to. For more details on -how to install MaPit see the L<mapit pypi page|http://pypi.python.org/pypi/django-mapit/> - -You will also need a Tile Server to serve up Map tiles. FixMyStreet can use -Google, Bing and OpenStreetMap Tile servers. - -Finally, you will need a geolocation service to turn addresses into longitude -and latitudes. FixMyStreet currently includes code to use both Bing and Google -geolocation services. - -=head1 DETAILED INSTALLATION INSTRUCTIONS - -=head2 Unpacking the Code - -Once you've downloaded the code you should unpack it. The best place to do this -is in the location you want the web server vhost to be. - -=head2 Creating the database - -The default settings file assumes the database is called fms and the user the same. -You can change these if you like. - -The database you create for FixMyStreet should be a PostGis enabled one. The best way -to do this is to use a PostGIS template database. There are good instructions on how -to create one L<on the django site|https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/#spatialdb-template> -as well as some bash scripts that automate the process. - -=head2 Set up the database - -Once you've created the database you can use the sql in C<db/schema.sql> to create the required -tables, triggers and stored procedures. You will also need to run -C<db/alert_types.sql> which -populates the alert_types table. - -=head2 Install Perl modules - -FixMyStreet uses a number of CPAN modules which are installed by the -C<install_perl_modules> script. This will install them into a directory -called local. - -It uses cpanminus and Carton under the hood but should install these -of they are missing. You may need to install some source packages to -allow some of the included modules to be built, including: - -=over - -=item expat - -=item Postgresql - -=item The GMP math library - -=back - -You will also need a development toolchain in place ( gcc, make etc ) - -If you need to add a module manually you can do it using: - - ./bin/cron_wrapper ./local/bin/carton install Module::To::Add - -which will install the module into the local directory - -=head2 Set up Webserver - -It is recommended that you run FixMyStreet using FastCGI. It should also be -possible to run it using Plack/PSGI. - -There is an example Apache vhost configuration file on C<conf/httpd.conf-example> -which you can copy and update the paths in if you are running FixMyStreet under -FastCGI. - -If you are using Apache and the sample configuration you will need the following -modules enabled: - -=over - -=item * - -mod_rewrite - -=item * - -mod_proxy - -=item * - -mod_expires - -=item * - -mod_fastcgi - -=back - -=head1 SETTINGS - -The settings for FixMyStreet are defined in C<conf/general.yml> using the YAML -markup language. There are some defaults in C<conf/general.yml-example> which -you should copy to C<conf/general.yml>. - -The bare minimum of settings you will need to fill in or update are: - -=over - -=item FMS_DB_PASS - -This is the password for the database. - -=item BASE_URL - -The URL for the homepage of your FixMyStreet install. - -=item EMAIL_DOMAIN - -The email domain that emails will be sent from - -=item CONTACT_EMAIL - -The email address to be used on the site for the contact us form. - -=item STAGING_SITE - -If this is 1 then all email ( alerts and reports ) will be sent to the -contact email address. Use this for development sites. - -=item UPLOAD_CACHE - -This is the location where imaged will be stored as they are being uploaded. -It should be accessible by and writeable by the FixMyStreet process. - -=item GEO_CACHE - -This is the location where Geolocation data will be cached. -It should be accessible by and writeable by the FixMyStreet process. - -=back - -If you are using Bing or Google maps you should also set one of -BING_MAPS_API_KEY or GOOGLE_MAPS_API_KEY. - -If you are using a MaPit install you should update MAPIT_URL. - -=head2 Generate CSS - -There is a script, bin/make_css, that uses L<sass|http://sass-lang.com/> to -convert the SCSS files to CSS files. - -=head2 Restart the webserver - -At this point you be able to restart the webserver and see your FixMyStreet -installation at the configured URL. - -=head2 Cron jobs - -There is an example crontab in conf/crontab.ugly. At the moment this is in -the format used by mySociety's internal deployment tools. To convert this to -a valid crontab the following should be done: - -=over - -=item * - -Replace C<!!(*= $user *)!!> with the name of the user the cron should run under - -=item * - -Replace C<!!(* $vhost *)!!> with the path to the FixMyStreet code. - -=back - -=head2 Check it's working - -You can run the unit tests using C<prove -r t> in the FixMyStreet directory. Note -that this may leave entries in your database at the moment and should not be run -on a live site. - -=head2 Next Steps - -The admin site should be protected using HTTP AUTH. - -Customise your install using Templates, CSS and a Cobrand module. See L<notes/customisation.pod> -for details. - -Add contact details for authorities and categories using the admin interface. - -Add authority data to the MaPit install if required. - -=head1 COMMON PROBLEMS - -=head2 locale - -By default FixMyStreet uses the en_GB.UTF-8 locale. If it is not installed then -it may not start - -=head2 Template caching - -FixMyStreet caches compiled templates alongside the source files so the templates -directory needs to be writable by the process that is running FixMyStreet. - -=head2 Image::Magick perl module - -If your OS has a way to install a binary version of Image::Magick then it's recommended -that you do that rather than install via CPAN. |