README.md 2.86 KB
Newer Older
1
2
# Archweb README

Angel Velásquez's avatar
Angel Velásquez committed
3
[![Build Status](https://travis-ci.org/archlinux/archweb.svg?branch=master)](https://travis-ci.org/archlinux/archweb)
Angel Velásquez's avatar
Angel Velásquez committed
4
5
[![Coverage Status](https://coveralls.io/repos/github/archlinux/archweb/badge.svg?branch=master)](https://coveralls.io/github/archlinux/archweb?branch=master)

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
To get a pretty version of this document, run

    $ markdown README > README.html

# License

See LICENSE file.

# Authors

See AUTHORS file.

# Dependencies

- python2
- python2-virtualenv

# Python dependencies

More detail in `requirements.txt` and `requirements_prod.txt`; it is best to
use virtualenv and pip to handle these. But if you insist on (Arch Linux)
packages, you will probably want the following:

- django
- python2-psycopg2
- python2-markdown
- python2-memcached

# Testing Installation

1. Run `virtualenv2`.

38
        cd /path/to/archweb && virtualenv2 ./env/
39
40
41

2. Activate the virtualenv.

42
        source ./env/bin/activate
43
44
45

2. Install dependencies through `pip`.

46
        pip install -r requirements.txt
47
48
49
50
51
52
53

3. Copy `local_settings.py.example` to `local_settings.py` and modify.
   Make sure to uncomment the appropriate database section (either sqlite or
   PostgreSQL).

4. Sync the database to create it.

54
        ./manage.py syncdb
55
56
57

5. Migrate changes.

58
        ./manage.py migrate
59
60
61
62

6. Load the fixtures to prepopulate some data. If you don't want some of the
   provided data, adjust the file glob accordingly.

63
64
65
66
        ./manage.py loaddata main/fixtures/*.json
        ./manage.py loaddata devel/fixtures/*.json
        ./manage.py loaddata mirrors/fixtures/*.json
        ./manage.py loaddata releng/fixtures/*.json
67
68
69

7. Use the following commands to start a service instance

70
        ./manage.py runserver
71
72
73

8. To optionally populate the database with real data:

74
75
76
77
78
        wget http://mirrors.kernel.org/archlinux/core/os/x86_64/core.db.tar.gz
        ./manage.py reporead x86_64 core.db.tar.gz
        # Package file listing
        wget http://mirrors.kernel.org/archlinux/core/os/x86_64/core.files.tar.gz
        ./manage.py reporead --filesonly x86_64 core.files.tar.gz
79
        ./manage.py syncisos
80
81
82
83

Alter architecture and repo to get x86\_64 and packages from other repos if
needed.

84
85
86
87
88
89
90
91
92
93
# Testing SMTP server

To be able to create an account on your test environment an SMTP server is
required. A simple debugging SMTP server can be setup using Python.

        python2 -m smtpd -n -c DebuggingServer localhost:1025

In local_settings.py change the EMAIL_HOST to 'localhost' and the EMAIL_PORT to
1025.

94
95
96
97
98
99
100
101
102
103
104
105
106
107
# Running tests and coverage

To the unittests execute the following commands:

        ./manage.py collectstatic --noinput
        ./manage.py test

Running coverage:

        pip install coverage
        coverage run --omit='env*' --source='.' manage.py test
        coverage report


108
109
110
111
112
# Production Installation

Ask someone who knows, or you are going to be in trouble.

vim: set syntax=markdown et: