From 17953fc5a024e118efee5cb957d181f81b771b2b Mon Sep 17 00:00:00 2001 From: Jeff Lindsay Date: Sun, 30 Jun 2013 10:37:32 -0500 Subject: [PATCH] initial attempt at plugins --- Makefile | 10 +++++++--- bootstrap.sh | 12 +++--------- dokku | 12 +++--------- plugins/00_dokku-standard/commands | 17 +++++++++++++++++ plugins/00_dokku-standard/install | 5 +++++ plugins/WARNING | 2 ++ plugins/nginx-vhosts/install | 18 ++++++++++++++++++ 7 files changed, 55 insertions(+), 21 deletions(-) create mode 100755 plugins/00_dokku-standard/commands create mode 100755 plugins/00_dokku-standard/install create mode 100644 plugins/WARNING create mode 100755 plugins/nginx-vhosts/install diff --git a/Makefile b/Makefile index 79f7f73d7..b37fec97e 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,14 @@ GITRECEIVE_URL = https://raw.github.com/progrium/gitreceive/master/gitreceive SSHCOMMAND_URL = https://raw.github.com/progrium/sshcommand/master/sshcommand +PLUGINHOOK_URL = https://s3.amazonaws.com/progrium-pluginhook/pluginhook_0.1.0_amd64.deb all: install -install: gitreceive sshcommand +install: gitreceive sshcommand pluginhook cp dokku /usr/local/bin/dokku cp receiver /home/git/receiver cp nginx-app-conf /home/git/nginx-app-conf - cp nginx-reloader.conf /etc/init/nginx-reloader.conf - echo "include /home/git/*/nginx.conf;" > /etc/nginx/conf.d/dokku.conf + cp -r plugins /home/git/.plugins gitreceive: wget -qO /usr/local/bin/gitreceive ${GITRECEIVE_URL} @@ -20,5 +20,9 @@ sshcommand: chmod +x /usr/local/bin/sshcommand sshcommand create dokku /usr/local/bin/dokku +pluginhook: + wget -qO ${PLUGINHOOK_URL} /tmp/pluginhook_0.1.0_amd64.deb + cd /tmp && dpkg -i pluginhook_0.1.0_amd64.deb + count: cat receiver dokku bootstrap.sh nginx-app-conf nginx-reloader.conf | wc -l \ No newline at end of file diff --git a/bootstrap.sh b/bootstrap.sh index 2b8cd37e5..d68e12b7f 100644 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -4,7 +4,7 @@ DOCKER_PKG=${DOCKER_PKG:-"https://launchpad.net/~dotcloud/+archive/lxc-docker/+f set -e DEBIAN_FRONTEND=noninteractive apt-get install -y linux-image-extra-`uname -r` -apt-get update && apt-get install -y git nginx make curl dnsutils +apt-get update && apt-get install -y git make curl wget -qO- "$DOCKER_PKG" > /tmp/lxc-docker_0.4.2-1_amd64.deb dpkg --force-depends -i /tmp/lxc-docker_0.4.2-1_amd64.deb && apt-get install -f -y @@ -15,14 +15,8 @@ cd dokku && make install curl "$DOKKU_STACK" | gunzip -cd | docker import - progrium/buildstep -sed -i 's/docker -d/docker -d -r=true/' /etc/init/docker.conf -sed -i 's/# server_names_hash_bucket_size/server_names_hash_bucket_size/' /etc/nginx/nginx.conf - -[[ $(dig +short $HOSTNAME) ]] && hostfile="DOMAIN" || hostfile="HOSTNAME" -echo $HOSTNAME > /home/git/$hostfile - -/etc/init.d/nginx start -start nginx-reloader +PLUGINPATH=/home/git/.plugins +pluginhook install echo echo "Be sure to upload a public key for your user:" diff --git a/dokku b/dokku index b4505872a..341a81f53 100755 --- a/dokku +++ b/dokku @@ -1,4 +1,5 @@ #!/bin/bash +PLUGIN_PATH="$HOME/.plugins" set -e; case "$1" in receive) APP="$2"; IMAGE="app/$APP" @@ -51,15 +52,8 @@ set -e; case "$1" in fi ;; -### - - logs) - CONTAINER=$( /home/git/HOSTNAME \ No newline at end of file diff --git a/plugins/WARNING b/plugins/WARNING new file mode 100644 index 000000000..d3eee9aac --- /dev/null +++ b/plugins/WARNING @@ -0,0 +1,2 @@ + +Please note that the hooks in Dokku are experimental and are likely to change quite a bit. \ No newline at end of file diff --git a/plugins/nginx-vhosts/install b/plugins/nginx-vhosts/install new file mode 100755 index 000000000..1c7fa74ca --- /dev/null +++ b/plugins/nginx-vhosts/install @@ -0,0 +1,18 @@ +#!/bin/bash +apt-get install -y nginx dnsutils + +cat< /etc/init/nginx-reloader.conf +script + echo | sudo -u git nc -l -U /home/git/reload-nginx && /etc/init.d/nginx reload +end script +respawn +EOF + +echo "include /home/git/*/nginx.conf;" > /etc/nginx/conf.d/dokku.conf + +sed -i 's/# server_names_hash_bucket_size/server_names_hash_bucket_size/' /etc/nginx/nginx.conf + +[[ $(dig +short $HOSTNAME) ]] && echo $HOSTNAME > /home/git/VHOST + +/etc/init.d/nginx start +start nginx-reloader