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

Jelle van der Waa's avatar
Jelle van der Waa committed
3
[![Actions Status](https://github.com/archlinux/archweb/workflows/Github-Actions/badge.svg)](https://github.com/archlinux/archweb/actions)
4
[![Build Status](https://travis-ci.com/archlinux/archweb.svg?branch=master)](https://travis-ci.com/archlinux/archweb)
Angel Velásquez's avatar
Angel Velásquez committed
5
6
[![Coverage Status](https://coveralls.io/repos/github/archlinux/archweb/badge.svg?branch=master)](https://coveralls.io/github/archlinux/archweb?branch=master)

7
8
9
10
11
12
13
14
15
16
17
18
19
20
To get a pretty version of this document, run

    $ markdown README > README.html

# License

See LICENSE file.

# Authors

See AUTHORS file.

# Dependencies

21
- python
22
- rsync (optional for mirrorcheck with rsync mirrors)
23
24
25
26
27
28
29

# 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:

30
31
32
33
- python-django
- python-psycopg2
- python-markdown
- python-memcached
34
35
36

# Testing Installation

37
1. Run `python -m venv env`.
38

39
        cd /path/to/archweb && python -m venv ./env/
40
41
42

2. Activate the virtualenv.

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

2. Install dependencies through `pip`.

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

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

53
4. Migrate changes.
54

55
        ./manage.py migrate
56

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

60
61
62
63
        ./manage.py loaddata main/fixtures/*.json
        ./manage.py loaddata devel/fixtures/*.json
        ./manage.py loaddata mirrors/fixtures/*.json
        ./manage.py loaddata releng/fixtures/*.json
64

65
6. Use the following commands to start a service instance
66

67
        ./manage.py runserver
68

69
7. To optionally populate the database with real data:
70

71
72
73
74
75
        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
76
77
78
79

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

80
81
82
83
84
85
86
8. Database Updates for Added/Removed packages

        sqlite3 archweb.db < packages/sql/update.sqlite3.sql

For PostgreSQL use packages/sql/update.postgresql_psycopg2.sql


87
88
89
90
91
# 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.

92
        python -m smtpd -n -c DebuggingServer localhost:1025
93

94
In local\_settings.py add entries to set EMAIL\_HOST to 'localhost' and EMAIL\_PORT to
95
96
1025.

97
98
99
100
101
102
103
104
105
106
107
108
109
# 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

Jelle van der Waa's avatar
Jelle van der Waa committed
110
111
112
113
# Django Debug toolbar

To use the Django Debug toolbar install django-debug-toolbar and in local_settings.py
set DEBUG_TOOLBAR to True.
114

115
116
117
118
119
120
121
122
# Updating iPXE image

The netboot image can be updated by building the [AUR
package](https://aur.archlinux.org/packages/ipxe-netboot/) (note that it builds
from git master) and copying the resulting ipxe.pxe, ipxe.lkrn and ipxe.efi to
sitestatic/netboot. Then as Arch Linux Developer sign them with your PGP key
```gpg --output ipxe.efi.sig --detach-sig ipxe.efi```.

123
124
# Production Installation

Jelle van der Waa's avatar
Jelle van der Waa committed
125
Arch Linux has an Ansible role for Archweb in their [infrastructure repo](https://git.archlinux.org/infrastructure.git/).
126
127

vim: set syntax=markdown et: