Fluo Working Copy
A simple daemon which listens on the endpoint /webhook for incoming POST requests and runs git pull on the mounted working copy.
Sample docker-compose file:
workingcopy: image: "dypsilon/fluo-working-copy" ports: - "8005:8005" volumes: - .:/wc # Mount the working copy at /wc - /home/vagrant/.ssh/id_rsa:/mnt/id_rsa # Mount your ssh key at /mnt/id_rsa environment: HOST: 0.0.0.0 # The server listens on this host. Defaults to 0.0.0.0 PORT: 8005 # The server will listen on this port. Defaults to 8005 AUTH: bitbucket:abcdef # Credentials for basic auth. Leave empty for no auth. DIR: /wc # The mount point of the working copy. REPOSITORY: origin # Defaults to origin. See the command below. REFSPEC: master # Defaults to master. See the command below.
The command is
git pull --ff-only --verbose <repository> <refspec>.
fluo-working-copy is able to emmit webhooks after a pull occured. This allows other parts of your deployment workflow to integrate with your working copy. To emmit webhooks use the environment variable
WH_CONFIG to point the working copy to your config file. By default fluo-working-copy will look for a config file at
/etc/webhooks and emmit webhooks as soon as it finds one.
The config file is a simple text file with one webhook URL per line. The webhooks are called asynchronously. You can configure the timeout of the request with
WH_TIMEOUT (defaults to 3000 milliseconds).