summaryrefslogtreecommitdiff
path: root/README
blob: de19db5eff676feb78fc07d077682a221ff021fd (plain)
1
2
3
4
5
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# Parabolaweb README

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 (if using pip to manage dependencies)

# Python dependencies

We're going to use pip to handle python dependencies, m'kay?
Worry about that in step 3.

If you really want to manage dependencies using something other than
pip, look at `requirements.txt`, and at the comments on other
dependiencies in step 3.
 
# Testing Installation

Throughout this, we assume that parabolaweb is installed in a
directory called `parabolaweb`. This is not necessarily true. On the
main server, it's in `/srv/http/web'. Wherever you see this in a
command, know that you should just replace it with the correct path
for your install.

1.  Run `virtualenv2`.

        $ cd /path/to/parabolaweb && virtualenv2 `pwd`-env

    Here I just had you use `pwd` to choose the environment
    directory. You can use anything, but it is recommended that it not
    be the same directory as the install.

2.  Activate the virtualenv.

        $ source `pwd`-env/bin/activate

3.  Fix symlink to the environment

        (parabolaweb-env) $ ln -sf ../../parabolaweb-env/lib/python2.7/site-packages/django/contrib/admin/media media/admin_media

    Of course change `../../parabolaweb-env` to the relative path to
    your environment. Keep in mind that the path is relative from
    inside the `media/` directory, not the current directory.

4.  Install dependencies through `pip`.

    To install base dependencies, run

        (parabolweb-env) $ pip install -r requirements.txt

    After that you will need to install a database engine for python
    This means `MySQL-python==1.2.3`, `pysqlite` or `psycopg2` for
    PostgreSQL. Eg:

        (parabolweb-env) $ pip install MySQL-python==1.2.3

    You may also want to install memcached

        (parabolweb-env) $ pip install python-memcached==1.47

    Alternately, to have psycopg2 and memcached installed automatically,
    run

        (parabolweb-env) $ pip install -r requirements_prod.txt

    We use PostgreSQL on the main server, and you may have problems
    with other SQLs.

5.  Copy `local_settings.py.example` to `local_settings.py` and modify.
    Make sure to uncomment the appropriate db section.

6.  Sync the database to create it.

        (parabolaweb-env) $ ./manage.py syncdb

7.  Migrate changes.

        (parabolaweb-env) $ ./manage.py migrate

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

        (parabolaweb-env) $ ./manage.py loaddata */fixtures/*.json

9.  Use the following commands to start a service instance

        (parabolaweb-env) $ ./manage.py runserver

10.  To optionally populate the database with real data:

        $ wget https://repo.parabolagnulinux.org/core/os/i686/core.db.tar.gz
        $ ./manage.py reporead i686 core.db.tar.gz
        $ ./manage.py syncisos

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

# Production Installation

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

vim: set syntax=markdown et: