Skip to main content

This is a set of reusable fabric tasks. It uses the new-style task system of fabric >= 1.2

Usage

  • Add dploi-fabric to your buildout environment (preferably in development_local.cfg, the servers have no use for it).

  • Create a fabfile.py as normal.

  • Pick and choose the modules and import them in the fabfile.py, e.g.:

    from fabric.decorators import task
    
    from dploi_fabric.db import pg # if project uses mysql, import "mysql" instead
    from dploi_fabric import supervisor, nginx
    from dploi_fabric import git, utils, buildout, south, django_utils, project
    
    from dploi_fabric.conf import load_settings
    
    @task
    def dev():
        load_settings('dev')
    
    @task
    def stage():
        load_settings('stage')
    
    @task
    def live():
        load_settings('live')
    
    @task
    def deploy():
        pg.dump.run()
        git.update()
        buildout.run()
        south.migrate.run()
        django_utils.collectstatic()
        supervisor.restart()
        supervisor.status()
        nginx.update_config_file()
  • in the project root, create a file deployment.py following this template:

    project_name = 'awesome_new_website'
    
    settings = {
        'dev': {
            'hosts': ['yourserver.com'],
            'autostart': True,
            'path': '/home/awesome_new_website-dev/app/',
            'user': 'awesome_new_website-dev',
            'buildout_cfg': 'server_dev.cfg',
            'repo': 'git@github.com:youruser/awesome_new_website.git',
            'branch': 'master',
            'backup_dir': '/home/awesome_new_website-dev/tmp/', # Used for mysql/psql dumps
            'db_name': 'awesome_new_website-dev',
            'db_username': 'awesome_new_website-dev',
            'domains': ['sitename-dev.agency.com', 'www.sitename.com'],
            'domains_redirect': [
                {'domain': 'sitename.com', 'destination_domain': 'www.sitename.com'},
            ],
            'ssl': True,
            'ssl_key_path': '../config/ssl.key', # This must be uploaded manually, possibly by a task in the future
            'ssl_cert_path': '../config/ssl.crt', # This must be uploaded manually, possibly by a task in the future
            'basic_auth': False,
            'basic_auth_path': '../config/htpasswd', # This must be uploaded manually, possibly by a task in the future
        },
    }

    add settings for stage/live as needed.

  • call bin/fab --list for a list of commands

Configuration file (config.ini)

Remember to add config.ini, example:

[static]

/media/ = py_src/project/media/

and/or

[static]

/static/ = %(static_files)s

Celery

The [celery] section has some special configuration parameters:

  • version (default: empty): set the celery version. Other the value 3.1 is recognized and triggers the usage of the celery command instead of the django-celery based manage.py celeryd.

  • app (default: project): the module that contains the celery.py (see the celery documentation)

Other options

[checkout]

tool = buildout (default)

tool = virtualenv

[celery] (if the section is present, celery is enabled)

[django]

base = .

base = project/

base = py_src/project (doesnt work with buildout yet, as it would try to access py_src/project/bin/django)

append_settings = true

append_settings = false

[static]

(see above)

/url-path/ = rel-path-filesystem/

[sendfile] /protected/media/ = ../upload/

Metadata

Release files for dploi-fabric 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dploi-fabric 0.2.1
File Size Uploaded Provenance Actions
dploi-fabric-0.2.1.tar.gz 21.3 kB Without provenance Details for dploi-fabric-0.2.1.tar.gz

Release files / dploi-fabric-0.2.1.tar.gz

Download URL dploi-fabric-0.2.1.tar.gz
Size 21.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9a72ade8b364dca79ed37c22db372d81f051d3108c8fc4eb0f9e71e3e50c1f1f
BLAKE2b-256 checksum
How to use checksums
f092aadc6f0d864226872aba7a55f7f48618b0ea11f80d1813d3f1a14e01d6dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for dploi-fabric 0.2.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.

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page