-
Notifications
You must be signed in to change notification settings - Fork 163
Installation and Deployment
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install default-jre gcc git python-dev python-virtualenv libjpeg-dev libfreetype6-dev zlib1g-dev rabbitmq-server build-essential libxslt1-dev
Ubuntu 12.04:
sudo apt-get install mongodb
sudo start mongodb
Ubuntu 10.04
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install mongodb-10gen
mkdir ~/virtual_environments
cd ~/virtual_environments
virtualenv --no-site-packages formhub
source formhub/bin/activate
mkdir -p ~/src/formhub-app
cd ~/src/formhub-app
git clone git://github.com/modilabs/formhub.git
cd formhub
git submodule init
git submodule update
(NB: there is a known bug that prevents numpy from installing correctly when in requirements.pip file)
pip install numpy --use-mirrors
pip install -r requirements.pip
(NB: PIL under virtualenv usually does not have some codecs compiled| to make sure jpeg codec is included)
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
pip install -r requirements.pip
# apt-get install libmysqlclient-dev mysql-server
pip install -r requirements-mysql.pip
NOTE: If you inted to use special characters from other languages within your forms, or are unsure if you will, you shoud ensure your databse uses the utf-8 characterset by default e.g. for mysql
mysql> CREATE DATABASE formhub CHARACTER SET utf8;
pip install -r requirements-s3.pip
pip install -r requirements-ses.pip
sudo apt-get install postgresql python-psycopg2
a good source of instructions for installing a postgresql server can be found at:
https://help.ubuntu.com/community/PostgreSQL
- create or update your
local_settings.py
file first, and then:
python manage.py syncdb --noinput
python manage.py migrate
- optional: create a super user
python manage.py createsuperuser
- Copy the required files from the extras directory:
sudo cp ~/src/formhub-app/formhub/extras/celeryd/etc/init.d/celeryd /etc/init.d/celeryd
sudo cp ~/src/formhub-app/formhub/extras/celeryd/etc/default/celeryd /etc/default/celeryd
-
Open /etc/default/celeryd and update the path to your formhub install directory, if you directory structure is identical to what is described above, you only need to update your username.
-
Start the celery daemon
sudo /etc/init.d/celeryd start
sudo apt-get install apache libapache2-mode-wsgi
sudo apt-get install htop monit
And now you should be ready to run the server:
python manage.py runserver
- To run all tests enter the following:
python manage.py test
- To run the tests for a specific app, e.g. main, enter:
python manage.py test main
- To run the test for a specific class in a specific app, e.g. the class
TestFormErrors
in main, enter:
python manage.py test main.TestFormErrors
- To run the test for a specific method in a specific class in a specific app, e.g. the method
test_submission_deactivated
in the classTestFormErrors
in main, enter:
python manage.py test main.TestFormErrors.test_submission_deactivated
- To run javascript tests enter the following, NOTE that the testDir and configFile paths are relative to the js_tests/EnvJasmine directory:
./js_tests/EnvJasmine/bin/run_all_tests.sh --testDir=../ --configFile=../env_jasmine.conf.js
- Install nodejs
sudo apt-get install python g++ make
mkdir ~/nodejs && cd $_
wget -N http://nodejs.org/dist/node-latest.tar.gz
tar xzvf node-latest.tar.gz && cd `ls -rd node-v*`
./configure
sudo make install
- Install recess, uglifyjs and less via npm (Node Package Manager)
sudo npm install -g recess
sudo npm install -g uglifyjs
sudo npm install -g less
- Compile the less files
cd ~/src/formhub-app/formhub/main/static/bootstrap
make
To deploy you will need Fabric:
pip install fabric
You will need the appopriate .pem file in order to deploy to AWS. You will need to edit fabfile.py if you want to customize the deployments.
To deploy master to the production server:
fab deploy:prod
To deploy master to the development server:
fab deploy:dev
To deploy a specific branch to the development server:
fab deploy:dev,branch=[BRANCH NAME]