aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL.txt
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL.txt')
-rw-r--r--INSTALL.txt220
1 files changed, 0 insertions, 220 deletions
diff --git a/INSTALL.txt b/INSTALL.txt
deleted file mode 100644
index 304d912b3..000000000
--- a/INSTALL.txt
+++ /dev/null
@@ -1,220 +0,0 @@
- * Email: angie@mysociety.org; WWW: http://www.mysociety.org
- *
- * $Id: INSTALL.txt,v 1.10 2009-10-02 13:17:59 francis Exp $
- *
-
-
-These instructions are based on getting the FOI site up and running on
-Ubuntu and/or Debian.
-
-It was last run using the Lucid Lynx version of Ubuntu and on the
-Parallels debian instance (2.6.18-4-686).
-
-Commands are intended to be run via the terminal or over ssh.
-
-1. Package Installation
------------------------
-i.e. Install git (sudo apt-get install git-core),
-to get the alaveteli code from github: git clone https://github.com/sebbacon/alaveteli.git
-
-Firstly, in a terminal, navigate to the alaveteli folder where this
-install guide lives.
-
-Install the packages that are listed in config/packages using apt-get e.g.:
-
-> sudo apt-get install `cut -d " " -f 1 config/packages | grep -v "^#"`
-
-Some of the files also have a version number listed in config/packages - check
-that you have appropriate versions installed. Some also list "|" and offer
-a choice of packages.
-
-Some of the required packages only exist in the mysociety debian archive (or we
-have updated versions there), so you will want to add that to your
-/etc/apt/sources.list:
-
- deb http://debian.mysociety.org etch main non-free contrib
- deb-src http://debian.mysociety.org etch main non-free contrib
-
-You will also want to install mySociety's common ruby libraries and the Rails
-code. Run:
-
- git submodule update --init
-
-to fetch the contents of the submodules.
-
-2. Configure Database
----------------------
-
-There has been a little work done in trying to make the code work with
-other databases (e.g. SQLite), but the preferred database is PostgreSQL.
-
-If you don't have it installed:
- apt-get install postgresql postgresql-client
-
-Now we need to set up the database config file to contain the name,
-username and password of your postgres database.
-
-* copy database.yml-example to database.yml in alaveteli/config
-* edit it to point to your local postgresql database in the development
- and test sections and create the databases:
-
-Become the 'postgres' user (sudo su - postgres)
-
-psql template1
- to get into command tool
-
-\l to list databases
- CREATE DATABASE foi_development encoding = 'UTF8';
- CREATE DATABASE foi_test encoding = 'UTF8';
-
-Make sure that the user specified in database.yml exists, and has full
-permissions on this database. As they need the ability to turn off
-constraints whilst running the tests they also need to be a superuser.
- (See http://dev.rubyonrails.org/ticket/9981)
-
- CREATE USER <username> WITH CREATEUSER;
- ALTER USER <username> WITH PASSWORD '<password>';
- ALTER USER <username> WITH CREATEDB;
- GRANT ALL PRIVILEGES ON DATABASE foi_development TO <username>;
- GRANT ALL PRIVILEGES ON DATABASE foi_test TO <username>;
- ALTER DATABASE foi_development OWNER TO <username>;
- ALTER DATABASE foi_test OWNER TO <username>;
-
-
-3. Set up configs
------------------
-
-For overall application settings, copy config/general-example to
-config/general and edit to your taste.
-
-Note that the default settings for frontpage examples are designed to
-work with the dummy data shipped with Alaveteli; once you have real
-data, you should edit these.
-
-The default theme is the "WhatDoTheyKnow" theme. When you run
-rails-post-deploy, that theme gets installed automatically.
-
-You'll also want to copy config/memcached.yml-example to
-config/memcached.yml. The application is configured, via the Interlock
-Rails plugin, to cache content using memcached. You probably don't
-want this in your development profile.
-
-4. Deployment
--------------
-
-In the 'alaveteli' directory, run:
-> ./script/rails-post-deploy
-
-(This will need execute privs so chmod 755 if necessary)
-
-This sets up directory structures, creates logs, etc.
-
-Next, if you have a alaveteli/config/rails_env.rb file, delete it, so that
-tests run against our test database, rather than the development one.
-(Otherwise, any data you create in development will be blown away every
-time you run the tests.)
-
-If you want some dummy data to play with, you can try loading the
-fixtures that the test suite uses into your development database. You
-can do this with:
-
-> rake spec:db:fixtures:load
-
-Next we need to create the index for the search engine (Xapian):
-
-> ./script/rebuild-xapian-index
-
-If this fails, the site should still mostly run, but it's a core
-component so you should really try to get this working.
-
-5. Run the Tests
-----------------
-
-Make sure everything looks OK:
-
-> rake spec
-
-If there are failures here, something has gone wrong with the preceding
-steps. You might be able to move on to the next step, depending on how
-serious they are, but ideally you should try to find out what's gone
-wrong.
-
-6. Run the Server
------------------
-
-run the following to get the server running (may need to chmod 755 again)
-> ./script/server --environment=development
-
-By default the server listens on all interfaces. You can restrict it to the
-localhost interface by adding --binding=127.0.0.1
-
-You’ll probably need to install various things to make this work. The server
-script will tell you about any missing dependencies.
-
-
-7. Success
-----------
-
-The server should have told you the URL to access in your browser to see
-the site in action.
-
-8. Administrator privileges
----------------------------
-
-By default, anyone can access the administrator pages without authentication.
-They are under the URL /admin.
-
-At mySociety, we use a separate layer of HTTP basic authentication, proxied
-over HTTPS, to check who is allowed to use the administrator pages. You might
-like to do something similar.
-
-Alternatively, update the code so that
-* By default, admin pages use normal site authentication (checking user admin
-level 'super').
-* Create an option in config/general which lets mySociety override that
-behaviour.
-And send us the patch!
-
-9. Mailer setup
----------------
-
-When an authority receives an email, its reply-to address is a magic
-email which is parsed and consumed by the Rails app.
-
-Currently, this is done by calling script/mailin and piping in the raw
-email. You will need to configure your MTA to accept emails to magic
-addresses, and to pipe such emails to this script.
-
-Magic email addresses are of the form:
-
- <foi+request-3-691c8388@example.com>
-
-The respective parts of this address are controlled with options in
-options/general, thus:
-
- $OPTION_INCOMING_EMAIL_PREFIX = 'foi+'
- $OPTION_INCOMING_EMAIL_DOMAIN = 'example.com'
-
-INSTALL-exim.txt describes one possible configuration for Exim 1.9.
-
-When you set up your MTA, note that if there is some error inside
-Rails, the email is returned with an exit code 75, which for Exim at
-least means the MTA will try again later. Additionally, a stacktrace
-is emailed to $OPTION_CONTACT_EMAIL.
-
-A well-configured installation of this code will separately have had
-Exim make a backup copy of the email in a separate mailbox, just in
-case.
-
-This setup isn't very scaleable, as it spawns a new Ruby process for
-each email received; patches welcome!
-
-10. Cron jobs
-------------
-
-config/crontab.ugly contains the cronjobs we run on WhatDoTheyKnow. It's
-in a strange templating format we use in mySociety, but you should be
-able to work out the syntax and variables fairly easily :)
-
-We render the "ugly" file to reference absolute paths, and then drop
-it in /etc/cron.d/ on the server.