Skip to main content

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.

Release files for drupy 0.8.4

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

Source distribution (sdist)

Source distribution for drupy 0.8.4
File Size Uploaded
drupy-0.8.4.tar.gz 43.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for drupy 0.8.4
File Interpreter ABI Platform
drupy-0.8.4-py3-none-any.whl Python 3 none any Details

Total release size: 73.0 kB

Release files / drupy-0.8.4.tar.gz

Download URL drupy-0.8.4.tar.gz
Size 43.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f93ab8daa7cc714107bb9ff2882e39f272f1171a6e366ea4ad4567c12ff1544a
BLAKE2b-256 checksum
How to use checksums
3181c0799ca75653ce43e4753a2a8a62cee6b8c7273314f974b1e8f4aaca16a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.10

Release files / drupy-0.8.4-py3-none-any.whl

Download URL drupy-0.8.4-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b555404ffe5487fe6addcc6a5ae942fc8d2991f3584c3c432f51d6499ac561d2
BLAKE2b-256 checksum
How to use checksums
7db876c5cd43371c889c5f2d613a25fbe39e8f33e3a6e6a33e7e9c651e465c58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.10

Release history Release notifications | RSS feed

This release

0.8.4 This release

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

2 release files

0.2

1 release file

0.1

1 release file

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