django-sitepush
Redeploy Django projects using management commands
What does it do?
Using Fabric to run a management command on each remote instance to redeploy itself.
The remote command will pull the source code from Git, run all necessary Django management commands, and restart the server.
It’s intended for small to medium scale apps.
Why not just write a Fabric script?
It’s faster. When the you run everything remotely it only takes about 10 seconds to deploy an instance.
What commands will run?
git pull
pip install -r requirements.txt
syncdb
migrate
collectstatic
restart server (webserver dependent)
Requirements
- A deployed instance running either:
Apache with mod_WSGI
GUnicorn
Fabric
A virtualenv dedicated to the project.
A Git hosted repository for the project
Installation
Add the app to your INSTALLED_APPS setting:
INSTALLED_APPS = (
#...
'sitepush',
)
Settings
Add the server configuration to your settings file:
DEPLOYS = {
'default': {
'HOST': '192.168.0.1', # IP or domain name
'USER': 'user', # User to login with
'BRANCH': 'master', # Git branch to pull updates from
'SETTINGS': 'settings', # Settings file to use (optional)
'DIR': '/var/www/myproject/',
'ENV': 'myvirtualenv', # virtualenv used in the project
'WEBSERVER': 'gunicorn', # webserver - 'apache' or 'gunicorn'
'PID_FILE': '/tmp/gunicorn.pid', # Gunicorn pid file path
'WSGI_FILE': 'deploy/wsgi.py', # Apache wsgi file path
},
}
The PID_FILE / WSGI_FILE settings should be set depending on the web server you’re using.
BRANCH is optional and defaults to master
Usage
python manage.py deploy_remote default # Or python manage.py deploy_remote srv1 srv2 #...' # Don't install requirements: python manage.py deploy_remote default --noreqs # Deploy all remote instances: python manage.py deploy_remote --all
Metadata
Release files for django-sitepush 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-sitepush-0.1.tar.gz | 4.3 kB | Without provenance | Details for django-sitepush-0.1.tar.gz |
Release files / django-sitepush-0.1.tar.gz
| Download URL | django-sitepush-0.1.tar.gz |
|---|---|
| Size | 4.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7409119fa58d061d2f64a35a39581122be8465b8067040e3fd168f1aaf4ebfcd
|
|
BLAKE2b-256 checksum How to use checksums |
166e208eb98246c6ba36376d9bf5421014a22bce0634b57bf0be88a537728ec1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for django-sitepush 0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.