- Add automatic directory creation in create_symlink function - Include copyparty, portainer, and qbittorrent configs - Add landing page symlink for easier updates - Update verification commands to include all services
131 lines
4.1 KiB
Bash
Executable File
131 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Set up symlinks for Docker configurations to avoid manual copying
|
|
|
|
set -e # Exit on error
|
|
|
|
echo "==================================================================="
|
|
echo "Docker Configuration Symlink Setup"
|
|
echo "==================================================================="
|
|
echo ""
|
|
|
|
REPO_ROOT="/home/hoborg/homelab"
|
|
|
|
# Function to create symlink with backup
|
|
create_symlink() {
|
|
local service=$1
|
|
local target=$2
|
|
local link=$3
|
|
|
|
echo "-------------------------------------------------------------------"
|
|
echo "Setting up: $service"
|
|
echo "-------------------------------------------------------------------"
|
|
echo "Target: $target"
|
|
echo "Link: $link"
|
|
echo ""
|
|
|
|
# Check if target exists
|
|
if [ ! -f "$target" ]; then
|
|
echo "ERROR: Target file does not exist: $target"
|
|
return 1
|
|
fi
|
|
|
|
# Create parent directory if it doesn't exist
|
|
local link_dir=$(dirname "$link")
|
|
if [ ! -d "$link_dir" ]; then
|
|
echo "Creating directory: $link_dir"
|
|
mkdir -p "$link_dir"
|
|
fi
|
|
|
|
# Backup existing file if it's not already a symlink
|
|
if [ -f "$link" ] && [ ! -L "$link" ]; then
|
|
backup="${link}.backup.$(date +%Y%m%d_%H%M%S)"
|
|
echo "Backing up existing file to: $backup"
|
|
cp "$link" "$backup"
|
|
rm "$link"
|
|
elif [ -L "$link" ]; then
|
|
echo "Removing existing symlink"
|
|
rm "$link"
|
|
fi
|
|
|
|
# Create symlink
|
|
ln -s "$target" "$link"
|
|
|
|
if [ -L "$link" ]; then
|
|
echo "✓ Symlink created successfully"
|
|
else
|
|
echo "✗ Failed to create symlink"
|
|
return 1
|
|
fi
|
|
|
|
echo ""
|
|
}
|
|
|
|
# Gitea docker-compose.yml
|
|
create_symlink "Gitea docker-compose" \
|
|
"$REPO_ROOT/config/docker/gitea/docker-compose.yml" \
|
|
"/opt/docker/gitea/docker-compose.yml"
|
|
|
|
# Jellyfin docker-compose.yml
|
|
create_symlink "Jellyfin docker-compose" \
|
|
"$REPO_ROOT/config/docker/jellyfin/docker-compose.yml" \
|
|
"/opt/docker/jellyfin/docker-compose.yml"
|
|
|
|
# qBittorrent docker-compose.yml
|
|
create_symlink "qBittorrent docker-compose" \
|
|
"$REPO_ROOT/config/docker/qbittorrent/docker-compose.yml" \
|
|
"/opt/docker/qbittorrent/docker-compose.yml"
|
|
|
|
# Portainer docker-compose.yml
|
|
create_symlink "Portainer docker-compose" \
|
|
"$REPO_ROOT/config/docker/portainer/docker-compose.yml" \
|
|
"/opt/docker/portainer/docker-compose.yml"
|
|
|
|
# Copyparty docker-compose.yml
|
|
create_symlink "Copyparty docker-compose" \
|
|
"$REPO_ROOT/config/docker/copyparty/docker-compose.yml" \
|
|
"/opt/docker/copyparty/docker-compose.yml"
|
|
|
|
# Glances docker-compose.yml
|
|
create_symlink "Glances docker-compose" \
|
|
"$REPO_ROOT/config/docker/glances/docker-compose.yml" \
|
|
"/opt/docker/glances/docker-compose.yml"
|
|
|
|
# Syncthing docker-compose.yml
|
|
create_symlink "Syncthing docker-compose" \
|
|
"$REPO_ROOT/config/docker/syncthing/docker-compose.yml" \
|
|
"/opt/docker/syncthing/docker-compose.yml"
|
|
|
|
# Docker daemon config
|
|
create_symlink "Docker daemon config" \
|
|
"$REPO_ROOT/config/docker/daemon.json" \
|
|
"/etc/docker/daemon.json"
|
|
|
|
# Landing page
|
|
create_symlink "Landing page" \
|
|
"$REPO_ROOT/config/www/index.html" \
|
|
"/var/www/homelab/index.html"
|
|
|
|
echo "==================================================================="
|
|
echo "Summary"
|
|
echo "==================================================================="
|
|
echo ""
|
|
echo "✓ All symlinks created successfully!"
|
|
echo ""
|
|
echo "Notes:"
|
|
echo " - Original files backed up with timestamp"
|
|
echo " - Edit files in $REPO_ROOT/config/docker/"
|
|
echo " - Changes take effect immediately (no copying needed)"
|
|
echo " - For daemon.json: restart docker after changes"
|
|
echo " - For docker-compose: restart containers after changes"
|
|
echo ""
|
|
echo "Verify symlinks:"
|
|
echo " ls -l /opt/docker/gitea/docker-compose.yml"
|
|
echo " ls -l /opt/docker/jellyfin/docker-compose.yml"
|
|
echo " ls -l /opt/docker/qbittorrent/docker-compose.yml"
|
|
echo " ls -l /opt/docker/portainer/docker-compose.yml"
|
|
echo " ls -l /opt/docker/copyparty/docker-compose.yml"
|
|
echo " ls -l /opt/docker/glances/docker-compose.yml"
|
|
echo " ls -l /opt/docker/syncthing/docker-compose.yml"
|
|
echo " ls -l /etc/docker/daemon.json"
|
|
echo ""
|