From a1ecab175cf9165537716fb007de194e76f62612 Mon Sep 17 00:00:00 2001 From: Heretic <137451+Heretic312@users.noreply.github.com> Date: Wed, 25 Jun 2025 12:55:58 -0500 Subject: [PATCH] Added rathole docker controller script --- linux/rathole_docker_control_script.sh | 82 ++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 linux/rathole_docker_control_script.sh diff --git a/linux/rathole_docker_control_script.sh b/linux/rathole_docker_control_script.sh new file mode 100644 index 0000000..575ec4e --- /dev/null +++ b/linux/rathole_docker_control_script.sh @@ -0,0 +1,82 @@ +#!/bin/bash + +# Author: Victor Bishop (Heretic) | https://github.com/Heretic312/devsecops-wrappers.git +# Date: 6/25/2025 +# Unified Rathole controller script for Docker +# Usage: ./rathole_control.sh [start|stop] [compose|manual] + +ACTION=$1 +MODE=$2 + +if [[ -z "$ACTION" || -z "$MODE" ]]; then + echo "Usage: $0 [start|stop] [compose|manual]" + exit 1 +fi + +set -e + +echo "[+] Action: $ACTION | Mode: $MODE" + +if [[ "$ACTION" == "start" ]]; then + if [[ "$MODE" == "compose" ]]; then + if [ -f docker-compose.yml ]; then + echo "[+] Starting Docker Compose stack..." + docker-compose up -d + echo "[✓] Rathole (compose) started." + else + echo "[!] docker-compose.yml not found." + exit 1 + fi + elif [[ "$MODE" == "manual" ]]; then + echo "[+] Starting rathole-server..." + docker run -d --name rathole-server \ + -v $(pwd)/server/config.toml:/config.toml \ + -p 2333:2333 -p 9000:9000 \ + rapiz1/rathole server /config.toml + + echo "[+] Starting rathole-client..." + docker run -d --name rathole-client \ + -v $(pwd)/client/config.toml:/config.toml \ + --link rathole-server \ + rapiz1/rathole client /config.toml + + echo "[✓] Rathole (manual) started." + else + echo "[!] Invalid mode: $MODE" + exit 1 + fi + +elif [[ "$ACTION" == "stop" ]]; then + if [[ "$MODE" == "compose" ]]; then + if [ -f docker-compose.yml ]; then + echo "[+] Stopping Docker Compose stack..." + docker-compose down -v + echo "[✓] Rathole (compose) stopped." + else + echo "[!] docker-compose.yml not found." + exit 1 + fi + elif [[ "$MODE" == "manual" ]]; then + echo "[+] Stopping rathole-server and rathole-client..." + docker stop rathole-server rathole-client 2>/dev/null || true + docker rm rathole-server rathole-client 2>/dev/null || true + echo "[✓] Rathole (manual) stopped and removed." + else + echo "[!] Invalid mode: $MODE" + exit 1 + fi + + # Optional cleanup prompt + echo "[?] Clean up unused Docker resources? (y/n): " + read -r CLEANUP + if [[ "$CLEANUP" == "y" ]]; then + docker system prune -f + echo "[✓] Docker system cleaned." + else + echo "[i] Skipping system prune." + fi + +else + echo "[!] Invalid action: $ACTION. Use start or stop." + exit 1 +fi