From a4adb901bfdb77d94ebb7cacdb024cffb8a21453 Mon Sep 17 00:00:00 2001 From: Falldog Date: Fri, 6 Oct 2017 23:35:55 +0800 Subject: [PATCH] (example) add vagrant environment for django example --- README.md | 5 + example/django/README.md | 31 +++++ example/django/Vagrantfile | 19 +++ example/django/bootstrap.sh | 76 +++++++++++ example/django/config/nginx/nginx.conf | 75 +++++++++++ .../django/config/nginx/pye-web-uwsgi.conf | 32 +++++ example/django/config/supervisor/uwsgi.conf | 5 + example/django/config/uwsgi/pye-web-uwsgi.ini | 20 +++ example/django/config/uwsgi/uwsgi_param | 15 +++ example/django/pye_web/app_pye/__init__.py | 0 example/django/pye_web/app_pye/admin.py | 6 + example/django/pye_web/app_pye/apps.py | 8 ++ .../pye_web/app_pye/migrations/__init__.py | 0 example/django/pye_web/app_pye/models.py | 6 + example/django/pye_web/app_pye/tests.py | 6 + example/django/pye_web/app_pye/views.py | 6 + example/django/pye_web/manage.py | 23 ++++ example/django/pye_web/pye_web/__init__.py | 0 example/django/pye_web/pye_web/settings.py | 121 ++++++++++++++++++ example/django/pye_web/pye_web/urls.py | 21 +++ example/django/pye_web/pye_web/wsgi.py | 17 +++ example/django/pye_web/requirements.txt | 2 + 22 files changed, 494 insertions(+) create mode 100644 example/django/README.md create mode 100644 example/django/Vagrantfile create mode 100644 example/django/bootstrap.sh create mode 100644 example/django/config/nginx/nginx.conf create mode 100644 example/django/config/nginx/pye-web-uwsgi.conf create mode 100644 example/django/config/supervisor/uwsgi.conf create mode 100644 example/django/config/uwsgi/pye-web-uwsgi.ini create mode 100644 example/django/config/uwsgi/uwsgi_param create mode 100644 example/django/pye_web/app_pye/__init__.py create mode 100644 example/django/pye_web/app_pye/admin.py create mode 100644 example/django/pye_web/app_pye/apps.py create mode 100644 example/django/pye_web/app_pye/migrations/__init__.py create mode 100644 example/django/pye_web/app_pye/models.py create mode 100644 example/django/pye_web/app_pye/tests.py create mode 100644 example/django/pye_web/app_pye/views.py create mode 100755 example/django/pye_web/manage.py create mode 100644 example/django/pye_web/pye_web/__init__.py create mode 100644 example/django/pye_web/pye_web/settings.py create mode 100644 example/django/pye_web/pye_web/urls.py create mode 100644 example/django/pye_web/pye_web/wsgi.py create mode 100644 example/django/pye_web/requirements.txt diff --git a/README.md b/README.md index ca3d47c..51b40fe 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,11 @@ $ TEST_PYE_PERFORMANCE_COUNT=1 ./pyconcrete-admin.py test ``` +Example +-------------- +[Django with pyconcrete](example/django) + + Building on Windows -------------- #### Python 2.7 - Visual Studio 2008 diff --git a/example/django/README.md b/example/django/README.md new file mode 100644 index 0000000..b994fc2 --- /dev/null +++ b/example/django/README.md @@ -0,0 +1,31 @@ +pyconcrete example for Django +============== + + +Environment setup +-------------- +* install vagrant && VirtualBox + ```bash + $ cd pyconcrete/example/django && vagrant up + ``` +* access `http://127.0.0.1:5151` by browser + + +Environment +-------------- +* Ubuntu 14.04 +* Python 2.7 +* Nginx + uwsgi +* Django 1.11 + + +How the example working +-------------- +* Django in VM listen port 5151 +* install `pyconcrete` in system +* source code path in VM: `/home/pye_web_src` +* encrypted code path in VM: `/home/pye_web` +* leave these two files as `.py`, and need add `ipmort pyconcrete` at beginning + * pye_web/pye_web/wsgi.py + * pye_web/manage.py + diff --git a/example/django/Vagrantfile b/example/django/Vagrantfile new file mode 100644 index 0000000..f71bc9b --- /dev/null +++ b/example/django/Vagrantfile @@ -0,0 +1,19 @@ +VAGRANTFILE_API_VERSION = "2" + +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + + config.vm.box = "ubuntu/xenial64" + config.vm.hostname = "pyconcrete-example-django-server" + + config.vm.provider "virtualbox" do |v| + v.name = "pyconcrete_example_django_server_sandbox" + end + + config.vm.synced_folder "../../", "/home/pyconcrete" + config.vm.synced_folder "./pye_web/", "/home/pye_web_src" + + config.vm.network :forwarded_port, guest:5151, host:5151, auto_correct: false # Nginx + + config.vm.provision :shell, path: "bootstrap.sh", args: $args, privileged: false + +end diff --git a/example/django/bootstrap.sh b/example/django/bootstrap.sh new file mode 100644 index 0000000..9620990 --- /dev/null +++ b/example/django/bootstrap.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +USER=ubuntu + +PYE_HOME=/home/pye_web # encrypted +PYE_HOME_SRC=/home/pye_web_src # source +PYE_LOG_DIR=/var/log/pye_web +PYCONCRETE_HOME=/home/pyconcrete + + +setup_python() +{ + sudo apt-get install -y python-software-properties + sudo add-apt-repository -y ppa:fkrull/deadsnakes + sudo apt-get update + + sudo apt-get install -y python2.7 python2.7-dev + #sudo apt-get install -y python3.3 python3.3-dev + #sudo apt-get install -y python3.4 python3.4-dev + #sudo apt-get install -y python3.5 python3.5-dev + #sudo apt-get install -y python3.6 python3.6-dev +} + +setup_nginx() +{ + sudo apt-get install -y nginx + sudo apt-get install -y uwsgi + sudo apt-get install -y supervisor + + # uwsgi + supervisor + sudo mkdir -p /etc/uwsgi + sudo cp /vagrant/config/uwsgi/pye-web-uwsgi.ini /etc/uwsgi + + sudo cp /vagrant/config/supervisor/uwsgi.conf /etc/supervisor/conf.d + sudo supervisorctl reload + + # nginx + sudo cp /vagrant/config/uwsgi/uwsgi_param /etc/nginx + sudo cp /vagrant/config/nginx/nginx.conf /etc/nginx + sudo cp /vagrant/config/nginx/pye-web-uwsgi.conf /etc/nginx/sites-enabled + + sudo service nginx reload +} + +setup_pyconcrete() +{ + cd $PYCONCRETE_HOME + sudo python setup.py install <