Merge branch 'feature/production-1.1' into develop
This commit is contained in:
commit
29b86ed501
15 changed files with 250 additions and 3 deletions
19
configs/circus.dynamicweb.ini.example
Normal file
19
configs/circus.dynamicweb.ini.example
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
[circus]
|
||||||
|
check_delay = 5
|
||||||
|
endpoint = tcp://127.0.0.1:5555
|
||||||
|
pubsub_endpoint = tcp://127.0.0.1:5556
|
||||||
|
stats_endpoint = tcp://127.0.0.1:5557
|
||||||
|
copy_env = True
|
||||||
|
|
||||||
|
[socket:dynamicweb]
|
||||||
|
host = 127.0.0.1
|
||||||
|
port = 8080
|
||||||
|
|
||||||
|
[watcher:dynamicweb]
|
||||||
|
cmd = /home/r/.virtualenvs/dynamicweb/bin/chaussette --backend meinheld --fd $(circus.sockets.dynamicweb) dynamicweb.wsgi.application
|
||||||
|
use_sockets = True
|
||||||
|
copy_env = True
|
||||||
|
numprocesses = 5
|
||||||
|
|
||||||
|
[env:dynamicweb]
|
||||||
|
PYTHONPATH = /home/r/dynamicweb
|
7
configs/circus.nginx.ini.example
Normal file
7
configs/circus.nginx.ini.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[watcher:nginx]
|
||||||
|
cmd = /usr/sbin/nginx -c nginx.dynamicweb.conf
|
||||||
|
numprocesses = 1
|
||||||
|
use_sockets = False
|
||||||
|
copy_env = True
|
||||||
|
singleton = True
|
||||||
|
autostart = True
|
17
configs/circus.ungleich.ini
Normal file
17
configs/circus.ungleich.ini
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
[circus]
|
||||||
|
check_delay = 5
|
||||||
|
endpoint = tcp://127.0.0.1:5555
|
||||||
|
pubsub_endpoint = tcp://127.0.0.1:5556
|
||||||
|
stats_endpoint = tcp://127.0.0.1:5557
|
||||||
|
|
||||||
|
[watcher:web]
|
||||||
|
cmd = /home/r/.virtualenvs/dynamicweb-blog/bin/chaussette --fd $(circus.sockets.web) --backend tornado dynamicweb.wsgi.application
|
||||||
|
use_sockets = True
|
||||||
|
numprocesses = 5
|
||||||
|
copy_env = True
|
||||||
|
virtualenv = /home/r/.virtualenvs/dynamicweb-blog
|
||||||
|
|
||||||
|
[socket:web]
|
||||||
|
host = 127.0.0.1
|
||||||
|
port = 8000
|
||||||
|
copy_env = True
|
27
configs/docker.services.yml
Normal file
27
configs/docker.services.yml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
postgresql:
|
||||||
|
image: postgres
|
||||||
|
env_file: envs/psql.env
|
||||||
|
hostname: db
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
image: nginx
|
||||||
|
env_file: envs/nginx.env
|
||||||
|
hostname: proxy
|
||||||
|
volumes:
|
||||||
|
- sites-enabled:/etc/nginx/conf.d
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
|
||||||
|
memcached:
|
||||||
|
image: memcached
|
||||||
|
env_file: envs/memcached.env
|
||||||
|
hostname: cache
|
||||||
|
|
||||||
|
dynamicweb:
|
||||||
|
build: .
|
||||||
|
links:
|
||||||
|
- memcached
|
||||||
|
- db
|
||||||
|
- proxy
|
69
configs/nginx.dynamicweb.conf
Normal file
69
configs/nginx.dynamicweb.conf
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
user www-data;
|
||||||
|
worker_processes 2;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
daemon off;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 512;
|
||||||
|
# multi_accept on;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
sendfile on;
|
||||||
|
tcp_nopush on;
|
||||||
|
tcp_nodelay on;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
types_hash_max_size 2048;
|
||||||
|
server_tokens off;
|
||||||
|
port_in_redirect on;
|
||||||
|
|
||||||
|
server_names_hash_bucket_size 128;
|
||||||
|
server_name_in_redirect off;
|
||||||
|
|
||||||
|
client_max_body_size 60m;
|
||||||
|
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
send_timeout 300;
|
||||||
|
client_body_timeout 300;
|
||||||
|
client_header_timeout 300;
|
||||||
|
|
||||||
|
access_log /logs/access.log;
|
||||||
|
error_log /logs/error.log;
|
||||||
|
|
||||||
|
gzip on;
|
||||||
|
gzip_disable "msie6";
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_comp_level 6;
|
||||||
|
gzip_buffers 16 8k;
|
||||||
|
gzip_http_version 1.1;
|
||||||
|
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
||||||
|
|
||||||
|
upstream django {
|
||||||
|
server 127.0.0.1:8000;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80 default;
|
||||||
|
server_name localhost;
|
||||||
|
location / {
|
||||||
|
proxy_pass http://django;
|
||||||
|
include proxy_params;
|
||||||
|
}
|
||||||
|
location /media/ {
|
||||||
|
root /data;
|
||||||
|
expires max;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
location /static/ {
|
||||||
|
root /data;
|
||||||
|
expires max;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
location ~ /\.ht { deny all; }
|
||||||
|
location ~ /\.hg { deny all; }
|
||||||
|
location ~ /\.svn { deny all; }
|
||||||
|
}
|
||||||
|
}
|
25
configs/nginx.proxy.conf
Normal file
25
configs/nginx.proxy.conf
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
server {
|
||||||
|
listen destruction.io:8080;
|
||||||
|
server_name destruction.io;
|
||||||
|
|
||||||
|
location /static {
|
||||||
|
alias /home/r/dynamicweb/static/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /media {
|
||||||
|
alias /home/r/dynamicweb/media/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:8000/;
|
||||||
|
proxy_pass_header Server;
|
||||||
|
proxy_set_header Host $host:8080;
|
||||||
|
proxy_set_header X-Forwarded-Host $host:8080;
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Scheme $scheme;
|
||||||
|
proxy_connect_timeout 600;
|
||||||
|
proxy_send_timeout 600;
|
||||||
|
proxy_read_timeout 600;
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,10 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
# Quick-start development settings - unsuitable for production
|
# Quick-start development settings - unsuitable for production
|
||||||
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
|
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
|
||||||
|
|
||||||
|
ADMINS = (
|
||||||
|
('Nico Schottelius', 'nico.schottelius@ungleich.ch'),
|
||||||
|
)
|
||||||
|
|
||||||
SITE_ID = 1
|
SITE_ID = 1
|
||||||
|
|
||||||
APP_ROOT_ENDPOINT = "/"
|
APP_ROOT_ENDPOINT = "/"
|
||||||
|
@ -225,6 +229,12 @@ CMS_PLACEHOLDER_CONF = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CACHES = {
|
||||||
|
'default': {
|
||||||
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||||
|
'LOCATION': 'unix:/tmp/memcached.sock',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from dynamicweb.local.local_settings import *
|
from dynamicweb.local.local_settings import *
|
||||||
|
@ -250,8 +260,9 @@ STATIC_URL = '/static/'
|
||||||
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
|
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
|
||||||
|
|
||||||
# Media files.
|
# Media files.
|
||||||
MEDIA_ROOT = os.path.abspath(os.path.join(BASE_DIR, '..', 'media'))
|
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
|
||||||
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
|
MEDIA_URL = APP_ROOT_ENDPOINT + 'media/'
|
||||||
|
FILE_UPLOAD_PERMISSIONS = 0o644
|
||||||
|
|
||||||
# Templates confs
|
# Templates confs
|
||||||
TEMPLATE_DIRS = (
|
TEMPLATE_DIRS = (
|
||||||
|
@ -305,7 +316,9 @@ THUMBNAIL_PROCESSORS = (
|
||||||
|
|
||||||
# django-cms-text-ckeditor
|
# django-cms-text-ckeditor
|
||||||
TEXT_SAVE_IMAGE_FUNCTION='cmsplugin_filer_image.integrations.ckeditor.create_image_plugin'
|
TEXT_SAVE_IMAGE_FUNCTION='cmsplugin_filer_image.integrations.ckeditor.create_image_plugin'
|
||||||
|
TEXT_ADDITIONAL_TAGS = ('iframe',)
|
||||||
|
TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder')
|
||||||
|
USE_X_FORWARDED_HOST = True
|
||||||
try:
|
try:
|
||||||
from .local.local_settings import *
|
from .local.local_settings import *
|
||||||
except ImportError as e:
|
except ImportError as e:
|
||||||
|
|
0
foo.txt
0
foo.txt
13
requirements.debian.txt
Normal file
13
requirements.debian.txt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
python3-dev
|
||||||
|
virtualenvwrapper
|
||||||
|
libzmq-dev
|
||||||
|
libevent-dev
|
||||||
|
nginx
|
||||||
|
postgresql
|
||||||
|
postgresql-dev
|
||||||
|
postgresql-server-dev-9.4
|
||||||
|
memcached
|
||||||
|
libmemcached-dev
|
||||||
|
libxml2-dev
|
||||||
|
libxslt1-dev
|
||||||
|
python3-lxml # this depends on the amount of ram that the server has.
|
|
@ -3,6 +3,7 @@ psycopg2>=2.6
|
||||||
Pillow>=2
|
Pillow>=2
|
||||||
html5lib==0.999
|
html5lib==0.999
|
||||||
six==1.3.0 #compat
|
six==1.3.0 #compat
|
||||||
|
python-memcached
|
||||||
|
|
||||||
# django
|
# django
|
||||||
django==1.7.8
|
django==1.7.8
|
||||||
|
@ -42,3 +43,10 @@ djangocms-oembed
|
||||||
djangocms-table
|
djangocms-table
|
||||||
|
|
||||||
cmsplugin-filer==0.10.1
|
cmsplugin-filer==0.10.1
|
||||||
|
|
||||||
|
# production
|
||||||
|
-e git+git@github.com:circus-tent/circus.git#egg=circus
|
||||||
|
circus-web
|
||||||
|
chaussette
|
||||||
|
meinheld
|
||||||
|
gevent
|
||||||
|
|
|
@ -3,6 +3,7 @@ psycopg2==2.6
|
||||||
Pillow==2.8.1
|
Pillow==2.8.1
|
||||||
html5lib==0.999
|
html5lib==0.999
|
||||||
six==1.3.0
|
six==1.3.0
|
||||||
|
python-memcached==1.54
|
||||||
|
|
||||||
# django
|
# django
|
||||||
django==1.7.8
|
django==1.7.8
|
||||||
|
@ -41,11 +42,18 @@ djangocms-oembed==0.5
|
||||||
djangocms-table==1.2
|
djangocms-table==1.2
|
||||||
|
|
||||||
cmsplugin-filer==0.10.1
|
cmsplugin-filer==0.10.1
|
||||||
|
|
||||||
|
# production
|
||||||
|
circus==0.11.1
|
||||||
|
circus-web==0.5
|
||||||
|
chaussette==1.2
|
||||||
|
meinheld==0.5.7
|
||||||
## The following requirements were added by pip freeze:
|
## The following requirements were added by pip freeze:
|
||||||
aldryn-blog==0.4.6
|
aldryn-blog==0.4.6
|
||||||
aldryn-boilerplates==0.7
|
aldryn-boilerplates==0.7
|
||||||
aldryn-common==0.1.3
|
aldryn-common==0.1.3
|
||||||
aldryn-search==0.2.7
|
aldryn-search==0.2.7
|
||||||
|
anyjson==0.3.3
|
||||||
cssselect==0.9.1
|
cssselect==0.9.1
|
||||||
Django==1.7.8
|
Django==1.7.8
|
||||||
django-admin-enhancer==1.0.0
|
django-admin-enhancer==1.0.0
|
||||||
|
@ -67,12 +75,22 @@ django-taggit-autosuggest==0.2.7
|
||||||
django-taggit-templatetags==0.2.5
|
django-taggit-templatetags==0.2.5
|
||||||
django-templatetag-sugar==1.0
|
django-templatetag-sugar==1.0
|
||||||
easy-thumbnails==2.2
|
easy-thumbnails==2.2
|
||||||
|
greenlet==0.4.7
|
||||||
|
iowait==0.2
|
||||||
lxml==3.4.4
|
lxml==3.4.4
|
||||||
|
Mako==1.0.1
|
||||||
|
MarkupSafe==0.23
|
||||||
micawber==0.3.2
|
micawber==0.3.2
|
||||||
ply==3.6
|
ply==3.6
|
||||||
|
psutil==2.2.1
|
||||||
pyquery==1.2.9
|
pyquery==1.2.9
|
||||||
pytz==2015.4
|
pytz==2015.4
|
||||||
|
pyzmq==14.6.0
|
||||||
|
simplejson==3.7.2
|
||||||
South==1.0.2
|
South==1.0.2
|
||||||
|
tomako==0.1.0
|
||||||
|
TornadIO2==0.0.4
|
||||||
|
tornado==4.2
|
||||||
Unidecode==0.4.17
|
Unidecode==0.4.17
|
||||||
URLObject==2.4.0
|
URLObject==2.4.0
|
||||||
YURL==0.13
|
YURL==0.13
|
||||||
|
|
|
@ -397,3 +397,7 @@ body {
|
||||||
.text-center {
|
.text-center {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.blog-content img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
13
templates/404.html
Normal file
13
templates/404.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Page not found</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Page not found</h1>
|
||||||
|
|
||||||
|
<p>Sorry, but the requested page could not be found.</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
15
templates/505.html
Normal file
15
templates/505.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
||||||
|
"http://www.w3.org/TR/html4/strict.dtd">
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>Page unavailable</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Page unavailable</h1>
|
||||||
|
|
||||||
|
<p>Sorry, but the requested page is unavailable due to a
|
||||||
|
server hiccup.</p>
|
||||||
|
|
||||||
|
<p>Our engineers have been notified, so check back later.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -8,7 +8,6 @@ import filer.fields.image
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('filer', '0002_auto_20150522_0450'),
|
|
||||||
('ungleich', '0001_initial'),
|
('ungleich', '0001_initial'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue