CMS -> Static using basic cli tools.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


CMS -> Static site generation using standard *nix utilities.

Philosophy is seven second rule. Seven seconds total to capture visitors attention. Only two seconds to stop their browsing. Avoid tl;dr. User experience is fast, clean, simple. Mobile optimized. Accessibility is important. Screen reader friendly. Open source, open cloud, 'cause your content is yours and should not be locked to your cloud provider.

This is very basic sloppy code, please vent your frustrations by fixing and sharing your awesome improvements. :)

Status: 05dec2018 - Works. Need to update listicle on app_servers from Pre-release version rsyncster_v. First pass on synchronous downloads. Screwy logging, needs rewrite. Going to try rerun bash framework for standardized logging and installation. This version is for those who know their web backends. It is not polished.


  • Perl
  • Wget
  • Rsync
  • Sed
  • Cron
  • Find

Backend environment

  • Haproxy
  • Nginx
  • Apache2 ( no config support )

CMS assumptions

  • Simplified one-page interface. Bootstrap theme.
  • Mobile emphasis. No menus, mobile users can't see, don't use.
  • No ajax or sliding features etc.
  • Deep functionality and ui complexity available with login.
  • Public facing assets are obsessively lean and easily consumed.

Rsyncster Installation

  • Git clone to your management directory.
  • No documentation, you'll just have to read the code.
  • Usage: Call from cron entry. Each script component in can be called standalone. Pass a domain name or option. There are helper scripts in ./extras.
  • Configure variables for your setup.

Basic Drupal Workflow

  • Change top level dns record. eg domain.tld -> subdomain.domain.tld
  • Update $base_url in settings.php (required)
  • Edit site according to CMS assumptions above. eg Strip out everything that is unneccessary.
  • Enable anonymous page caching (required)
  • Turn off database logging (optional)
  • Verify custom logos and favicon. Set in theme and global settings.(optional)
  • Update scripts with your subdomain
  • Run scripts as needed
  • Enjoy!