webapp for unglue.it
 
 
 
 
 
 
Go to file
Ed Summers b22d8a82c5 removed TEST_RUNNER declaration since djcelery.contrib.test_runner.run_tests no longer seems to exist in latest djcelery package. not really sure why it was there in the first place. 2011-12-20 09:15:57 -05:00
api removed isbn_10 column and fixed many isbn13 non-compliance issues 2011-12-19 23:26:55 -05:00
core blindly trying what the error messages say to do 2011-12-19 23:45:44 -05:00
deploy Added 2011-11-29 12:03:48 -08:00
docs implementation of read-only api for Work, Edition, Subject, Campaign, Author 2011-09-12 14:50:29 -07:00
experimental now getting subjects from openlibrary instead of from googlebooks. You will need to APPLY MIGRATIONS! 2011-12-19 01:33:13 -05:00
frontend removed isbn_10 column and fixed many isbn13 non-compliance issues 2011-12-19 23:26:55 -05:00
logs need this log directory 2011-09-04 05:40:12 +00:00
payment Merging jkace's changes into payment en route to integrating into master 2011-12-14 08:52:48 -08:00
settings removed TEST_RUNNER declaration since djcelery.contrib.test_runner.run_tests no longer seems to exist in latest djcelery package. not really sure why it was there in the first place. 2011-12-20 09:15:57 -05:00
static tab coloring on support page and hover states in share column on work page 2011-12-19 12:22:00 -05:00
test Adding basic selenium powered unit tests for payments 2011-10-04 07:55:39 -04:00
test-data removed duplicate works until work deduping is working again 2011-10-10 17:25:55 -04:00
.gitignore ignore last update file 2011-11-17 23:08:48 +00:00
.gitignore~ privacy policy updated with paypal info 2011-09-28 13:28:12 -04:00
README.md Update README.md 2011-12-02 14:01:03 -05:00
__init__.py setup api, core and frontend apps, also added initial homepage template from stefan 2011-08-30 23:46:55 -04:00
admin.py Adding Transaction to the admin view 2011-11-30 15:26:41 -08: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 woo hoo! autocomplete input on rightsholder creation form. uses app django-selectable 2011-11-18 09:24:31 -05:00
selenium-server-standalone-2.5.0.jar switching css over to a less system with aim of greater maintainability. 2011-10-11 09:32:52 -04:00
urls.py django.contrib.admin must appear after regluit.frontend in INSTALLED_APPS or else the registration templates are found there instead of in frontend/templates/registration 2011-11-19 15:10:10 -05: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 python-lxml
  2. sudo easy_install virtualenv virtualenvwrapper
  3. git clone git@github.com:Gluejar/regluit.git
  4. cd regluit
  5. mkvirtualenv 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 celeryd --loglevel=INFO start the celery daemon to perform asynchronous tasks like adding related editions, and display logging information in the foreground.`
  15. django-admin.py runserver 0.0.0.0:8000 (you can change the port number from the default value of 8000)
  16. point your browser at http://localhost:8000/

Production Deployment

Below are the steps for getting regluit running on EC2 with Apache and mod_wsgi, and talking to an Amazon Relational Data Store instance.

  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 python-virtualenv python-mysqldb redis-server python-lxml postfix
  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 https://github.com/Gluejar/regluit/admin/keys
  12. git clone git@github.com:Gluejar/regluit.git
  13. cd /opt/regluit
  14. create an Amazon RDS instance
  15. connect to it, e.g. mysql -u root -h gluejardb.cboagmr25pjs.us-east-1.rds.amazonaws.com -p
  16. CREATE DATABASE unglueit CHARSET utf8;
  17. GRANT ALL ON unglueit.\* TO unglueit@ip-10-244-250-168.ec2.internal IDENTIFIED BY 'unglueit' REQUIRE SSL
  18. update settings/prod.py with database credentials
  19. virtualenv ENV
  20. source ENV/bin/activate
  21. pip install -r requirements.pip
  22. echo "/opt/" > ENV/lib/python2.7/site-packages/regluit.pth
  23. django-admin.py syncdb --migrate --settings regluit.settings.prod
  24. django-admin.py collectstatic --settings regluit.settings.prod
  25. sudo ln -s /opt/regluit/deploy/regluit.conf /etc/apache2/sites-available/regluit
  26. sudo a2ensite regluit
  27. sudo a2enmod ssl
  28. 'sudo a2ensite default-ssl`
  29. edit /etc/apache2/sites-available/default-ssl to use correct ssl certificate if necessary
  30. sudo /etc/init.d/apache2 restart
  31. sudo adduser --no-create-home celery --disabled-password --disabled-login
  32. sudo cp deploy/celeryd /etc/init.d/celeryd
  33. sudo chmod 755 /etc/init.d/celeryd
  34. sudo cp deploy/celeryd.conf /etc/default/celeryd
  35. sudo mkdir /var/log/celery
  36. sudo chown celery:celery /var/log/celery
  37. sudo mkdir /var/run/celery
  38. sudo chown celery:celery /var/run/celery
  39. sudo /etc/init.d/celeryd start

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'