From a3526fc415abd73c587801e31effc0d578151e1b Mon Sep 17 00:00:00 2001 From: Rob McEwan Date: Fri, 14 Mar 2025 11:49:09 +1000 Subject: [PATCH] scripts --- README.md | 3 + backup/homedir-backup.sh | 42 +++++++++++ backup/workhorse-laptop-backup.sh | 39 +++++++++++ docker-compose/open-webui-docker-compose.yml | 16 +++++ docker-compose/radius-docker-compose.yml | 69 +++++++++++++++++++ .../transmission-docker-compose.yml | 23 +++++++ docker-compose/wireguard-docker-compose.yml | 40 +++++++++++ 7 files changed, 232 insertions(+) create mode 100644 README.md create mode 100644 backup/homedir-backup.sh create mode 100644 backup/workhorse-laptop-backup.sh create mode 100644 docker-compose/open-webui-docker-compose.yml create mode 100644 docker-compose/radius-docker-compose.yml create mode 100644 docker-compose/transmission-docker-compose.yml create mode 100644 docker-compose/wireguard-docker-compose.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..51eb1ea --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Hello World! + +A collection of useful scripts \ No newline at end of file diff --git a/backup/homedir-backup.sh b/backup/homedir-backup.sh new file mode 100644 index 0000000..ec072cd --- /dev/null +++ b/backup/homedir-backup.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Get today's date for our backup filename +backupDate=$(date +'%F') + +# Enter backup directory +cd /backup || exit +echo "Moving to backup directory..." + +# Clear old log files +rm -rf *.log +echo "Log files cleared..." | tee -a $backupDate-rob-homedir-backup.log + +# Display todays date +echo "Backup Log - Rob's Home Directory" | tee -a $backupDate-rob-homedir-backup.log +echo $backupDate | tee -a $backupDate-rob-homedir-backup.log + +# Create tar of docker directory +echo "Creating a tar archive of your docker parent folder..." | tee -a $backupDate-rob-homedir-backup.log + +echo "EXCLUDING ./Downloads & ./VirtualBoxVMs" | tee -a $backupDate-rob-homedir-backup.log + +tar -czvf --exclude='./Downloads' --exclude='./VirtualBoxVMs' $backupDate-rob-homedir-backup.tar.gz /home/rob + + +echo "Uploading backup file to BackBlaze..." | & tee -a $backupDate-rob-homedir-backup.log +rclone copy $backupDate-rob-homedir-backup.tar.gz b2:workhorse-laptop --progress >> $backupDate-rob-homedir-backup.log 2>&1 + +# remove the tar file from the main home folder after it's copied +echo "Removing local backup cache..." | tee -a rob-homedir-backup-$backupDate.log +rm -rf $backupDate-rob-homedir-backup.tar.gz >> rob-homedir-backup-$backupDate.log 2>&1 + +# Run System Update +echo "Running System Update..." | tee -a rob-homedir-backup-$backupDate.log +apt update && apt upgrade -y && apt autoremove -y | tee -a rob-homedir-backup-$backupDate.log + +# Email log to an email address +# sendmail -s "Home Directory Backup Completed" rgmcewan@outlook.com < docker-$backupDate.log + +# Email log to an email address using postfix +echo "Robs Home Directory backup | Complete" | tee -a rob-homedir-backup-$backupDate.log +#/usr/sbin/sendmail -t -v rgmcewan@outlook.com < echo rob-homedir-backup-$backupDate.log \ No newline at end of file diff --git a/backup/workhorse-laptop-backup.sh b/backup/workhorse-laptop-backup.sh new file mode 100644 index 0000000..a9c7bfb --- /dev/null +++ b/backup/workhorse-laptop-backup.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Get today's date for our backup filename +backupDate=$(date +'%F') + +# Enter backup directory +cd /backup || exit +echo "Moving to backup directory..." + +# Clear old log files +rm -rf *.log +echo "Log files cleared..." | tee -a rob-homedir-$backupDate.log + +# Display todays date +echo "Backup Log - Rob's Home Directory" | tee -a rob-homedir-$backupDate.log +echo $backupDate | tee -a rob-homedir-$backupDate.log + +# Create tar of docker directory +echo "Creating a tar archive of your docker parent folder..." | tee -a rob-homedir-$backupDate.log +tar -czvf $backupDate-rob-homedir-backup.tar.gz /home/rob + + +echo "Uploading backup file to BackBlaze..." | tee -a rob-homedir-$backupDate.log +rclone copy $backupDate-rob-homedir-backup.tar.gz backblaze:workhorse-laptop --progress >> rob-homedir-$backupDate.log 2>&1 + +# remove the tar file from the main home folder after it's copied +echo "Removing local backup cache..." | tee -a rob-homedir-backup-$backupDate.log +rm -rf $backupDate-rob-homedir-backup.tar.gz >> rob-homedir-backup-$backupDate.log 2>&1 + +# Run System Update +echo "Running System Update..." | tee -a rob-homedir-backup-$backupDate.log +apt update && apt upgrade -y && apt autoremove -y | tee -a rob-homedir-backup-$backupDate.log + +# Email log to an email address +# sendmail -s "Docker Backup Completed" rgmcewan@outlook.com < docker-$backupDate.log + +# Email log to an email address using postfix +#echo "Docker backup | Complete" | tee -a docker-$backupDate.log +#/usr/sbin/sendmail -t -v rgmcewan@outlook.com < docker-$backupDate.log diff --git a/docker-compose/open-webui-docker-compose.yml b/docker-compose/open-webui-docker-compose.yml new file mode 100644 index 0000000..c43a641 --- /dev/null +++ b/docker-compose/open-webui-docker-compose.yml @@ -0,0 +1,16 @@ +services: + open-webui: + build: + dockerfile: Dockerfile + image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main} + container_name: open-webui + volumes: + - /home/rob/docker/open-webui:/app/backend/data + ports: + - ${OPEN_WEBUI_PORT-3000}:8080 + environment: + - 'OLLAMA_BASE_URL=http://172.16.50.56:11434' + - 'WEBUI_SECRET_KEY=' + extra_hosts: + - host.docker.internal:host-gateway + restart: unless-stopped \ No newline at end of file diff --git a/docker-compose/radius-docker-compose.yml b/docker-compose/radius-docker-compose.yml new file mode 100644 index 0000000..d6250c2 --- /dev/null +++ b/docker-compose/radius-docker-compose.yml @@ -0,0 +1,69 @@ +services: + + mysql: + image: mysql:5.7.22 + container_name: fradmin-mysql + volumes: + - /home/rob/docker/radius/srv/conf.d:/etc/mysql/conf.d + - /home/rob/docker/radius/mysql/srv/initdb.d:/docker-entrypoint-initdb.d + - /home/rob/docker/radius/mysql/srv/data:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: hadxSWzzA50B82NRff8p + restart: unless-stopped + + + nginx: + image: nginx + container_name: fradmin-nginx + depends_on: + - mysql + - php + volumes: + - "/home/rob/docker/radius/web/src:/var/www/html" + - "/home/rob/docker/radius/web/conf.d:/etc/nginx/conf.d" + ports: + - "8082:80" + restart: unless-stopped + + php: + build: + context: /home/rob/docker/radius/php + container_name: fradmin-php + restart: always + volumes: + - "/home/rob/docker/radius/web/src:/var/www/html" + + phpmyadmin: + image: phpmyadmin/phpmyadmin + container_name: fradmin-pma + depends_on: + - mysql + environment: + - PMA_HOST=mysql + - PMA_USER=root + - PMA_PASSWORD=hadxSWzzA50B82NRff8p + ports: + - "9200:80" + + radius: + image: freeradius/freeradius-server:3.0.17 + container_name: fradmin-radius + depends_on: + - mysql + ports: + - "1812:1812" + - "1813:1813" + volumes: + - "/home/rob/docker/radius/freeradius/config/freeradius:/etc/freeradius" + - "/home/rob/docker/radius/freeradius/logs:/var/log/freeradius" + + restart: unless-stopped + #tty: true + + radtest: + build: /home/rob/docker/radius/radtest + container_name: fradmin-radtest + depends_on: + - radius + restart: unless-stopped + tty: true \ No newline at end of file diff --git a/docker-compose/transmission-docker-compose.yml b/docker-compose/transmission-docker-compose.yml new file mode 100644 index 0000000..58cdbb0 --- /dev/null +++ b/docker-compose/transmission-docker-compose.yml @@ -0,0 +1,23 @@ +services: + transmission: + image: lscr.io/linuxserver/transmission:latest + container_name: transmission + environment: + - PUID=1000 + - PGID=1000 + - TZ=Australia/Brisbane + # - TRANSMISSION_WEB_HOME= #optional + # - USER= #optional + # - PASS= #optional + # - WHITELIST= #optional + # - PEERPORT= #optional + # - HOST_WHITELIST= #optional + volumes: + - /home/rob/docker/transmission/data:/config + - /mnt/downloads:/downloads + - /mnt/media:/watch + ports: + - 9091:9091 + - 51413:51413 + - 51413:51413/udp + restart: unless-stopped \ No newline at end of file diff --git a/docker-compose/wireguard-docker-compose.yml b/docker-compose/wireguard-docker-compose.yml new file mode 100644 index 0000000..be1f7f3 --- /dev/null +++ b/docker-compose/wireguard-docker-compose.yml @@ -0,0 +1,40 @@ +services: + wireguard: + image: linuxserver/wireguard:latest + container_name: wireguard + cap_add: + - NET_ADMIN + volumes: + - /home/rob/docker/wireguard/config:/config + ports: + # port for wireguard-ui. this must be set here as the `wireguard-ui` container joins the network of this container and hasn't its own network over which it could publish the ports + - "5000:5000" + # port of the wireguard server + - "51820:51820/udp" + + wireguard-ui: + image: ngoduykhanh/wireguard-ui:latest + container_name: wireguard-ui + depends_on: + - wireguard + cap_add: + - NET_ADMIN + # use the network of the 'wireguard' service. this enables to show active clients in the status page + network_mode: service:wireguard + environment: + - SENDGRID_API_KEY + - EMAIL_FROM_ADDRESS + - EMAIL_FROM_NAME + - SESSION_SECRET + - WGUI_USERNAME=rob.mcewan + - WGUI_PASSWORD=5b4wBnqU3J739e3y37hJ + - WG_CONF_TEMPLATE + - WGUI_MANAGE_START=true + - WGUI_MANAGE_RESTART=true + logging: + driver: json-file + options: + max-size: 50m + volumes: + - /home/rob/docker/wireguard/db:/app/db + - /home/rob/docker/wireguard/config:/etc/wireguard \ No newline at end of file