CMS -> Static using basic cli tools.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
extras
lib
AUTHORS
CNAME
LICENSE
README.md
_config.yml
cron-get-changes.sh
main.sh
publish.sh
sync_static_webheads.sh
wget_static_drupal.pl

README.md

rsyncster

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 wget_get_changes.pl. Pre-release version rsyncster_v.0.9.0.2-alpha-01dec2018. 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.

Dependencies

  • 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 https://github.com/50ten40/rsyncster.git to your management directory.
  • No documentation, you'll just have to read the code.
  • Usage: Call cron_get_changes.sh from cron entry. Each script component in main.sh 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!