initial attempt at plugins

This commit is contained in:
Jeff Lindsay
2013-06-30 10:37:32 -05:00
parent c08f3233e9
commit 17953fc5a0
7 changed files with 55 additions and 21 deletions

View File

@@ -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

View File

@@ -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:"

12
dokku
View File

@@ -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/$2/CONTAINER)
docker logs $CONTAINER | tail -n 100
;;
url)
echo "http://$(< "/home/git/$2/HOSTNAME")"
*)
pluginhook commands "$@"
;;
esac

View File

@@ -0,0 +1,17 @@
#!/bin/bash
set -e; case "$1" in
logs)
CONTAINER=$(</home/git/$2/CONTAINER)
docker logs $CONTAINER | tail -n 100
;;
url)
echo "http://$(< "/home/git/$2/HOSTNAME")"
;;
test)
echo "Hello"
echo $2 $3 $4
;;
esac

View File

@@ -0,0 +1,5 @@
#!/bin/bash
sed -i 's/docker -d/docker -d -r=true/' /etc/init/docker.conf
echo $HOSTNAME > /home/git/HOSTNAME

2
plugins/WARNING Normal file
View File

@@ -0,0 +1,2 @@
Please note that the hooks in Dokku are experimental and are likely to change quite a bit.

18
plugins/nginx-vhosts/install Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
apt-get install -y nginx dnsutils
cat<<EOF > /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