# 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 # Python dependencies We're going to use pip to handle python dependencies, m'kay? Worry about that 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 MySQL and memcached installed automatically, run (parabolweb-env) $ pip install -r requirements_prod.txt 5. Copy `local_settings.py.example` to `local_settings.py` and modify. Make sure to uncomment the appropriate db section (either sqlite or mysql). 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) $ for file in */fixtures/*.json; do \ ./manage.py loaddata $file; \ done The reason we use a loop instead of just calling them with a glob is that groups.json is expected to fail, and this way it won't prevent others from loading. 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: