Initial commit: Omeron modular Hyprland setup framework
- Modular installer with gum-based TUI - Fresh-install detection with auto GPU driver selection - Preflight module for system detection (Intel/AMD/NVIDIA) - Core modules: packages, dotfiles, services, SDDM - Optional software installer (Obsidian, Neovim, VS Code, etc.) - Homelab config module with dynamic AGS integration - Two complete themes: Forest Neon and Rose Night - 19 Hyprland control scripts + 4 AGS widgets - Idempotent dotfile deployment with automatic backup - YAML-based configuration, extensible module system - Full logging to ~/.local/share/omeron/
This commit is contained in:
78
modules/homelab/setup.sh
Executable file
78
modules/homelab/setup.sh
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
module_description() {
|
||||
printf "Homelab Configuration - set up Unraid server access\n"
|
||||
}
|
||||
|
||||
module_required() { return 1; }
|
||||
module_should_skip() { return 1; }
|
||||
|
||||
module_prereqs() {
|
||||
return 0
|
||||
}
|
||||
|
||||
module_main() {
|
||||
log_section "Homelab Configuration"
|
||||
|
||||
local homelab_config_dir="$HOME/.config/homelab"
|
||||
local homelab_config_file="$homelab_config_dir/config.yaml"
|
||||
|
||||
tui_format "#{bold}Homelab Control Center Setup#{normal}"
|
||||
tui_format "This configures SSH access and connection details to your Unraid server."
|
||||
tui_format ""
|
||||
|
||||
local server_address server_username
|
||||
|
||||
server_address="$(tui_input "Server address (IP or domain)")"
|
||||
if [[ -z "$server_address" ]]; then
|
||||
log_info "Homelab setup skipped (no server address)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
server_username="$(tui_input "SSH username")"
|
||||
if [[ -z "$server_username" ]]; then
|
||||
server_username="root"
|
||||
fi
|
||||
|
||||
mkdir -p "$homelab_config_dir"
|
||||
|
||||
cat > "$homelab_config_file" <<CONFIG
|
||||
# Homelab Configuration
|
||||
# Generated by Omeron on $(date --rfc-3339=seconds)
|
||||
|
||||
server:
|
||||
address: "${server_address}"
|
||||
username: "${server_username}"
|
||||
port: 22
|
||||
|
||||
control_center:
|
||||
refresh_interval: 5
|
||||
theme: "dark"
|
||||
|
||||
features:
|
||||
docker: true
|
||||
services: true
|
||||
storage: true
|
||||
network: true
|
||||
monitoring: true
|
||||
CONFIG
|
||||
|
||||
log_success "Homelab configuration saved to $homelab_config_file"
|
||||
|
||||
tui_format ""
|
||||
tui_format "#{bold}Configuration Summary:#{normal}"
|
||||
tui_format " Server address: ${server_address}"
|
||||
tui_format " SSH username: ${server_username}"
|
||||
tui_format ""
|
||||
tui_format "You can edit the configuration anytime at:"
|
||||
tui_format " ${homelab_config_file}"
|
||||
|
||||
if tui_confirm "Test SSH connection to ${server_username}@${server_address}?"; then
|
||||
log_info "Testing SSH connection..."
|
||||
if ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=accept-new "${server_username}@${server_address}" "echo OK" 2>&1; then
|
||||
log_success "SSH connection successful"
|
||||
else
|
||||
log_warn "SSH connection failed. You may need to set up SSH keys or the server may not be reachable."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user