Compare commits
11 Commits
main
...
018c3c9ceb
| Author | SHA1 | Date | |
|---|---|---|---|
| 018c3c9ceb | |||
| 7e733dedcb | |||
| dac5c0de17 | |||
| 3ae7a6f8f9 | |||
| 567f1de450 | |||
| 3ca8b036ad | |||
| 3897d6f3c3 | |||
| fdff4f0d27 | |||
| 7b9bbcbc26 | |||
| cbaf052ea2 | |||
| c4c3cb6434 |
10
.gitignore
vendored
10
.gitignore
vendored
@@ -25,6 +25,8 @@ Config/DNS/config/*
|
|||||||
|
|
||||||
# Ignore anything in disabled folders.
|
# Ignore anything in disabled folders.
|
||||||
disabled
|
disabled
|
||||||
|
*.disabled
|
||||||
|
disabled.*
|
||||||
|
|
||||||
# Ignore any .env files which are not explicitly committed to the project.
|
# Ignore any .env files which are not explicitly committed to the project.
|
||||||
*.env
|
*.env
|
||||||
@@ -35,10 +37,16 @@ docker-compose.yml
|
|||||||
# 2024-01-24 Hide static files for Hyperling.com.
|
# 2024-01-24 Hide static files for Hyperling.com.
|
||||||
Config/Hyperling.com/files/*
|
Config/Hyperling.com/files/*
|
||||||
|
|
||||||
# Ignore things like "Config/Hyperling.com-Stage/""
|
# Ignore things like "Config/Hyperling.com-Stage/"
|
||||||
*-Stage
|
*-Stage
|
||||||
Stage-*
|
Stage-*
|
||||||
|
|
||||||
# Ignore copies of the Hugo configuration, such as "Config/Hugo-MyWebsite".
|
# Ignore copies of the Hugo configuration, such as "Config/Hugo-MyWebsite".
|
||||||
Hugo-*
|
Hugo-*
|
||||||
*-Hugo
|
*-Hugo
|
||||||
|
|
||||||
|
# Ignore Prod and Dev copies as well.
|
||||||
|
*-Prod
|
||||||
|
Prod-*
|
||||||
|
*-Dev
|
||||||
|
Dev-*
|
||||||
|
|||||||
@@ -17,12 +17,17 @@ DEV="$4"
|
|||||||
typeset -u DEV
|
typeset -u DEV
|
||||||
echo "DEV='$DEV'"
|
echo "DEV='$DEV'"
|
||||||
|
|
||||||
|
SITE="/var/www/hugo/site"
|
||||||
|
|
||||||
echo "*** Creating Git Repo ***"
|
echo "*** Creating Git Repo ***"
|
||||||
sudo -u www-data git clone --recurse-submodules $BRANCH $REPO /var/www/hugo/site
|
if [[ -d $SITE ]]; then
|
||||||
|
rm -rfv $SITE
|
||||||
|
fi
|
||||||
|
sudo -u www-data git clone --recurse-submodules $BRANCH $REPO $SITE
|
||||||
status="$?"
|
status="$?"
|
||||||
|
|
||||||
echo "*** Validating Git Repo ***"
|
echo "*** Validating Git Repo ***"
|
||||||
if [[ $status != 0 || ! -d /var/www/hugo/site/.git ]]; then
|
if [[ $status != 0 || ! -d $SITE/.git ]]; then
|
||||||
echo "ERROR: Hugo project may not have cloned correctly. status='$status'"
|
echo "ERROR: Hugo project may not have cloned correctly. status='$status'"
|
||||||
echo "Aborting."
|
echo "Aborting."
|
||||||
exit 1
|
exit 1
|
||||||
@@ -62,7 +67,7 @@ if [[ "$DEV" == "Y"* || "$DEV" == "T"* ]]; then
|
|||||||
http_code="`curl -sS http://localhost:1380 -o /dev/null -w "%{http_code}"`"
|
http_code="`curl -sS http://localhost:1380 -o /dev/null -w "%{http_code}"`"
|
||||||
if [[ $http_code != 200 ]]; then
|
if [[ $http_code != 200 ]]; then
|
||||||
echo "* Dev server not detected, starting..."
|
echo "* Dev server not detected, starting..."
|
||||||
cd /var/www/hugo/site
|
cd $SITE
|
||||||
killall hugo 2>/dev/null
|
killall hugo 2>/dev/null
|
||||||
sudo -u www-data 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
|
fi
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
# Construction Area
|
||||||
|
|
||||||
|
This configuration is still a work in progress. :)
|
||||||
|
|
||||||
# Provision Test Images
|
# Provision Test Images
|
||||||
|
|
||||||
Create containers of popular Linux distributions in order to test Ansible.
|
Create containers of popular Linux distributions in order to test Ansible.
|
||||||
|
|||||||
@@ -20,5 +20,7 @@ EXTRA_UBUNTU=""
|
|||||||
|
|
||||||
## Script
|
## Script
|
||||||
REPO=https://git.hyperling.com/me/env-ansible
|
REPO=https://git.hyperling.com/me/env-ansible
|
||||||
BRANCH=dev
|
#BRANCH=dev
|
||||||
|
BRANCH=stage
|
||||||
|
#BRANCH=prod
|
||||||
EXEC="./setup.sh -l"
|
EXEC="./setup.sh -l"
|
||||||
|
|||||||
3
Config/WordpressExample/README.md
Normal file
3
Config/WordpressExample/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Construction Area
|
||||||
|
|
||||||
|
This configuration is still a work in progress. :)
|
||||||
58
Config/WordpressExample/docker-compose.main.yml
Normal file
58
Config/WordpressExample/docker-compose.main.yml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# 2025-10-17 Hyperling
|
||||||
|
# Copied and modified from the example here:
|
||||||
|
# https://hub.docker.com/_/wordpress
|
||||||
|
# This file should be copied to `docker-compose.yml`.
|
||||||
|
# Most configration changes can be done in the env file rather than here.
|
||||||
|
|
||||||
|
## TBDs ##
|
||||||
|
# - Move env variables to env.example
|
||||||
|
# - Look through other environment variables which may be useful.
|
||||||
|
# - Add CPU and MEM section
|
||||||
|
# - Change ports
|
||||||
|
|
||||||
|
# TBD locate these at ../../Volumes and create `prep.sh` script.
|
||||||
|
volumes:
|
||||||
|
wordpress:
|
||||||
|
db:
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
wp-app:
|
||||||
|
image: wordpress
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
||||||
|
environment:
|
||||||
|
WORDPRESS_DB_HOST: wp-db
|
||||||
|
WORDPRESS_DB_USER: $WORDPRESS_DB_USER
|
||||||
|
WORDPRESS_DB_PASSWORD: $WORDPRESS_DB_PASSWORD
|
||||||
|
WORDPRESS_DB_NAME: $WORDPRESS_DB_NAME
|
||||||
|
WP_CPU: $WP_CPU
|
||||||
|
WP_MEM: $WP_MEM
|
||||||
|
volumes:
|
||||||
|
- wordpress:/var/www/html
|
||||||
|
deploy:
|
||||||
|
mode: global
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: $WP_CPU
|
||||||
|
memory: $WP_MEM
|
||||||
|
|
||||||
|
wp-db:
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: $WORDPRESS_DB_NAME
|
||||||
|
MYSQL_USER: $WORDPRESS_DB_USER
|
||||||
|
MYSQL_PASSWORD: WORDPRESS_DB_PASSWORD
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD: '1'
|
||||||
|
WP_CPU_DB: $WP_CPU_DB
|
||||||
|
WP_MEM_DB: $WP_MEM_DB
|
||||||
|
volumes:
|
||||||
|
- db:/var/lib/mysql
|
||||||
|
deploy:
|
||||||
|
mode: global
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: $WP_CPU_DB
|
||||||
|
memory: $WP_MEM_DB
|
||||||
35
Config/WordpressExample/env.main
Normal file
35
Config/WordpressExample/env.main
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# This file should be copied to `.env` and have its values changes as needed.
|
||||||
|
|
||||||
|
COMPOSE_BAKE=true
|
||||||
|
|
||||||
|
## Database ##
|
||||||
|
WORDPRESS_DB_HOST=db
|
||||||
|
WORDPRESS_DB_USER=exampleuser
|
||||||
|
WORDPRESS_DB_PASSWORD=examplepass
|
||||||
|
WORDPRESS_DB_NAME=exampledb
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD=1
|
||||||
|
|
||||||
|
## Performance ##
|
||||||
|
# Standard Minimum
|
||||||
|
#WP_CPU=1.00
|
||||||
|
#WP_MEM=2.0G
|
||||||
|
#WP_CPU_DB=
|
||||||
|
#WP_MEM_DB=
|
||||||
|
|
||||||
|
# Standard Recommended
|
||||||
|
#WP_CPU=1.00
|
||||||
|
#WP_MEM=4.0G
|
||||||
|
#WP_CPU_DB=
|
||||||
|
#WP_MEM_DB=
|
||||||
|
|
||||||
|
# tested Minimum
|
||||||
|
#WP_CPU=
|
||||||
|
#WP_MEM=
|
||||||
|
#WP_CPU_DB=
|
||||||
|
#WP_MEM_DB=
|
||||||
|
|
||||||
|
# Tested Recommended
|
||||||
|
WP_CPU=
|
||||||
|
WP_MEM=
|
||||||
|
WP_CPU_DB=
|
||||||
|
WP_MEM_DB=
|
||||||
@@ -16,6 +16,39 @@ BASENAME="Backup"
|
|||||||
file="$BACKUP_DIR/$BASENAME.$DATE.$HOSTNAME.$TAG.zip"
|
file="$BACKUP_DIR/$BASENAME.$DATE.$HOSTNAME.$TAG.zip"
|
||||||
time="`which time`"
|
time="`which time`"
|
||||||
|
|
||||||
|
## Functions ##
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
cat <<- EOF
|
||||||
|
Backup script for Hyperling's self-managed Docker setup.
|
||||||
|
|
||||||
|
Usage: $PROG [-u] [-d] [-h]
|
||||||
|
-u : Bring all containers up after the backup has finished.
|
||||||
|
-d : Bring all containers down before taking the backup.
|
||||||
|
-h : Display this help text.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
$PROG -ud
|
||||||
|
EOF
|
||||||
|
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
## Parameters ##
|
||||||
|
|
||||||
|
up=FALSE
|
||||||
|
down=FALSE
|
||||||
|
|
||||||
|
while getopts ':udh' opt; do
|
||||||
|
case "$opt" in
|
||||||
|
u) up=TRUE ;;
|
||||||
|
d) down=TRUE ;;
|
||||||
|
h) usage 0 ;;
|
||||||
|
*) echo "ERROR: Option $OPTARG not recognized." >&2
|
||||||
|
usage 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
## Main ##
|
## Main ##
|
||||||
|
|
||||||
# Ensure backup directory exists with correct permissions.
|
# Ensure backup directory exists with correct permissions.
|
||||||
@@ -30,8 +63,12 @@ cd "$BACKUP_DIR"
|
|||||||
mv -v "$BASENAME"*"$TAG"* TRASH/
|
mv -v "$BASENAME"*"$TAG"* TRASH/
|
||||||
rm -v TRASH/*
|
rm -v TRASH/*
|
||||||
|
|
||||||
echo -e "\n`date` - Take down services for a cold backup."
|
if [[ "$down" == "TRUE" ]]; then
|
||||||
manage.sh -d
|
echo -e "\n`date` - Take down services for a cold backup."
|
||||||
|
manage.sh -d
|
||||||
|
else
|
||||||
|
echo -e "\n`date` - Skipping take down."
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e "\n`date` - Create the backup for '$DOCKER_HOME'."
|
echo -e "\n`date` - Create the backup for '$DOCKER_HOME'."
|
||||||
$time zip -r $file.tmp \
|
$time zip -r $file.tmp \
|
||||||
@@ -46,8 +83,12 @@ ls -sh $file
|
|||||||
echo -e "\n`date` - Ensure other users can access the file."
|
echo -e "\n`date` - Ensure other users can access the file."
|
||||||
chmod -v 755 $file
|
chmod -v 755 $file
|
||||||
|
|
||||||
echo -e "\n`date` - Bring services back up."
|
if [[ "$up" == "TRUE" ]]; then
|
||||||
manage.sh -u
|
echo -e "\n`date` - Bring services back up."
|
||||||
|
manage.sh -u
|
||||||
|
else
|
||||||
|
echo -e "\n`date` - Skipping restoring services."
|
||||||
|
fi
|
||||||
|
|
||||||
## Finish ##
|
## Finish ##
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user