Skip to content
This repository has been archived by the owner on Aug 10, 2020. It is now read-only.

Commit

Permalink
Merge pull request #27 from vishaldodiya/issue/GH-5
Browse files Browse the repository at this point in the history
Issue-5: Add support for SSL
  • Loading branch information
mbtamuli authored Jan 29, 2018
2 parents f56f3eb + 826b5bd commit 4fb5eca
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 3 deletions.
1 change: 1 addition & 0 deletions config/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ MYSQL_PASSWORD=password

WORDPRESS_DB_HOST=db
VIRTUAL_HOST=site1.test
VIRTUAL_HOST_EMAIL=[email protected]
3 changes: 3 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ services:
environment:
- VIRTUAL_HOST=mail.${VIRTUAL_HOST}
- VIRTUAL_PORT=8025
- LETSENCRYPT_HOST=mail.${VIRTUAL_HOST}
networks:
- site-network

Expand Down Expand Up @@ -46,6 +47,8 @@ services:
restart: always
environment:
- VIRTUAL_HOST
- LETSENCRYPT_HOST=${VIRTUAL_HOST}
- LETSENCRYPT_EMAIL=${VIRTUAL_HOST_EMAIL}
volumes:
- "./app/src:/var/www/html"
- "./config/nginx/default.conf:/etc/nginx/conf.d/default.conf"
Expand Down
77 changes: 74 additions & 3 deletions scripts/ee4
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ singleWordPress() {
# Setup site networking
###
echo "Configuring network..." && sleep 1
runNginxProxy
runNginxProxyAndLetsEncrypt
docker network create $SITE_NAME
docker network connect $SITE_NAME nginx-proxy

Expand All @@ -78,6 +78,43 @@ singleWordPress() {
fi
}

singleWordPressLetsEncrypt() {
echo "Installing WordPress site $SITE_NAME"
mkdir -p "$WEBROOT" > /dev/null 2>&1

###
# Setup site configuration
###
echo "Configuring project..." && sleep 1
mkdir -p "$WEBROOT/$SITE_NAME" > /dev/null 2>&1
cp "$EE_INSTALL_DIR/docker-compose.yml" "$WEBROOT/$SITE_NAME"
cp -r "$EE_INSTALL_DIR/config" "$WEBROOT/$SITE_NAME"
mv "$WEBROOT/$SITE_NAME/config/.env.example" "$WEBROOT/$SITE_NAME/.env"
sed -i.bak "s/\(VIRTUAL_HOST=\)\(site1.test\)/\1$SITE_NAME/" "$WEBROOT/$SITE_NAME/.env"

###
# Setup site networking
###
echo "Configuring network..." && sleep 1
runNginxProxyAndLetsEncrypt
docker network create $SITE_NAME
docker network connect $SITE_NAME nginx-proxy
docker network connect $SITE_NAME letsencrypt

###
# Start the containers
###
pushd "$WEBROOT/$SITE_NAME" > /dev/null 2>&1
docker-compose up -d
popd > /dev/null 2>&1

echo "$SITE_NAME created."
read -p "Would you like to add domain to /etc/host?(y/N) " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]; then
addHost "$SITE_NAME"
fi
}

multisiteSubdirectory() {
echo "Installing WordPress Multisite with Subdirectory"
}
Expand All @@ -95,6 +132,9 @@ deleteSingleWordPress() {

sudo rm -rf "$WEBROOT/$SITE_NAME"
docker network disconnect "$SITE_NAME" nginx-proxy
if isContainerConnected letsencrypt; then
docker network disconnect "$SITE_NAME" letsencrypt
fi
docker network rm "$SITE_NAME"
fi
}
Expand Down Expand Up @@ -165,18 +205,40 @@ isNginxProxyRunning() {
fi
}

# run jwilder/nginx-proxy container
runNginxProxy() {
# check if Container is connected to network
isContainerConnected() {
docker inspect -f '{{range $p, $conf := .NetworkSettings.Networks}}
{{if ne $p "bridge"}}
{{$p}}
{{end}}
{{end}}' $1 | grep $SITE_NAME > /dev/null 2>&1

if [[ $? == 0 ]]; then
return 0
else
return 1
fi
}

# run jwilder/nginx-proxy and JrCs/docker-letsencrypt-nginx-proxy-companion container
runNginxProxyAndLetsEncrypt() {
if ! isNginxProxyRunning; then
if ! portsFree; then
echo "Please make sure ports 80 and 443 are free."
else
docker run --name nginx-proxy --restart always -d -p 80:80 -p 443:443 \
-v /etc/nginx/htpasswd:/etc/nginx/htpasswd \
-v /etc/nginx/certs:/etc/nginx/certs \
-v /etc/nginx/vhost.d \
-v /usr/share/nginx/html \
-v /etc/nginx/conf.d:/etc/nginx/conf.d \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy

docker run -d --name letsencrypt \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--volumes-from nginx-proxy \
jrcs/letsencrypt-nginx-proxy-companion
fi
fi
}
Expand Down Expand Up @@ -250,6 +312,15 @@ while [[ $# -gt 0 ]]; do
if [[ $# -ne 0 ]]; then
case $1 in
'--wp')
shift
if [[ $# -ne 0 ]]; then
case $1 in
'--le')
singleWordPressLetsEncrypt
exit 0
;;
esac
fi
singleWordPress
exit 0
;;
Expand Down

0 comments on commit 4fb5eca

Please sign in to comment.