djangodeploykit 0.10.2
Django Deploy
For deploy Django project on Linux server.
Features:
Automatic
Zero downtime
Multiple version
Easy rollback
Requirements on server
Nginx
Anaconda
Nodejs
PM2
Quick start
Add "deploy" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
...
'deploy',
]
Configure ssh:
add host config in ~/.ssh/config
Host host1
Hostname xxx.xxx.xxx.xxx
Port 2222
User xxxx
ServerAliveInterval 60
# IdentityFile ~/.ssh/id_rsa_xxxxx
create ssh-key file
ssh-keygen -t rsa -C "xxxx@xxxx.com"
you could leave a blank for password, when you execute ssh command it will not ask your password again
Add definition in settings of Django app
GIT_URL = 'git@github.com:path/name.git'
GIT_DEPLOY_BRANCH = 'stable'
APP_NAME = 'appname'
DEPLOY = {
"host1": { # same as ssh-config
"task_prefix": "app-process", # prefix of process name
"home_path": '/path/to/appname/www', # path of each versions
"static_path": '/path/to/appname/statics', # path of statics for each versions
"conda_path": '/path/to/anaconda3/bin', # path of anaconda bin
"nginx_conf": "/etc/nginx/sites-enabled/appname", # enabled site config of Nginx
"fixed_deploy_path": '/path/to/appname/fixed', # use to do migrate
}
}
create PM2 and Nginx configure template
create directory name of deploy in your base path of Django app
deploy/
└── templates
└── deploy
├── ecosystem.config.template
└── nginx.conf.template
content of ecosystem.config.template
...
content of nginx.conf.template
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.