webapp for unglue.it
 
 
 
 
 
 
Go to file
Ed Summers 94b5217f88 Edited README.md via GitHub 2011-10-07 10:03:54 -03:00
api need an empty models module for api to be treated like a legit django app that can be tested 2011-10-05 22:30:49 -04:00
core needed this default value for the migration to work properly on a clean database 2011-10-07 02:34:46 +00:00
deploy production apache and mod_wsgi configs 2011-10-07 03:14:29 +00:00
docs implementation of read-only api for Work, Edition, Subject, Campaign, Author 2011-09-12 14:50:29 -07:00
frontend converting css to a less system to improve maintainability. see http://lesscss.org/ 2011-10-04 16:18:59 -04:00
logs need this log directory 2011-09-04 05:40:12 +00:00
payment Some parameters defined in django.conf.settings had to set accordingly 2011-10-06 16:10:20 -07:00
settings production apache and mod_wsgi configs 2011-10-07 03:14:29 +00:00
static converting css to a less system to improve maintainability. see http://lesscss.org/ 2011-10-04 16:18:59 -04:00
test Adding basic selenium powered unit tests for payments 2011-10-04 07:55:39 -04:00
test-data added core edition googlebooks lookup and test, plus the start of a load_books management command 2011-09-07 05:34:03 -04:00
.gitignore ignore virtualenv 2011-10-07 02:35:10 +00:00
.gitignore~ privacy policy updated with paypal info 2011-09-28 13:28:12 -04:00
README.md Edited README.md via GitHub 2011-10-07 10:03:54 -03:00
__init__.py setup api, core and frontend apps, also added initial homepage template from stefan 2011-08-30 23:46:55 -04:00
manage.py setup api, core and frontend apps, also added initial homepage template from stefan 2011-08-30 23:46:55 -04:00
requirements.pip need msyql client 2011-10-07 02:35:36 +00:00
urls.py allow username setting and tagline in profile 2011-10-03 12:36:22 -04:00

README.md

regluit

A 'monolithic' alternative to unglu for the unglue.it website. regluit is essentially a Django project that contains three applications: frontend, api and core that can be deployed and configured on as many ec2 instances that are needed to support traffic. The key difference with unglu is that the frontend app is able to access database models from core in the same way that the api is able to...which hopefully should simplify some things.

Develop

Here are some instructions for setting up regluit for development on an Ubuntu system. If you are on OS X see notes below to install python-setuptools in step 1:

  1. aptitude install python-setuptools git
  2. sudo easy_install virtualenv virtualenvwrapper
  3. git clone git@github.com:Gluejar/regluit.git
  4. cd regluit
  5. mkvirtualenv --no-site-packages regluit
  6. pip install -r requirements.pip
  7. add2virtualenv ..
  8. cp settings/dev.py settings/me.py
  9. edit settings/me.py and set EMAIL_HOST_USER and EMAIL_HOST_PASSWORD to your gmail username and password, if you want to see that registration emails will work properly.
  10. edit settings/me.py and look at the facebook, twitter and google auth settings to enable federated logins from those sites
  11. echo 'export DJANGO_SETTINGS_MODULE=regluit.settings.me' >> ~/.virtualenvs/regluit/bin/postactivate
  12. deactivate ; workon regluit
  13. django-admin.py syncdb --migrate --noinput
  14. django-admin.py runserver 0.0.0.0:8000 (you can change the port number from the default value of 8000)
  15. point your browser at http://localhost:8000/

Production Deployment

  1. create an ubuntu natty ec2 instance using ami-1aad5273
  2. sudo aptitude update
  3. sudo aptitude upgrade
  4. sudo aptitude install git apache libapache2-mod-wsgi mysql-client libmysqlclient-dev python-virtualenv python-dev
  5. sudo mkdir /opt/regluit
  6. sudo chown ubuntu:ubuntu /opt/regluit
  7. cd /opt
  8. git config --global user.name "Ed Summers"
  9. git config --global user.email "ehs@pobox.com"
  10. ssh-keygen
  11. add ~/.ssh/id_rsa.pub as a deploy key on github
  12. git clone git@github.com:Gluejar/regluit.git
  13. cd /opt/regluit
  14. cp settings/dev.py settings/prod.py
  15. create an Amazon RDS instance
  16. connect to it, e.g. mysql -u root -h gluejardb.cboagmr25pjs.us-east-1.rds.amazonaws.com -p
  17. CREATE DATABASE unglueit CHARSET utf8;
  18. GRANT ALL ON unglueit.* TO unglueit@ip-10-244-250-168.ec2.internal IDENTIFIED BY 'unglueit' REQUIRE SSL
  19. update settings/prod.py with database credentials
  20. virtualenv --no-site-packages ENV
  21. source ENV/bin/activate
  22. pip install -r requirements.pip
  23. echo "/opt/" > ENV/lib/python2.7/site-packages/regluit.pth
  24. django-admin.py syncdb --migrate --settings regluit.settings.prod
  25. sudo ln -s /opt/regluit/deploy/regluit.conf /etc/apache2/sites-available/regluit
  26. sudo a2ensite regluit
  27. sudo /etc/init.d/apache2 restart

OS X Develper Notes

To run regluit on OS X you should have XCode installed

Install virtualenvwrapper according to the process at http://blog.praveengollakota.com/47430655:

  1. sudo easy_install pip
  2. sudo pip install virtualenv
  3. pip install virtualenvwrapper

Edit or create .bashrc in ~ to enable virtualenvwrapper commands:

  1. mkdir ~/.virtualenvs
  2. Edit .bashrc to include the following lines: export WORKON_HOME=$HOME/.virtualenvs source <your_path_to_virtualenvwrapper.sh_here>

In the above web site, the path to virtualenvwrapper.sh was /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh In Snow Leopard, this may be /usr/local/bin/virtualenvwrapper.sh

Configure Terminal to automatically notice this at startup: Terminal > Preferences > Settings > Shell Click "run command"; add source ~/.bashrc

Selenium Install

Download the selenium server: http://selenium.googlecode.com/files/selenium-server-standalone-2.5.0.jar

Start the selenium server: 'java -jar selenium-server-standalone-2.5.0.jar'