4307bd66be8cedb04ecbe7d60b1c7e4f20346d49
[nm/dc.git] / README.md
1 Debian Contributors web application
2 ===================================
3
4 See https://wiki.debian.org/Teams/FrontDesk/DcSiteDevel for this project's page in the Debian wiki.
5
6 ## Running this code on your own machine
7
8 ### Dependencies
9     
10     apt-get install python-django python-django-south
11
12     # http://anonscm.debian.org/gitweb/?p=users/enrico/django_maintenance.git
13     git clone https://alioth.debian.org/anonscm/git/users/enrico/django_maintenance.git
14       (you can either build the package from it or symlink the module directory
15       into the contributors.debian.org sources)
16
17     # http://anonscm.debian.org/gitweb/?p=nm/python-debiancontributors.git
18     git clone https://alioth.debian.org/anonscm/git/nm/python-debiancontributors.git
19       (you can either build the package from it or symlink the module directory
20       into the contributors.debian.org sources)
21
22 ### Configuration
23
24     cp dc/local_settings.py.devel dc/local_settings.py
25     edit dc/local_settings.py as needed
26
27 ### First setup
28
29     ./manage.py syncdb
30     ./manage.py migrate
31
32 You may wish to add an admin user that will be named the same as the DACS_TEST_USERNAME (see Authentication below).
33
34 ### Fill in data
35
36 Import source information from http://contributors.debian.org/contributors/export/sources
37 if you are not logged as a DD, authentication tokens are replaced with dummy
38 ones:
39
40     curl https://contributors.debian.org/contributors/export/sources | ./manage.py import_sources
41
42     eatmydata ./manage.py runserver
43
44 From now on, imported sources will be available from http://localhost:8000/sources/. 
45 You may login to http://localhost:8000/admin/ which grants access to the sources and other tables.
46
47 Acquire some JSON data (ask Enrico at the moment) and import it:
48
49     ./dc-post-source --baseurl=http://localhost:8000 sourcename sourcetoken datafile.json
50
51 So, for instance, if you're a DD, fetch the website contribs data with :
52
53     scp git.debian.org:~enrico/www-dc.json .
54
55 And import it with (the token is available from the admin interface if you configured the source accordingly) :
56     
57         ./dc-post-source --baseurl=http://localhost:8000 www.debian.org whatevertokenisneeded www-dc.json
58
59
60 Sync Debian keyrings into data/keyrings/ :
61
62     ./synckeyrings.sh
63
64     eatmydata ./manage.py maintcarnivore
65
66 ### Run database maintenance
67
68 Update the alioth and debian UIDs, and create Django user accounts accordingly :
69
70     ./update-data
71     eatmydata ./manage.py maintenance
72
73 ### Run the web server
74     
75     ./manage.py runserver
76
77 ## Development
78
79 Development currently targets Django 1.5.
80
81 You can find a TODO list at https://wiki.debian.org/Teams/FrontDesk/DcSiteDevel
82
83 ## Authentication
84
85 Authentication in production is meant to be performed against DACS, the Debian SSO system.
86 The django_dacs/ authenticator generates Django authentication from the REMOTE_USER 
87 variable retrieved from DACS.
88 For testing purposes, when not on a debian.org machine allowed to query sso.debian.org, 
89 one may set the DACS_TEST_USERNAME config to specify which user name to use.
90