summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAamir Khan <syst3m.w0rm@gmail.com>2012-08-10 20:40:00 +0530
committerAamir Khan <syst3m.w0rm@gmail.com>2012-08-10 20:40:00 +0530
commitff013e20a352307b5609efa7e703a14fbc86f838 (patch)
tree5392a0a9fdc62e738b56e701e1376355dd8a5eb2
parente616552055a06295cf6ef78cb62f1a9d2743fcab (diff)
downloadhk-app-ff013e20a352307b5609efa7e703a14fbc86f838.tar.gz
hk-app-ff013e20a352307b5609efa7e703a14fbc86f838.tar.xz
hk-app-ff013e20a352307b5609efa7e703a14fbc86f838.zip
Apache deployment files
-rw-r--r--apache/README.rst17
-rw-r--r--apache/__init__.py0
-rw-r--r--apache/apache_django_wsgi.conf23
-rwxr-xr-xapache/django.wsgi42
-rw-r--r--apache/settings_production.py193
-rw-r--r--apache/urls_production.py38
6 files changed, 313 insertions, 0 deletions
diff --git a/apache/README.rst b/apache/README.rst
new file mode 100644
index 0000000..e06893a
--- /dev/null
+++ b/apache/README.rst
@@ -0,0 +1,17 @@
+Create logs directory
+---------------------
+**mkdir -p logs**
+
+Create python egg directory
+---------------------------
+**mkdir -p .python-egg**
+chmod -R 777 .python-egg/
+
+
+
+Edit httpd.conf
+---------------
+
+Add the following line in your httpd.conf (generally present at /etc/apache2/httpd.conf)
+
+Include "/path/to/application/apache/apache_django_wsgi.conf"
diff --git a/apache/__init__.py b/apache/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/apache/__init__.py
diff --git a/apache/apache_django_wsgi.conf b/apache/apache_django_wsgi.conf
new file mode 100644
index 0000000..d7fddec
--- /dev/null
+++ b/apache/apache_django_wsgi.conf
@@ -0,0 +1,23 @@
+<VirtualHost *:80>
+
+ Alias /robots.txt /home/akhan/hyperkitty/robots.txt
+ Alias /favicon.ico /home/akhan/hyperkitty/favicon.ico
+ Alias /static /home/akhan/hyperkitty/static
+
+ ErrorLog /home/akhan/hyperkitty/logs/error.log
+ CustomLog /home/akhan/hyperkitty/logs/access.log combined
+
+ WSGIScriptAlias / /home/akhan/hyperkitty/apache/django.wsgi
+ WSGIDaemonProcess akhan user=akhan group=users threads=25
+
+ <Directory "/home/akhan/hyperkitty/apache">
+ Order deny,allow
+ Allow from all
+ </Directory>
+
+ <Directory "/home/akhan/hyperkitty">
+ Order allow,deny
+ Allow from all
+ </Directory>
+
+</VirtualHost>
diff --git a/apache/django.wsgi b/apache/django.wsgi
new file mode 100755
index 0000000..cc699a4
--- /dev/null
+++ b/apache/django.wsgi
@@ -0,0 +1,42 @@
+import os
+import sys
+import site
+
+STAGING=True
+
+if STAGING:
+ # staging virtual environment
+ vepath = '/home/akhan/.virtualenvs/wackyenv/lib/python2.7/site-packages'
+else:
+ # live virtual environment
+ vepath = '/home/akhan/.virtualenvs/live-server/lib/python2.7/site-packages'
+
+prev_sys_path = list(sys.path)
+
+# add the site-packages of our virtualenv as a site dir
+site.addsitedir(vepath)
+
+# add the app's directory to the PYTHONPATH
+sys.path.append('/home/akhan/gsoc')
+
+# reorder sys.path so new directories from the addsitedir show up first
+new_sys_path = [p for p in sys.path if p not in prev_sys_path]
+
+for item in new_sys_path:
+ sys.path.remove(item)
+sys.path[:0] = new_sys_path
+
+
+#Calculate the path based on the location of the WSGI script.
+apache_configuration= os.path.dirname(__file__)
+project = os.path.dirname(apache_configuration)
+workspace = os.path.dirname(project)
+sys.path.append(workspace)
+
+
+os.environ['DJANGO_SETTINGS_MODULE'] = 'gsoc.apache.settings_production'
+# make sure this directory is writable by wsgi process
+os.environ['PYTHON_EGG_CACHE'] = '/home/akhan/gsoc/.python-egg'
+
+from django.core.handlers.wsgi import WSGIHandler
+application = WSGIHandler()
diff --git a/apache/settings_production.py b/apache/settings_production.py
new file mode 100644
index 0000000..aca6f61
--- /dev/null
+++ b/apache/settings_production.py
@@ -0,0 +1,193 @@
+import os
+
+BASE_DIR = os.path.dirname(os.path.abspath(__file__))
+# Django settings for hyperkitty project.
+
+DEBUG = False
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+ ('Aamir Khan', 'syst3m.w0rm+hk@gmail.com'),
+)
+
+MANAGERS = ADMINS
+
+MAILMAN_API_URL=r'http://%(username)s:%(password)s@localhost:8001/3.0/'
+MAILMAN_USER='mailmanapi'
+MAILMAN_PASS='88ffd62d1094a6248415c59d7538793f3df5de2f04d244087952394e689e902a'
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+ 'NAME': 'hk', # Or path to database file if using sqlite3.
+ 'USER': 'root', # Not used with sqlite3.
+ 'PASSWORD': 'rootroot', # Not used with sqlite3.
+ 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
+ 'PORT': '', # Set to empty string for default. Not used with sqlite3.
+ }
+}
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# On Unix systems, a value of None will cause Django to use the same
+# timezone as the operating system.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Chicago'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# If you set this to False, Django will not format dates, numbers and
+# calendars according to the current locale
+USE_L10N = True
+
+# Absolute filesystem path to the directory that will hold user-uploaded files.
+# Example: "/home/media/media.lawrence.com/media/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash.
+# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
+MEDIA_URL = ''
+
+# Absolute path to the directory static files should be collected to.
+# Don't put anything in this directory yourself; store your static files
+# in apps' "static/" subdirectories and in STATICFILES_DIRS.
+# Example: "/home/media/media.lawrence.com/static/"
+#STATIC_ROOT = ''
+STATIC_ROOT = BASE_DIR + '/static_files/'
+
+# URL prefix for static files.
+# Example: "http://media.lawrence.com/static/"
+STATIC_URL = '/static/'
+
+# URL prefix for admin static files -- CSS, JavaScript and images.
+# Make sure to use a trailing slash.
+# Examples: "http://foo.com/static/admin/", "/static/admin/".
+ADMIN_MEDIA_PREFIX = '/static/admin/'
+
+# Additional locations of static files
+STATICFILES_DIRS = (
+ # Put strings here, like "/home/html/static" or "C:/www/django/static".
+ # Always use forward slashes, even on Windows.
+ # Don't forget to use absolute paths, not relative paths.
+ BASE_DIR + '/static/',
+)
+
+# List of finder classes that know how to find static files in
+# various locations.
+STATICFILES_FINDERS = (
+ 'django.contrib.staticfiles.finders.FileSystemFinder',
+ 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
+# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
+)
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = 'dtc3%x(k#mzpe32dmhtsb6!3p(izk84f7nuw1-+4x8zsxwsa^z'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+ 'django.template.loaders.filesystem.Loader',
+ 'django.template.loaders.app_directories.Loader',
+# 'django.template.loaders.eggs.Loader',
+)
+
+
+TEMPLATE_CONTEXT_PROCESSORS = (
+ "django.contrib.auth.context_processors.auth",
+ "django.contrib.messages.context_processors.messages",
+ "django.core.context_processors.debug",
+ "django.core.context_processors.i18n",
+ "django.core.context_processors.media",
+ "django.core.context_processors.static",
+ "django.core.context_processors.csrf",
+ "django.contrib.messages.context_processors.messages",
+ "hyperkitty.context_processors.app_name",
+)
+
+
+MIDDLEWARE_CLASSES = (
+ 'django.middleware.common.CommonMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+)
+
+ROOT_URLCONF = 'hyperkitty.apache.urls_production'
+
+TEMPLATE_DIRS = (
+ # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+ # Always use forward slashes, even on Windows.
+ # Don't forget to use absolute paths, not relative paths.
+ BASE_DIR + '/templates',
+)
+
+AUTHENTICATION_BACKENDS = (
+ 'social_auth.backends.google.GoogleBackend',
+ 'social_auth.backends.yahoo.YahooBackend',
+ 'social_auth.backends.browserid.BrowserIDBackend',
+ 'social_auth.backends.OpenIDBackend',
+ 'django.contrib.auth.backends.ModelBackend',
+)
+
+INSTALLED_APPS = (
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+ 'django.contrib.admin',
+ 'hyperkitty',
+ 'social_auth',
+ 'djangorestframework',
+ 'gravatar',
+)
+
+
+LOGIN_URL = '/hyperkitty/accounts/login/'
+LOGIN_REDIRECT_URL = '/'
+LOGIN_ERROR_URL = '/hyperkitty/accounts/login/'
+SOCIAL_AUTH_COMPLETE_URL_NAME = 'socialauth_complete'
+SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'
+SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user'
+SOCIAL_AUTH_UUID_LENGTH = 16
+
+AUTH_PROFILE_MODULE = 'hyperkitty.UserProfile'
+
+
+# A sample logging configuration. The only tangible logging
+# performed by this configuration is to send an email to
+# the site admins on every HTTP 500 error.
+# See http://docs.djangoproject.com/en/dev/topics/logging for
+# more details on how to customize your logging configuration.
+LOGGING = {
+ 'version': 1,
+ 'disable_existing_loggers': False,
+ 'handlers': {
+ 'mail_admins': {
+ 'level': 'ERROR',
+ 'class': 'django.utils.log.AdminEmailHandler'
+ }
+ },
+ 'loggers': {
+ 'django.request': {
+ 'handlers': ['mail_admins'],
+ 'level': 'ERROR',
+ 'propagate': True,
+ },
+ }
+}
+
+SOCIAL_AUTH_LAST_LOGIN = 'social_auth_last_login_backend'
+APP_NAME = 'Fedora Mailman App'
+KITTYSTORE_URL = 'postgres://mm3:mm3@localhost/mm3'
diff --git a/apache/urls_production.py b/apache/urls_production.py
new file mode 100644
index 0000000..90a5c58
--- /dev/null
+++ b/apache/urls_production.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 1998-2012 by the Free Software Foundation, Inc.
+#
+# This file is part of Postorius.
+#
+# Postorius is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# Postorius is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# Postorius. If not, see <http://www.gnu.org/licenses/>.
+
+import hyperkitty
+
+from django.conf.urls.defaults import *
+from django.conf import settings
+
+# Uncomment the next two lines to enable the admin:
+from django.contrib import admin
+admin.autodiscover()
+
+# Import mailman urls and set urlpatterns if you want to hook
+# mailman_django into an existing django site.
+# Otherwise set ROOT_URLCONF in settings.py to
+# `mailman_django.urls`.
+# from mailman_django import urls as mailman_urls
+
+urlpatterns = patterns('',
+ url(r'^$', 'hyperkitty.views.pages.index'),
+ (r'^hyperkitty/', include('hyperkitty.urls')),
+ url(r'', include('social_auth.urls')),
+)