Compare commits

...

8 Commits

7 changed files with 30 additions and 15 deletions

View File

@@ -8,7 +8,7 @@ FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y git hugo nginx cron curl bash sudo htop
# User and Group
RUN groupadd -r hugo && useradd -r -g hugo hugo
#RUN groupadd -r hugo && useradd -r -g hugo hugo
# Hugo Directory Tree
RUN mkdir -pv /var/www/hugo/
@@ -17,12 +17,11 @@ RUN mkdir -pv /var/www/hugo/
RUN mkdir -pv /var/www/html/
# Copy Cron Job to Update Git Repo
COPY files/hugo.crontab /etc/cron.d/hugo
COPY files/hugo.cronjob.sh /var/www/hugo/cronjob.sh
RUN crontab /etc/cron.d/hugo
COPY files/crontab /etc/crontab
COPY files/cronjob.sh /var/www/hugo/cronjob.sh
# Hugo User Permissions
RUN chown -Rv hugo:hugo /var/www/
RUN chown -Rv www-data:www-data /var/www/
RUN chmod +x /var/www/hugo/cronjob.sh
# Copy Start Script
@@ -33,4 +32,4 @@ RUN chmod +x /root/main.sh
# Install + Run Website
WORKDIR /var/www/
USER root
CMD /root/main.sh "$REPO" "$PROD" "$DEV"
CMD /root/main.sh "$REPO" "$BRANCH" "$PROD" "$DEV"

View File

@@ -13,6 +13,7 @@ services:
- 1380:1380 # Development files with drafts served by Hugo Server.
environment:
- REPO=$REPO
- BRANCH=$BRANCH
- PROD=$PROD
- DEV=$DEV
healthcheck:

View File

@@ -9,6 +9,7 @@ COMPOSE_BAKE=true
## Git Website Repository
#
REPO=https://git.hyperling.com/me/hugo-jackanope
BRANCH=main
#
## Web Environments

View File

@@ -0,0 +1 @@
* * * * * www-data /var/www/hugo/cronjob.sh

View File

@@ -1 +0,0 @@
* * * * * hugo /var/www/hugo/cronjob.sh

View File

@@ -1,18 +1,24 @@
#!/usr/bin/env bash
REPO="$1"
echo "REPO=$REPO"
echo "REPO='$REPO'"
PROD="$2"
BRANCH="$2"
if [[ -n $BRANCH ]]; then
BRANCH="--branch $BRANCH"
fi
echo "BRANCH='$BRANCH'"
PROD="$3"
typeset -u PROD
echo "PROD=$PROD"
echo "PROD='$PROD'"
DEV="$3"
DEV="$4"
typeset -u DEV
echo "DEV=$DEV"
echo "DEV='$DEV'"
echo "*** Creating Git Repo ***"
sudo -u hugo git clone --recurse-submodules $REPO /var/www/hugo/site
sudo -u www-data git clone --recurse-submodules $BRANCH $REPO /var/www/hugo/site
status="$?"
echo "*** Validating Git Repo ***"
@@ -25,7 +31,7 @@ echo "* Site exists!"
echo "*** Copying Static Files to NGINX ***"
rm -rfv /var/www/html/*
sudo -u hugo /var/www/hugo/cronjob.sh
sudo -u www-data /var/www/hugo/cronjob.sh
echo "*** Starting Cron ***"
service cron start
@@ -58,12 +64,20 @@ if [[ "$DEV" == "Y"* || "$DEV" == "T"* ]]; then
echo "* Dev server not detected, starting..."
cd /var/www/hugo/site
killall hugo 2>/dev/null
sudo -u hugo hugo server -D --noBuildLock --bind 0.0.0.0 -p 1380 &
sudo -u www-data hugo server -D --noBuildLock --bind 0.0.0.0 -p 1380 &
fi
sleep 30
done &
fi
echo "*** Following Mail Files ***"
cd /var/mail
touch mail www-data
chown -v mail:mail mail
chown -v www-data:mail www-data
chmod -v 660 mail www-data
tail -f mail www-data &
cd
echo "*** Finished $0 @ `date` ***"