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