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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f93ab8daa7cc714107bb9ff2882e39f272f1171a6e366ea4ad4567c12ff1544a |
|
MD5 | bfd114967f31bffa5a0fba5a490b49e4 |
|
BLAKE2b-256 | 3181c0799ca75653ce43e4753a2a8a62cee6b8c7273314f974b1e8f4aaca16a2 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b555404ffe5487fe6addcc6a5ae942fc8d2991f3584c3c432f51d6499ac561d2 |
|
MD5 | 8e5b99fec577eea2275f170bf4633d28 |
|
BLAKE2b-256 | 7db876c5cd43371c889c5f2d613a25fbe39e8f33e3a6e6a33e7e9c651e465c58 |