diff --git a/.gitignore b/.gitignore index 2954c1d..e9a0c00 100644 --- a/.gitignore +++ b/.gitignore @@ -8,5 +8,17 @@ venv settings_local.py media/cache -static tags + +media/css/pro.css +media/css/snipt.css +media/js/src/account.min.js +media/js/src/snipts.min.js +media/js/src/search.min.js +media/js/src/jobs.min.js +media/js/src/application.min.js +media/js/src/modules/site.min.js +media/js/src/modules/snipt.min.js +media/js/src/pro.min.js +media/js/snipt-all.min.js +media/js/pro-all.min.js diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6fc3eb5..0000000 --- a/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM debian:jessie -ENV DEBIAN_FRONTEND noninteractive -RUN apt-get update && apt-get install -y \ - build-essential \ - python \ - python-dev \ - python-setuptools \ - git-core \ - mercurial \ - libxml2-dev \ - libxslt-dev \ - libpq-dev -RUN easy_install pip -COPY . /app/snipt -RUN pip install -r /app/snipt/requirements.txt -RUN pip install --index-url https://code.stripe.com --upgrade stripe -ADD .docker/run.sh /docker-run -RUN mkdir -p /tmp/app -WORKDIR /app/snipt -EXPOSE 8000 -CMD ["/docker-run"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..32f87e1 --- /dev/null +++ b/Makefile @@ -0,0 +1,68 @@ +deploy: + @git push heroku heroku:master + +deploy-with-assets: + @cat media/css/bootstrap.min.css \ + media/css/blog-themes/pro-adams/style.css \ + media/css/highlightjs-themes/tomorrow.css \ + media/css/themes.css \ + > media/css/pro.css + @cat media/css/bootstrap.min.css \ + media/css/style.css \ + media/css/themes.css \ + media/css/chosen.css \ + media/css/codemirror.css \ + media/css/codemirror-themes/ambiance.css \ + media/css/codemirror-themes/blackboard.css \ + media/css/codemirror-themes/cobalt.css \ + media/css/codemirror-themes/eclipse.css \ + media/css/codemirror-themes/elegant.css \ + media/css/codemirror-themes/erlang-dark.css \ + media/css/codemirror-themes/lesser-dark.css \ + media/css/codemirror-themes/monokai.css \ + media/css/codemirror-themes/neat.css \ + media/css/codemirror-themes/night.css \ + media/css/codemirror-themes/rubyblue.css \ + media/css/codemirror-themes/solarized.css \ + media/css/codemirror-themes/twilight.css \ + media/css/codemirror-themes/vibrant-ink.css \ + media/css/codemirror-themes/xq-dark.css \ + media/css/highlightjs-themes/tomorrow.css \ + media/css/blog-themes/default/style.css \ + > media/css/snipt.css + @cat media/js/src/account.js|jsmin > media/js/src/account.min.js + @cat media/js/src/snipts.js|jsmin > media/js/src/snipts.min.js + @cat media/js/src/search.js|jsmin > media/js/src/search.min.js + @cat media/js/src/jobs.js|jsmin > media/js/src/jobs.min.js + @cat media/js/src/application.js|jsmin > media/js/src/application.min.js + @cat media/js/src/modules/site.js|jsmin > media/js/src/modules/site.min.js + @cat media/js/src/modules/snipt.js|jsmin > media/js/src/modules/snipt.min.js + @cat media/js/src/pro.js|jsmin > media/js/src/pro.min.js + @cat media/js/libs/jquery.min.js \ + media/js/libs/jquery-ui.min.js \ + media/js/libs/angular.min.js \ + media/js/libs/angular-route.min.js \ + media/js/libs/underscore.js \ + media/js/libs/json2.js \ + media/js/libs/backbone.js \ + media/js/libs/bootstrap.min.js \ + media/js/plugins/jquery.hotkeys.js \ + media/js/plugins/jquery.infieldlabel.js \ + media/js/plugins/jquery.chosen.js \ + media/js/src/application.min.js \ + media/js/src/modules/site.min.js \ + media/js/src/modules/snipt.min.js \ + media/js/src/account.min.js \ + media/js/src/snipts.min.js \ + media/js/src/search.min.js \ + media/js/src/jobs.min.js \ + media/js/libs/codemirror.js \ + media/js/libs/highlight.js \ + > media/js/snipt-all.min.js + @cat media/js/libs/highlight.js \ + media/js/src/pro.js \ + > media/js/pro-all.min.js + /Users/Nick/.virtualenvs/snipt/bin/python manage.py collectstatic --noinput + @git push heroku heroku:master + +.PHONY: deploy, deploy-with-assets diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..b94b07e --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: gunicorn wsgi --log-file - diff --git a/README.md b/README.md index 012c4e5..c1f64a3 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,36 @@ This is the codebase for the website, [Snipt.net](https://snipt.net/). -It's a relatively well-kept Django app, so you shouldn't have too many problems getting a local copy running. - -**Note:** These instructions assume you already have [Git](http://git-scm.com/) and [Mercurial](http://mercurial.selenic.com/) installed. - -If you need help, visit `#snipt` on irc.freenode.net. - # Running the Django app 1. Clone the repo. 2. Setup a virtualenv. 3. `pip install -r requirements.txt` 4. `pip install --index-url https://code.stripe.com --upgrade stripe` -5. Copy settings_local-template.py to settings_local.py and edit the settings. Be sure to change the [`SESSION_COOKIE_DOMAIN`](https://github.com/nicksergeant/snipt/blob/master/settings_local-template.py#L58), or authentication won't work. -6. `python manage.py syncdb` -7. `python manage.py migrate` -8. `python manage.py runserver` -9. If you created a superuser in the syncdb step, you need to also run `python manage.py backfill_api_keys` to generate an API key for that user. +5. `python manage.py syncdb` +6. `python manage.py migrate` +7. `python manage.py runserver` +8. If you created a superuser in the syncdb step, you need to also run `python manage.py backfill_api_keys` to generate an API key for that user. + +# Deploying to Heroku + +1. Clone the repo. +2. `heroku create` +3. `heroku addons:add heroku-postgresql:standard-0` +4. `heroku addons:add bonsai` +5. `heroku config:add AWS_ACCESS_KEY_ID=` +6. `heroku config:add AWS_SECRET_ACCESS_KEY=` +7. `heroku config:add AWS_STORAGE_BUCKET_NAME=` +8. `heroku config:add DEBUG=False` +9. `heroku config:add INTERCOM_SECRET_KEY=` +9. `heroku config:add POSTMARK_API_KEY=` +11. `heroku config:add RAVEN_CONFIG_DSN=` +12. `heroku config:add SECRET_KEY=` +13. `heroku config:add STRIPE_SECRET_KEY=` +14. `heroku config:add USE_SSL=False` +15. `git push heroku` +16. `heroku run pip install --index-url https://code.stripe.com --upgrade stripe` +17. `heroku run python manage.py syncdb` +18. `heroku run python manage.py migrate` Any problems / questions / bugs, [create an issue](https://github.com/nicksergeant/snipt/issues). Thanks! :) diff --git a/accounts/views.py b/accounts/views.py index ed4213d..2843e62 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -2,9 +2,7 @@ from django.contrib.auth.decorators import login_required from annoying.decorators import ajax_request, render_to from snipts.models import Snipt -import stripe - -from settings_local import STRIPE_SECRET_KEY +import os, stripe @login_required @@ -20,7 +18,7 @@ def cancel_subscription(request): if request.user.profile.stripe_id is None: return {} else: - stripe.api_key = STRIPE_SECRET_KEY + stripe.api_key = os.environ.get('STRIPE_SECRET_KEY', '') customer = stripe.Customer.retrieve(request.user.profile.stripe_id) customer.delete() @@ -38,7 +36,7 @@ def stripe_account_details(request): if request.user.profile.stripe_id is None: return {} else: - stripe.api_key = STRIPE_SECRET_KEY + stripe.api_key = os.environ.get('STRIPE_SECRET_KEY', '') customer = stripe.Customer.retrieve(request.user.profile.stripe_id) data = { diff --git a/blogs/templates/blogs/themes/pro-adams/base.html b/blogs/templates/blogs/themes/pro-adams/base.html index ecda596..38287f9 100644 --- a/blogs/templates/blogs/themes/pro-adams/base.html +++ b/blogs/templates/blogs/themes/pro-adams/base.html @@ -35,7 +35,7 @@ {% endif %} - + {% if custom_css %}