The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Toadfarm::Plugin::Reload - Reload toadfarm with new code

DESCRIPTION

This Mojolicious plugin allow the "Toadfarm" server to restart when a resource is hit with a special JSON payload. The payload need to be compatible with the post-receive-hook github use.

SETUP

  • You need to set up a post receive hook on github to make this reloader work. Go to "https://github.com/jhthorsen/YOUR-REPO/settings/hooks" to set it up.

  • The WebHook URL need to be "http://yourserver.com/some/secret/path". See CONFIG below for details.

CONFIG

This is a config template for Toadfarm:

  {
    apps => [...],
    plugins => [
      Reload => {
        path => '/some/secret/path',
        repositories => [
          {
            name => 'cool-repo',
            branch => 'some-branch',
            path => '/path/to/cool-repo',
            remote => 'whatever', # defaults to "origin"
          },
        ],
      },
      # ...
    ],
  }

Details:

  • path

    This should be the path part of the URL to POST data to reload the server. Make this something semi secret to avoid random requests:

      perl -le'print join "/", "", "reload", (time.$$.rand(9999999)) =~ /(\w\w)/g'
  • repositories

    This should contain a mapping between github repository names and local settings:

    • branch

      This need to match the branch which you push to github. It should be something like "production", and not "master" - unless you want every push to master to reload the server.

    • path

      This is the path on disk to the local git repo.

METHODS

register

  $self->register($app, \%config);

See "SYNOPSIS" for %config parameters.

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org