I am new to Silverstripe and according to cmsmatrix.org, Silverstripe is capable of static content export i.e. Query database for content --> "Cook" into .html files --> Export to target server(s) in the public internet. I'd really like to know if there's any documentation/knowledge regarding static content export.
I believe the script/module used to do this is called "publishsite" but there doesn't seem to be much information regarding how to use it, how to run it or exactly how it does it (rsync? FTP? etc). Is this something that is detailed in the docs when you download Silverstripe?
Hi guys and thanks for the replies. I checked out the /StaticExporter. This is quite crude but sort of does the job. What I'm really after and what you're probably working on now I'd wager is something like this:
* A specific CMS admin screen allows one to configure the username, host and target directory to statically deploy to using rsync. (Secure rsync will of course depend on the user having an SSH agent running in the background (Unix-like systems)).
* In the CMS view the "Save and Publish" button has a checkbox next to it labeled "deploy".
* Checking this box and pushing this button (Admin/editor users only) securely rsyncs static content to predetermined target server(s).
We currently use Zope/Plone to deploy to 3 public-facing webservers as Plone is dog slow and a bit of a resource-hogger (The CMS itself sits behind our LAN) but it's required a bit of Python hacking to get it to work as above. If this sort of functionality could be offered by Sliverstripe out of the box, you'd be blowing most of the other CMS's out of the water in terms of functionality.
A would-like-to-have would be switches (checkboxes) next to each listed target deployment server so that you can arbitrarily choose not to deploy to specific machines...
What you have described above is at a high level what we are working towards. Our need is to support two sites which are going be serving several tens of millions of pages per day, and serving static HTML is the only feasible way to handle this sort of load.
All going well, you'll be able to plug it directly into a CDN for even greater performance if you need it.
Once it's been developed it will become part of the core product.
My condolences about being stuck on Plone... its performance is so bad it's near on criminal :P
I'll make a point of updating this post when this functionality is ready. Reply to this post and select "subscribe to this topic" so you can follow this by email as well.
In relation to the "two sites", what I meant is we have two clients, each with their own site which needs this capability. This means that by the time we release it it will have been pretty well battle tested.