Публичният сайт на http://www.obshtestvo.bg.
Проектът е написан на Python и Django, и използва MySQL.
Нужни са ви единствено:
- Vagrant, ако нямате – сваляте и инсталирате
- VirtualBox, ако нямате – сваляте и инсталирате
- hashicorp/precise32 VM, ако нямате –
vagrant box add hashicorp/precise32 https://vagrantcloud.com/hashicorp/precise32/version/1/provider/virtualbox.box
В директорията на проекта пускате 1 команда:
vagrant up
Това може да отнеме няколко минути, след което имате работещ сайта на адрес: http://localhost:8888/
Администратор на сайта е admin
с парола admin
, чрез който имате достъп до административния панел.
Автоматичната настройка създава виртуална машина заемаща 384MB RAM памет и 2GB на диска. Може да я спирате и пускате с команди от директорията на проекта:
vagrant halt # изключва
vagrant up # включва
За още детайли вижте какво се инсталира в нея.
-
Нужен ви е Python 2.7. Проектът не е тестван на други версии.
-
Трябва да имате MySQL 5.x, плюс header файлове. Както и Node.js.
-
Инсталирайте pip, ако нямате –
easy_install pip
илиsudo easy_install pip
-
Инсталирайте bower, ако нямате –
npm install -g bower
илиsudo npm install -g bower
. -
Инсталирайте virtualenvwrapper –
pip install virtualenvwrapper
илиsudo pip install virtualenvwrapper
. -
Заредете командите на virtualenvwrapper:
source /usr/local/bin/virtualenvwrapper.sh
– дава достъп доmkvirtualenv
и други. -
mkvirtualenv recycle --no-site-packages
– ще създаде виртуална среда за инсталиране на pip пакети в~/.virtualenvs/obshtestvobg
. -
workon recycle
за да превключите на това обкръжение. -
Клонирайте хранилището и влезте в директорията на проекта.
-
Зависимостите за frontend (CSS и JS):
(cd web && bower install)
-
Зависимостите на проекта:
pip install -r requirements.txt
Ако компилацията на MySQL адаптера не мине, може да се наложи да се изпълни
export CFLAGS=-Qunused-arguments
(реф.) и да се стартира отново командата. -
Създайте база данни в MySQL:
mysql -uroot -p -e "CREATE DATABASE recycle CHARACTER SET utf8 COLLATE utf8_general_ci"
-
Създайте файл със специфичните за локалното ви копие настройки, като копирате
server/settings_app.py.sample
катоserver/settings_app.py
и въведете там параметрите за достъп до MySQL базата данни. -
Подгответе базата за първото пускане на миграциите:
python manage.py syncdb --noinput
-
Пуснете миграциите:
python manage.py migrate
-
Направете си админ потребител с
python manage.py createsuperuser
-
Пуснете си сървър с
python manage.py runserver
Би трябвало да може да достъпите приложението на http://localhost:8000/.
Инсталирайте приложението, използвайки инструкциите в предишната секция за ръчни настройки, с тези разлики:
-
В
server/settings_app.py
:- Променете
DEBUG = True
наDEBUG = False
. - Генерирайте нова стойност на
SECRET_KEY
(сapg -m32
например).
- Променете
-
Настройте уеб сървъра си да сервира статичните файлове, намиращи се в
STATIC_ROOT
(обикновено папкатаstatic/
в корена на проекта) на URL/static/
. -
Уверете се, че по време на deployment се изпълнява командата
python manage.py collectstatic -l
, за да се копират статичните файлове от приложението вSTATIC_ROOT
. -
Използвайте Nginx или Apache сървър, плюс uwsgi server и uwsgi python plugin. Могат да се използват съответните конфигурационни файлове в папка
server/
.
find /var/cache/nginx/ -type f | xargs rm
След първоначалната инсталация, проектът се качва на сървъра с fab deploy
. Копирайте fabric_settings.py.sample
във fabric_settings.py
и го редактирайте, за да отговаря на вашите настройки за deploy. След това, процедурата е следната:
- Правите промени.
git commit
иgit push
на промените.- Изпълнявате
fab deploy
от корена на вашето локално копие.
Скриптът за deploy върши доста от нещата, описани в предишните секции.
Вижте командите в инсталационния файл за Vagrant.