From 120fb436bfa749e394342d10cc00b1f23e3a7a25 Mon Sep 17 00:00:00 2001 From: Dmitriy Shesterkin Date: Sun, 6 Aug 2017 12:17:03 +0300 Subject: [PATCH] env settings, deploy --- .gitignore | 3 +- conf/deploy/common.py | 3 +- conf/deploy/{stage.py => develop.py} | 0 conf/deploy/prod.py | 5 ++ conf/deploy/stage.py.example | 2 - conf/nginx_vds_develop.conf | 29 ++++++++ conf/{nginx_vds.conf => nginx_vds_local.conf} | 0 conf/nginx_vds_prod_ssl.conf | 33 ++++++++++ conf/nginx_vds_stage.conf | 29 ++++++++ docker-compose.develop.yml | 66 +++++++++++++++++++ ...ompose.dev.yml => docker-compose.local.yml | 0 docker-compose.stage.yml | 4 +- docker-compose.yml | 4 +- fabfile.py | 7 +- 14 files changed, 175 insertions(+), 10 deletions(-) rename conf/deploy/{stage.py => develop.py} (100%) create mode 100644 conf/deploy/prod.py create mode 100644 conf/nginx_vds_develop.conf rename conf/{nginx_vds.conf => nginx_vds_local.conf} (100%) create mode 100644 conf/nginx_vds_prod_ssl.conf create mode 100644 conf/nginx_vds_stage.conf create mode 100644 docker-compose.develop.yml rename docker-compose.dev.yml => docker-compose.local.yml (100%) diff --git a/.gitignore b/.gitignore index b91b2c6..390fb44 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ conf/env /static/vendor /data/ /.vscode/ -/deploy/stage.py ######################All system################################################ # Compiled source # @@ -200,3 +199,5 @@ target/ ################################################################################ /upload/ +/conf/deploy/develop.py +/conf/deploy/prod.py diff --git a/conf/deploy/common.py b/conf/deploy/common.py index 7a4f9d3..6e61bbc 100644 --- a/conf/deploy/common.py +++ b/conf/deploy/common.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- -PROJECT_NAME = 'dokumentor' +PROJECT_NAME = 'Dokumentor' +PROJECT_NAME_LOCAL = 'dokumentor' REPO = 'git@bitbucket.org:Air51/dokumentor_dev.git' BRANCH = 'develop' diff --git a/conf/deploy/stage.py b/conf/deploy/develop.py similarity index 100% rename from conf/deploy/stage.py rename to conf/deploy/develop.py diff --git a/conf/deploy/prod.py b/conf/deploy/prod.py new file mode 100644 index 0000000..7fafc63 --- /dev/null +++ b/conf/deploy/prod.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +USER = 'root' +PASS = 'fS0h7hC87dCY' +HOSTS = ['185.204.0.134:22'] + diff --git a/conf/deploy/stage.py.example b/conf/deploy/stage.py.example index 8475f7e..120f58b 100644 --- a/conf/deploy/stage.py.example +++ b/conf/deploy/stage.py.example @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -from deploy.common import * # noqa - USER = 'username' PASS = 'password' HOSTS = ['domain_name:ssh_port'] diff --git a/conf/nginx_vds_develop.conf b/conf/nginx_vds_develop.conf new file mode 100644 index 0000000..f4272d7 --- /dev/null +++ b/conf/nginx_vds_develop.conf @@ -0,0 +1,29 @@ +upstream dokumentor-develop { + server localhost:32768; +} + +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + client_max_body_size 175M; + listen 0.0.0.0:80; + server_name www.develop.dokumentor.ru develop.dokumentor.ru; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_http_version 1.1; + + proxy_pass http://dokumentor-develop/; + proxy_redirect off; + } + +} diff --git a/conf/nginx_vds.conf b/conf/nginx_vds_local.conf similarity index 100% rename from conf/nginx_vds.conf rename to conf/nginx_vds_local.conf diff --git a/conf/nginx_vds_prod_ssl.conf b/conf/nginx_vds_prod_ssl.conf new file mode 100644 index 0000000..1e1d069 --- /dev/null +++ b/conf/nginx_vds_prod_ssl.conf @@ -0,0 +1,33 @@ +upstream dokumentor-master { + server localhost:32770; +} + +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + client_max_body_size 175M; + listen 0.0.0.0:80; + server_name www.dokumentor.ru dokumentor.ru; + + ssl_certificate /opt/app/Dokumentor/conf/ssl-keys/dokumentor.ru.crt; + ssl_certificate_key /opt/app/Dokumentor/conf/ssl-keys/dokumentor.ru.key; + add_header Strict-Transport-Security 'max-age=604800'; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_http_version 1.1; + + proxy_pass http://dokumentor-master/; + proxy_redirect off; + } + +} diff --git a/conf/nginx_vds_stage.conf b/conf/nginx_vds_stage.conf new file mode 100644 index 0000000..4c040f9 --- /dev/null +++ b/conf/nginx_vds_stage.conf @@ -0,0 +1,29 @@ +upstream dokumentor-master { + server localhost:32769; +} + +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + client_max_body_size 175M; + listen 0.0.0.0:80; + server_name www.stage.dokumentor.ru stage.dokumentor.ru; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + proxy_http_version 1.1; + + proxy_pass http://dokumentor-master/; + proxy_redirect off; + } + +} diff --git a/docker-compose.develop.yml b/docker-compose.develop.yml new file mode 100644 index 0000000..283d0c5 --- /dev/null +++ b/docker-compose.develop.yml @@ -0,0 +1,66 @@ +version: '2' + +services: + web: + restart: always + container_name: dokumentor-web + build: . + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + - ./:/opt/app + ports: + - "32768:80" + - "33768:5555" + env_file: conf/env + depends_on: + - db + - redis + - rabbitmq + + db: + restart: always + container_name: dokumentor-db + image: kiasaki/alpine-postgres:9.5 + expose: + - "5432" + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + - ./data/postgresql:/var/lib/postgresql/data + environment: + - POSTGRES_USER=dokumentor + - POSTGRES_PASSWORD=dokumentor + + redis: + restart: always + container_name: dokumentor-redis + image: redis:alpine + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + expose: + - "6379" + + rabbitmq: + restart: always + container_name: dokumentor-rabbitmq + image: rabbitmq:alpine + environment: + - RABBITMQ_DEFAULT_USER=dokumentor + - RABBITMQ_DEFAULT_PASS=dokumentor + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + expose: + - "5672" + - "5671" + + bower: + container_name: dokumentor-bower + build: + context: . + dockerfile: ./conf/compose/Dockerfile + command: /bin/sh -c "cd /opt/app && bower i" + volumes: + - ./:/opt/app diff --git a/docker-compose.dev.yml b/docker-compose.local.yml similarity index 100% rename from docker-compose.dev.yml rename to docker-compose.local.yml diff --git a/docker-compose.stage.yml b/docker-compose.stage.yml index 29fe33e..0d56310 100644 --- a/docker-compose.stage.yml +++ b/docker-compose.stage.yml @@ -10,8 +10,8 @@ services: - /etc/timezone:/etc/timezone:ro - ./:/opt/app ports: - - "32778:80" - - "33778:5555" + - "32769:80" + - "33769:5555" env_file: conf/env depends_on: - db diff --git a/docker-compose.yml b/docker-compose.yml index 283d0c5..d35ffe7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,8 +10,8 @@ services: - /etc/timezone:/etc/timezone:ro - ./:/opt/app ports: - - "32768:80" - - "33768:5555" + - "32770:80" + - "33770:5555" env_file: conf/env depends_on: - db diff --git a/fabfile.py b/fabfile.py index c05ae69..7aaa88f 100644 --- a/fabfile.py +++ b/fabfile.py @@ -3,9 +3,12 @@ from fabric.api import * from conf.deploy.common import BRANCH, PROJECT_NAME -from conf.deploy.stage import HOSTS, USER, PASS +from conf.deploy.prod import HOSTS, USER, PASS +# from conf.deploy.develop import HOSTS, USER, PASS + +PROJECT_DIR = f'opt/app/{PROJECT_NAME}' +PROJECT_DIR_DEVELOP = f'projects/{PROJECT_NAME}' -PROJECT_DIR = f'projects/{PROJECT_NAME}' env.user = USER env.password = PASS env.hosts = HOSTS