X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=docs%2FINSTALL;h=c63d6f707e08690c38539a15247bd5a09ebb1df0;hb=02550731a4b37a7f42c1158afa0c2f7dd3cdb484;hp=0ed2cea78e3afa18fddca6d370c1c3a1edc00515;hpb=3811b235306eb4e11f325edf3b2878dc10c5d7a9;p=patchwork diff --git a/docs/INSTALL b/docs/INSTALL index 0ed2cea..c63d6f7 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -3,13 +3,13 @@ Deploying Patchwork Patchwork uses the django framework - there is some background on deploying django applications here: - http://www.djangobook.com/en/1.0/chapter20/ + http://www.djangobook.com/en/2.0/chapter12/ You'll need the following (applications used for patchwork development are in brackets): * A python interpreter - * django + * django >= 1.2 * A webserver (apache) * mod_python or flup * A database server (postgresql) @@ -29,7 +29,10 @@ in brackets): user that your mail server runs as). On Ubuntu these are www-data and nobody, respectively. - For PostgreSQL + As an alternative, you can use password-based login and a single database + account. This is described further down. + + For PostgreSQL (ident-based) $ createdb patchwork $ createuser www-data @@ -39,7 +42,23 @@ in brackets): will only be accessible for processes running as the same username. This means that no passwords need to be set. - For MySQL: + For PostgreSQL (password-based) + + $ createuser -PE patchwork + $ createdb -O patchwork patchwork + + Once that is done, you need to tell Django about the new Database + settings, using local_settings.py (see below) to override the defaults + in settings.py: + + DATABASE_ENGINE = 'postgresql_psycopg2' + DATABASE_NAME = 'patchwork' + DATABASE_USER = 'patchwork' + DATABASE_PASSWORD = 'my_secret_password + DATABASE_HOST = 'localhost' + DATABASE_PORT = '' + + For MySQL: $ mysql > CREATE DATABASE 'patchwork'; > CREATE USER 'www-data'@'localhost' IDENTIFIED BY ''; @@ -54,7 +73,7 @@ in brackets): lib/packages is for stuff we'll download, lib/python is to add to our python path. We'll symlink python modules into lib/python. - At the time of release, patchwork depends on django version 1.0 or + At the time of release, patchwork depends on django version 1.2 or later. Your distro probably provides this. If not, do a: cd lib/packages @@ -62,17 +81,6 @@ in brackets): cd ../python ln -s ../packages/django/django ./django - We also use the django-registration infrastructure from - http://bitbucket.org/ubernostrum/django-registration/. Your distro - may provide the django-registration python module (in Ubuntu/Debian it's - called 'python-django-registration'). If not, download the module - and symlink it to lib/python/ : - - cd lib/packages/ - hg clone http://bitbucket.org/ubernostrum/django-registration/ - cd ../python - ln -s ../lib/packages/django-registration/registration ./registration - We also use some Javascript libraries: cd lib/packages @@ -96,6 +104,8 @@ in brackets): ADMINS TIME_ZONE LANGUAGE_CODE + DEFAULT_FROM_EMAIL + NOTIFICATION_FROM_EMAIL You can generate the SECRET_KEY with the following python code: @@ -119,7 +129,9 @@ in brackets): cd apps/ PYTHONPATH=../lib/python ./manage.py syncdb - And add privileges for your mail and web users: + And add privileges for your mail and web users. This is only needed if + you use the ident-based approach. If you use password-based database + authentication, you can skip this step. Postgresql: psql -f lib/sql/grant-all.postgres.sql patchwork @@ -130,14 +142,26 @@ in brackets): 3. Apache setup -Example apache configuration files are in lib/apache/. +Example apache configuration files are in lib/apache2/. + +wsgi: + django has built-in support for WSGI, which supersedes the fastcgi + handler. It is thus the preferred method to run patchwork. + + The necessary configuration for Apache2 may be found in + + lib/apache2/patchwork.wsgi.conf. + + You will need to install/enable mod_wsgi for this to work: + + a2enmod wsgi + apache2ctl restart mod_python: - This should be the simpler of the two to set up. An example apache - configuration file is in: + An example apache configuration file for mod_python is in: - lib/apache/patchwork.mod_python.conf + lib/apache2/patchwork.mod_python.conf However, mod_python and mod_php may not work well together. So, if your web server is used for serving php files, the fastcgi method may suit @@ -148,7 +172,7 @@ fastcgi: django has built-in support for fastcgi, which requires the 'flup' python module. An example configuration is in: - lib/apache/patchwork.fastcgi.conf + lib/apache2/patchwork.fastcgi.conf - this also requires the mod_rewrite apache module to be loaded.