Skip to content

Instantly share code, notes, and snippets.

@Bevilacqua
Last active August 30, 2017 06:48
Show Gist options
  • Save Bevilacqua/c06abc819aab867d74ba5d424a7ef756 to your computer and use it in GitHub Desktop.
Save Bevilacqua/c06abc819aab867d74ba5d424a7ef756 to your computer and use it in GitHub Desktop.
set -e
instanceCount=`docker ps -q | wc -l`;
if [[ "$instanceCount" != "0" ]]
then
docker kill $(docker ps -q)
fi
if [[ "$1" == "--force" ]]
then
docker run -itdv `pwd`/db:/Serpico/db -p 443:8443 serpico
exit
fi
if [ -e ./db ]
then
echo "DB directory found"
mkdir -p db/certs
mkdir -p db/templates
mkdir -p db/attachments
else
read -p "No db folder found in present working directory. Would you like to start with a blank one? (y/n)" -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "Creating db directory"
mkdir db
mkdir db/templates
mkdir db/certs
mkdir db/attachments
else
echo
echo "Exiting..."
echo "Import a db folder at the pwd"
exit
fi
fi
docker images > .dockerimagelist
if grep -q "serpico" .dockerimagelist; then
echo "Docker image found"
else
echo "Pulling most recent Dockerfile from gist"
curl https://gist.githubusercontent.com/Bevilacqua/5754480c2af1e1d222b93c82402533f7/raw/Dockerfile > Dockerfile
echo "Enter Github Username:"
read git_username
echo "Enter Github Token:"
read git_token
echo "Building Image..."
docker build --build-arg GIT_USERNAME=$git_username --build-arg GIT_TOKEN=$git_token --no-cache -t serpico .
fi
rm .dockerimagelist
if [ -e certbot-auto ]
then
echo "SSL already setup..."
else
echo "Setting up SSL"
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
fi
clear
echo "Retreiving certs..."
sudo ./certbot-auto certonly --standalone --preferred-challenges http --debug -d reporting.hacklabs.com
echo "Coppying certs over..."
sudo /bin/cp -rL /etc/letsencrypt/live/reporting.hacklabs.com/. /home/ec2-user/db/certs --remove-destination
clear
echo "Setting up cron task..."
echo "15 03 * * * sudo /home/ec2-user/certbot-auto renew --pre-hook 'docker kill \$(docker ps -q)' --post-hook 'sudo /bin/cp -rL /etc/letsencrypt/live/reporting.hacklabs.com/. /home/ec2-user/db/certs --remove-destination; sudo sh /home/ec2-user/deploy_serpico.sh --force' --debug" > reload_ssl.cronecho "" >> reload_ssl.cron
crontab reload_ssl.cron
rm reload_ssl.cron
echo "Launching Serpico"
docker run -itv `pwd`/db:/Serpico/db -p 443:8443 serpico
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment