Path

ez projects / ez-deploy


eZ Deploy

UNIX name Owner Status Version Compatible with
ez-deploy Russell Michell alpha 0.0.1 4.x
eZ Deploy "scrapes" an eZ Publish website given a URL and some initial configuration. The scraped content, CSS, Javascript, RSS etc is "cooked" into a local directory on the same machine as static HTML. From there, eZ Deploy can "Deploy" (Copy basically) all the files that make-up your website to 1 or more target webservers of your choice.

This is useful if you have a high-traffic website but you are not Facebook and do not have access to 100s of webservers or a PHP-C++ compiler but do need to ensure your site does not lay waste to your network or bandwidth during periods of high-traffic.

This extension may also be useful simply for off-site backups, or storing on removable media such as DVD or CD-ROM while still enabling your site to work as if it were live.

As well as cooking and deploying, eZ Deploy also comes with the following functionality:

  • Link-checking on-the-fly
  • Minification of JavaScript and CSS
  • Domain sharding
  • URL conversion as absolute or relative links
  • Dead-page check and deletion
  • User-selectable siteaccess deployment for installs with >1 siteaccess
  • GUI debugging tool and separate logging
  • Specific URL exclusion

This project will soon be available as a proper ezpublish extension and will be the first public alpha-release.

The extension in essence comprises several bash shell-scripts, invoked from a PHP class via the ezwebin website interface or from the command line itself.

The main script ezdeploy.sh takes several arguments and at its core, invokes wget, sed and one or two other shell commands to fetch (scrape) an ezpublish site, post-process it for links and dependencies such as CSS and RSS and if instructed to do so, rsync the entire directory to a remote server over SSH.

There are some .ini overrides and a new 'ezdeploy.ini' which pretty much configures everthing you'll need to instruct the shell scripts to do their thing. There are also one or two other config settings you'll need to assess in each individual script, but these should only need changing very rarely - for example if your entire deployment system is ported to another collection of servers or CDN.

This project was borne out of a need to deploy a high-burst traffic website as static HTML avoiding the overhead of a PHP, Python or other scripting engine on the webserver and came from a similar function of the Plone CMS called "CMFDeployment" hence the title.

ezdeploy assumes the use of eZ Publish v4.x and the ezwebin extension v1.3 in a Unix/Linux environment together with access to wget, sed, find and rsync via the command-line, although these are automatically checked before ezdeploy runs.

Screenshot

View of the toolbar using the eZ Deploy interface components
View of the toolbar using the eZ Deploy interface components

This project has no reviews yet. Be the first one to review it!