ronmi/gitpusher

By ronmi

Updated over 9 years ago

deploy code using git

Image
0

312

ronmi/gitpusher repository overview

This is a simplified CD (mostly) for PHP.

Although you can run it on baremetal, it is suggested (and designed) to run in docker. See docker hub for prebuilt docker image.

Topology

Gitpusher treats a host as a node in tree structure: every node has a parent excepts root node. Child node reports its state (what repo it has, which commit a branch or tag on, structure of sub-tree) to parent, grabs new commits from parent (via git remote update) and receive update nitifications from parent.

Node without parent is root node. Only root node can receive commits via CGI (which means you can git push to root node, but not child node). git fetch is not limited.

Configurations

All configurations items are customized via environment variables.

See real codes for all supported configuration items and their default value.

  • GITPUSHER_BIND_ADDRESS: Passed as first argument to ListenAndServe.
  • GITPUSHER_DEBUG_MODE: Any non-empty value will enable debug output.
  • GITPUSHER_REPO_PATH: Where we store codes.
  • GITPUSHER_MY_URL: Should be http://ip_or_hostname:port format, this is unique identifier for a node.
  • GITPUSHER_PARENT_URL: Same format as above. Leave empty means this node is root node.
  • GITPUSHER_AUTH_USER / GITPUSHER_AUTH_PASS: Only for root node. Enable HTTP-BASIC authenticating when you git push to it.
  • GITPUSHER_GIT_PATH: Path to git runtime.

Tag summary

Content type

Image

Digest

Size

13.2 MB

Last updated

over 9 years ago

docker pull ronmi/gitpusher:alpine