Skip to main content

Python based deployment tool for Drupal 7

Project description

drupy

A multisite capable Drupal site-builder based on JSON-recipes.

Features

  • Download and extract packages, prepare a Drupal tree and run "drush site-install" all from the same set of configuration files.
  • Package lists and site-configurations are pure JSON (ie. easy machine-generateable).
  • configuration files can "include" other json-files (even remote files).
  • Built-in support for multisite installations (optimized for sharing code in a manageable way).
  • Install files from: git repositores, tarballs, local directories, copy files, patches
  • Fast: if you change only one project (ie. add a patch) only this project is rebuilt.
  • Use hashes to check the integrity of downloaded files.

Requirements

  • Python3
  • git
  • drush (for running site-install)
  • rsync
  • A symlink capable file-system

FAQ

  • Why not simply use drush make? For our multi-site setup we'd like a directory structure that looks something like:
projects/  # packages
  module1-7.x-1.0/   # code of module1
  module1-7.x-2.1/   # another version of module1
  somesite/          # code of the custom somesite projects
  theproject/        # another custom project with a install_profile
htdocs/    # drupal-root
  profiles/
  theproject/ -> ../../projects/theproject
  minimal/
  standard/
  testing/

  sites/
    somesite/
    modules/         # symlinks to projects in the projects sub-folder
      contrib/       # only one copy of a module per version.
        module1 -> ../../../../../projects/module1-7.x-1.0
        …

    themes/
      contrib/
        theme1 -> ../../../../../projects/theme1-7.x-1.0
        …

  othersite/
    modules/
    contrib/         # allow different versions of a module per site
      module1 -> ../../../../../projects/module1-7.x-2.0
Directory layouts like this seems rather cumbersome with drush make
which seems to be a bit biased towards a one-drupal-tree-per-site
approach of hosting.
  • Why not use sites/all/ for code-sharing? sites/all/ doesn't allow us to update modules site by site. If an module has an update-hook (ie. brings down your site until drush updb is run) you have to update the module-code. Then you need to run drush updb in all sites to bring them online again. So the mean down-time for a site is: n/2. With lots of sites this can take quite some time.

  • Why care for code sharing at all? Sharing the code for modules means that our opcode cache needs to hold only one copy of a file instead of one per site.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drupy-0.8.4.tar.gz (43.9 kB view details)

Uploaded Source

Built Distribution

drupy-0.8.4-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

Details for the file drupy-0.8.4.tar.gz.

File metadata

  • Download URL: drupy-0.8.4.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for drupy-0.8.4.tar.gz
Algorithm Hash digest
SHA256 f93ab8daa7cc714107bb9ff2882e39f272f1171a6e366ea4ad4567c12ff1544a
MD5 bfd114967f31bffa5a0fba5a490b49e4
BLAKE2b-256 3181c0799ca75653ce43e4753a2a8a62cee6b8c7273314f974b1e8f4aaca16a2

See more details on using hashes here.

File details

Details for the file drupy-0.8.4-py3-none-any.whl.

File metadata

  • Download URL: drupy-0.8.4-py3-none-any.whl
  • Upload date:
  • Size: 29.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for drupy-0.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b555404ffe5487fe6addcc6a5ae942fc8d2991f3584c3c432f51d6499ac561d2
MD5 8e5b99fec577eea2275f170bf4633d28
BLAKE2b-256 7db876c5cd43371c889c5f2d613a25fbe39e8f33e3a6e6a33e7e9c651e465c58

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page