STORAGE_NAME=$1 STORAGE_KEY=$2 DNS_NAME=$3 CDN_ROOT=$4.azureedge.net yum install epel-release -y yum install policycoreutils-python -y semanage fcontext -at httpd_sys_rw_content_t "/srv/cdndjango(/.*)?" semanage fcontext -at httpd_sys_content_t "/srv/common(/.*)?" yum install firewalld -y systemctl start firewalld systemctl enable firewalld firewall-cmd --permanent --zone=public --add-interface=eth0 firewall-cmd --permanent --add-service=http --add-service=https --zone=public firewall-cmd --reload # Just for testing... mkdir /srv/common cat > /srv/common/robots.txt << EOF User-agent: ia_archiver Disallow: / EOF # UWSGI yum install uwsgi uwsgi-plugin-python3 -y cat > /etc/uwsgi.d/cdndjango.ini << EOF [uwsgi] project = engine base = /srv/cdndjango/site virtualenv = /srv/cdndjango chdir = %(base) home = %(virtualenv) module = %(project).core.wsgi:application master = true processes = 5 socket = %(base)/%(project).sock chmod-socket = 660 uid = uwsgi gid = uwsgi vacuum = true plugins = python3 EOF chown -R nobody:uwsgi /etc/uwsgi.d chmod -R g+s /etc/uwsgi.d # App yum install python34 python-pip -y 2> /dev/null pip install --upgrade pip pip install --upgrade virtualenv cd /srv virtualenv -p python3 cdndjango chmod -R 2750 /srv/cdndjango setfacl -m d:o:--- /srv/cdndjango cd /srv/cdndjango source bin/activate mkdir site cd site mkdir -p engine/core mkdir templates cat > ./requirements.txt << EOF Django==1.10.1 EOF pip install -r requirements.txt cat > ./engine/core/views.py << EOF from django.shortcuts import render from engine import settings as engine_settings def process(request): render_data = { 'title': 'random demo', 'cdn': engine_settings.CDN_ROOT.replace('https:', '') } return render(request, ['index.html', 'index.htm'], render_data) EOF cat > ./engine/core/__init__.py << EOF EOF cat > ./engine/core/wsgi.py << EOF import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "engine.settings") application = get_wsgi_application() EOF cat > ./engine/core/urls.py << EOF from django.conf.urls import url import sys from . import views class CoreUrl: def init(self): pass def setup(self): self.urlpatterns = [ url(r'^$', views.process), ] return self.urlpatterns urlpatterns = CoreUrl().setup() EOF cat > ./engine/__init__.py << EOF EOF cat > ./engine/settings.py << EOF # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os, sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY = 'whatever8786ubhj8giyhbjhuiybhuhu08h9ui38u084hubj' DEBUG = True ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'does.nothing.in.debug.mode'] INSTALLED_APPS = ( 'engine', 'engine.core', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.messages', ) MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', ) ROOT_URLCONF = 'engine.core.urls' ROOT_PATH = os.path.split(os.path.abspath(__file__))[0] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR, 'templates') ], 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], 'loaders': [ ('django.template.loaders.cached.Loader', [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', ]), ], }, }, ] PROJECT_DIR = os.path.dirname(__file__) STATICFILES_DIRS = ( os.path.join(PROJECT_DIR, 'static'), ) LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True DOMAIN = 'https://does.not.matter' # the web doesn't have folders; this isn't 1994 APPEND_SLASH = False application_root = '/' CDN_ROOT = '$CDN_ROOT' EOF cat > ./manage.py << EOF #!/usr/bin/env python2 import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "engine.settings") from django.core.management import execute_from_command_line execute_from_command_line(sys.argv) EOF cat > ./runserver.sh << EOF python manage.py runserver 127.0.0.1:8081 --settings=engine.settings EOF chmod +x ./runserver.sh cat > ./templates/index.html << EOF
Here is my content. The CDN is up and running when this is blue.