mirror of
https://github.com/Heretic312/devsecops-wrappers.git
synced 2025-12-17 09:46:01 +00:00
83 lines
2.2 KiB
Bash
83 lines
2.2 KiB
Bash
#!/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
|