X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=docs%2FINSTALL;h=050fc9f10a4cefcef22454967d2d234ee3326d30;hb=017f73b059aadfce30ee29d2aceeab92739105a6;hp=803c7ff3c7a7c2550f135c9e2dc308950595798e;hpb=50c10beddb95719e5dc8acee4f1ab13f8e858b5c;p=patchwork diff --git a/docs/INSTALL b/docs/INSTALL index 803c7ff..050fc9f 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -29,19 +29,38 @@ 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 $ createuser nobody - - postgres uses the standard UNIX authentication, so these users - will only be accessible for processes running as the same username. - This means that no passwords need to be set. + - postgres uses the standard UNIX authentication, so these users + will only be accessible for processes running as the same username. + This means that no passwords need to be set. + + 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: + For MySQL: $ mysql - > CREATE DATABASE 'patchwork'; + > CREATE DATABASE 'patchwork'; > CREATE USER 'www-data'@'localhost' IDENTIFIED BY ''; > CREATE USER 'nobody'@'localhost' IDENTIFIED BY ''; @@ -49,48 +68,44 @@ in brackets): Set up some initial directories in the patchwork base directory: - mkdir -p lib/packages lib/python + mkdir -p lib/packages lib/python - At the time of release, patchwork depends on django version 1.0. - However, most distros don't provide 1.0 yet. If yours does, then you - can skip this step. Otherwise, do a: + 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 + later. Your distro probably provides this. If not, do a: cd lib/packages - svn checkout http://code.djangoproject.com/svn/django/tags/releases/1.0 + svn checkout http://code.djangoproject.com/svn/django/tags/releases/1.2 cd ../python ln -s ../packages/django/django ./django - We also use the django-registration infrastructure from - http://bitbucket.org/ubernostrum/django-registration/ - - cd lib/packages/ - hg clone http://bitbucket.org/ubernostrum/django-registration/ - cd ../../apps - ln -s ../lib/packages/django-registration/registration ./registration - - We also use some Javascript libraries: - - cd lib/packages - mkdir jquery - cd jquery - wget http://jqueryjs.googlecode.com/files/jquery-1.3.min.js - wget http://www.isocra.com/articles/jquery.tablednd_0_5.js.zip - unzip jquery.tablednd_0_5.js.zip jquery.tablednd_0_5.js - cd ../../../htdocs/js/ - ln -s ../../lib/packages/jquery/jquery-1.3.min.js ./ - ln -s ../../lib/packages/jquery/jquery.tablednd_0_5.js ./ + We also use some Javascript libraries: - The settings.py file contains default settings for patchwork, you'll - need to configure settings for your own setup. - - Rather than edit settings.py, create a file 'local_settings.py', and - override or add settings as necessary. You'll need to define the - following: - - SECRET_KEY - ADMINS - TIME_ZONE - LANGUAGE_CODE + cd lib/packages + mkdir jquery + cd jquery + wget http://jqueryjs.googlecode.com/files/jquery-1.3.min.js + wget http://www.isocra.com/articles/jquery.tablednd_0_5.js.zip + unzip jquery.tablednd_0_5.js.zip jquery.tablednd_0_5.js + cd ../../../htdocs/js/ + ln -s ../../lib/packages/jquery/jquery-1.3.min.js ./ + ln -s ../../lib/packages/jquery/jquery.tablednd_0_5.js ./ + + The settings.py file contains default settings for patchwork, you'll + need to configure settings for your own setup. + + Rather than edit settings.py, create a file 'local_settings.py', and + override or add settings as necessary. You'll need to define the + following: + + SECRET_KEY + ADMINS + TIME_ZONE + LANGUAGE_CODE + DEFAULT_FROM_EMAIL + NOTIFICATION_FROM_EMAIL You can generate the SECRET_KEY with the following python code: @@ -98,61 +113,75 @@ in brackets): chars = string.letters + string.digits + string.punctuation print repr("".join([random.choice(chars) for i in range(0,50)])) - If you have patchwork installed in somewhere other than /srv/patchwork, - you'll also need to define: + If you have patchwork installed in somewhere other than /srv/patchwork, + you'll also need to define: - MEDIA_ROOT - TEMPLATE_DIRS + MEDIA_ROOT + TEMPLATE_DIRS If you wish to enable the XML-RPC interface, add the following to your local_settings.py file: - ENABLE_XMLRPC = True + ENABLE_XMLRPC = True - Then, get patchwork to create its tables in your configured database: + Then, get patchwork to create its tables in your configured database: - cd apps/ - PYTHONPATH=../lib/python ./manage.py syncdb + 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 + Postgresql: + psql -f lib/sql/grant-all.postgres.sql patchwork - MySQL: - mysql patchwork < lib/sql/grant-all.mysql.sql + MySQL: + mysql patchwork < lib/sql/grant-all.mysql.sql 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 - instead. + 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 + instead. fastcgi: - django has built-in support for fastcgi, which requires the - 'flup' python module. An example configuration is in: + 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. + - this also requires the mod_rewrite apache module to be loaded. - Once you have apache set up, you can start the fastcgi server with: + Once you have apache set up, you can start the fastcgi server with: - cd /srv/patchwork/apps - ./manage.py runfcgi method=prefork \ - socket=/srv/patchwork/var/fcgi.sock \ - pidfile=/srv/patchwork/var/fcgi.pid + cd /srv/patchwork/apps + ./manage.py runfcgi method=prefork \ + socket=/srv/patchwork/var/fcgi.sock \ + pidfile=/srv/patchwork/var/fcgi.pid 4. Configure patchwork Now, you should be able to administer patchwork, by visiting the