Files

58 lines
1.8 KiB
Bash

#!/bin/bash
# --- CONFIGURATION ---
BASE_DIR="/home/miles"
# List of folders to create based on your docker-compose
FOLDERS=(
"code-config" "projects" "homarr-data" "navidrome-data"
"navidrome-music" "trilium-data" "gitea-data" "roms"
"romm-data" "ntfy-cache" "qbittorrent-config" "downloads"
)
# --- 1. INSTALL DOCKER ---
if ! [ -x "$(command -v docker)" ]; then
echo "🚀 Docker not found. Installing..."
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
echo "✅ Docker installed. (Note: You may need to logout and back in for group changes to take effect)"
else
echo "✅ Docker is already installed."
fi
# --- 2. CREATE FOLDERS ---
echo "📂 Creating directory structure..."
for folder in "${FOLDERS[@]}"; do
mkdir -p "$BASE_DIR/$folder"
done
# Set permissions to PUID 1000
sudo chown -R $USER:$USER $BASE_DIR/
echo "✅ Folders created and permissions set to user $USER."
# --- 3. MANAGEMENT MENU ---
show_menu() {
echo "------------------------------------------"
echo " HOME SERVER MANAGEMENT MENU"
echo "------------------------------------------"
echo "1) Start/Update Stack (Up -d)"
echo "2) Stop Stack (Down)"
echo "3) View Logs (Follow)"
echo "4) Update Images (Pull)"
echo "5) Check Container Status"
echo "6) Exit"
echo "------------------------------------------"
}
while true; do
show_menu
read -p "Choose an option [1-6]: " choice
case $choice in
1) docker compose up -d ;;
2) docker compose down ;;
3) docker compose logs -f --tail=50 ;;
4) docker compose pull && docker compose up -d ;;
5) docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" ;;
6) exit 0 ;;
*) echo "Invalid option. Try again." ;;
esac
done