mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-03-28 03:29:25 +01:00
feat: add support for Fedora-based systems in installation script
This commit is contained in:
parent
735b9e8ae6
commit
3fd5c9a6e8
|
|
@ -17,11 +17,11 @@
|
||||||
Project N.O.M.A.D. is a self-contained, offline-first knowledge and education server packed with critical tools, knowledge, and AI to keep you informed and empowered—anytime, anywhere.
|
Project N.O.M.A.D. is a self-contained, offline-first knowledge and education server packed with critical tools, knowledge, and AI to keep you informed and empowered—anytime, anywhere.
|
||||||
|
|
||||||
## Installation & Quickstart
|
## Installation & Quickstart
|
||||||
Project N.O.M.A.D. can be installed on any Debian-based operating system (we recommend Ubuntu). Installation is completely terminal-based, and all tools and resources are designed to be accessed through the browser, so there's no need for a desktop environment if you'd rather setup N.O.M.A.D. as a "server" and access it through other clients.
|
Project N.O.M.A.D. can be installed on any Debian-based or Fedora operating system (we recommend Ubuntu). Installation is completely terminal-based, and all tools and resources are designed to be accessed through the browser, so there's no need for a desktop environment if you'd rather setup N.O.M.A.D. as a "server" and access it through other clients.
|
||||||
|
|
||||||
*Note: sudo/root privileges are required to run the install script*
|
*Note: sudo/root privileges are required to run the install script*
|
||||||
|
|
||||||
#### Quick Install (Debian-based OS Only)
|
#### Quick Install (Debian-based or Fedora OS)
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get update && sudo apt-get install -y curl && curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh -o install_nomad.sh && sudo bash install_nomad.sh
|
sudo apt-get update && sudo apt-get install -y curl && curl -fsSL https://raw.githubusercontent.com/Crosstalk-Solutions/project-nomad/refs/heads/main/install/install_nomad.sh -o install_nomad.sh && sudo bash install_nomad.sh
|
||||||
```
|
```
|
||||||
|
|
@ -70,7 +70,7 @@ At it's core, however, N.O.M.A.D. is still very lightweight. For a barebones ins
|
||||||
- Processor: 2 GHz dual-core processor or better
|
- Processor: 2 GHz dual-core processor or better
|
||||||
- RAM: 4GB system memory
|
- RAM: 4GB system memory
|
||||||
- Storage: At least 5 GB free disk space
|
- Storage: At least 5 GB free disk space
|
||||||
- OS: Debian-based (Ubuntu recommended)
|
- OS: Debian-based (Ubuntu recommended) or Fedora
|
||||||
- Stable internet connection (required during install only)
|
- Stable internet connection (required during install only)
|
||||||
|
|
||||||
To run LLM's and other included AI tools:
|
To run LLM's and other included AI tools:
|
||||||
|
|
@ -80,7 +80,7 @@ To run LLM's and other included AI tools:
|
||||||
- RAM: 32 GB system memory
|
- RAM: 32 GB system memory
|
||||||
- Graphics: NVIDIA RTX 3060 or AMD equivalent or better (more VRAM = run larger models)
|
- Graphics: NVIDIA RTX 3060 or AMD equivalent or better (more VRAM = run larger models)
|
||||||
- Storage: At least 250 GB free disk space (preferably on SSD)
|
- Storage: At least 250 GB free disk space (preferably on SSD)
|
||||||
- OS: Debian-based (Ubuntu recommended)
|
- OS: Debian-based (Ubuntu recommended) or Fedora
|
||||||
- Stable internet connection (required during install only)
|
- Stable internet connection (required during install only)
|
||||||
|
|
||||||
**For detailed build recommendations at three price points ($150–$1,000+), see the [Hardware Guide](https://www.projectnomad.us/hardware).**
|
**For detailed build recommendations at three price points ($150–$1,000+), see the [Hardware Guide](https://www.projectnomad.us/hardware).**
|
||||||
|
|
|
||||||
|
|
@ -78,14 +78,19 @@ check_is_bash() {
|
||||||
echo -e "${GREEN}#${RESET} This script is running in bash.\\n"
|
echo -e "${GREEN}#${RESET} This script is running in bash.\\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_is_debian_based() {
|
check_os_compatibility() {
|
||||||
if [[ ! -f /etc/debian_version ]]; then
|
if [[ -f /etc/debian_version ]]; then
|
||||||
|
OS_TYPE="debian"
|
||||||
|
echo -e "${GREEN}#${RESET} This script is running on a Debian-based system.\\n"
|
||||||
|
elif [[ -f /etc/fedora-release ]]; then
|
||||||
|
OS_TYPE="fedora"
|
||||||
|
echo -e "${GREEN}#${RESET} This script is running on a Fedora system.\\n"
|
||||||
|
else
|
||||||
header_red
|
header_red
|
||||||
echo -e "${RED}#${RESET} This script is designed to run on Debian-based systems only.\\n"
|
echo -e "${RED}#${RESET} This script is designed to run on Debian-based or Fedora systems only.\\n"
|
||||||
echo -e "${RED}#${RESET} Please run this script on a Debian-based system and try again."
|
echo -e "${RED}#${RESET} Please run this script on a supported system and try again."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo -e "${GREEN}#${RESET} This script is running on a Debian-based system.\\n"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ensure_dependencies_installed() {
|
ensure_dependencies_installed() {
|
||||||
|
|
@ -103,8 +108,12 @@ ensure_dependencies_installed() {
|
||||||
|
|
||||||
if [[ ${#missing_deps[@]} -gt 0 ]]; then
|
if [[ ${#missing_deps[@]} -gt 0 ]]; then
|
||||||
echo -e "${YELLOW}#${RESET} Installing required dependencies: ${missing_deps[*]}...\\n"
|
echo -e "${YELLOW}#${RESET} Installing required dependencies: ${missing_deps[*]}...\\n"
|
||||||
sudo apt-get update
|
if [[ "$OS_TYPE" == "debian" ]]; then
|
||||||
sudo apt-get install -y "${missing_deps[@]}"
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y "${missing_deps[@]}"
|
||||||
|
elif [[ "$OS_TYPE" == "fedora" ]]; then
|
||||||
|
sudo dnf install -y "${missing_deps[@]}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Verify installation
|
# Verify installation
|
||||||
for dep in "${missing_deps[@]}"; do
|
for dep in "${missing_deps[@]}"; do
|
||||||
|
|
@ -142,11 +151,15 @@ ensure_docker_installed() {
|
||||||
if ! command -v docker &> /dev/null; then
|
if ! command -v docker &> /dev/null; then
|
||||||
echo -e "${YELLOW}#${RESET} Docker not found. Installing Docker...\\n"
|
echo -e "${YELLOW}#${RESET} Docker not found. Installing Docker...\\n"
|
||||||
|
|
||||||
# Update package database
|
if [[ "$OS_TYPE" == "debian" ]]; then
|
||||||
sudo apt-get update
|
# Update package database
|
||||||
|
sudo apt-get update
|
||||||
# Install prerequisites
|
|
||||||
sudo apt-get install -y ca-certificates curl
|
# Install prerequisites
|
||||||
|
sudo apt-get install -y ca-certificates curl
|
||||||
|
elif [[ "$OS_TYPE" == "fedora" ]]; then
|
||||||
|
sudo dnf install -y curl
|
||||||
|
fi
|
||||||
|
|
||||||
# Create directory for keyrings
|
# Create directory for keyrings
|
||||||
# sudo install -m 0755 -d /etc/apt/keyrings
|
# sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
|
@ -245,27 +258,38 @@ setup_nvidia_container_toolkit() {
|
||||||
|
|
||||||
echo -e "${YELLOW}#${RESET} Installing NVIDIA container toolkit...\\n"
|
echo -e "${YELLOW}#${RESET} Installing NVIDIA container toolkit...\\n"
|
||||||
|
|
||||||
# Install dependencies per https://docs.ollama.com/docker - wrapped in error handling
|
if [[ "$OS_TYPE" == "debian" ]]; then
|
||||||
if ! curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey 2>/dev/null | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg 2>/dev/null; then
|
# Install dependencies per https://docs.ollama.com/docker - wrapped in error handling
|
||||||
echo -e "${YELLOW}#${RESET} Warning: Failed to add NVIDIA container toolkit GPG key. Continuing anyway...\\n"
|
if ! curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey 2>/dev/null | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg 2>/dev/null; then
|
||||||
return 0
|
echo -e "${YELLOW}#${RESET} Warning: Failed to add NVIDIA container toolkit GPG key. Continuing anyway...\\n"
|
||||||
fi
|
return 0
|
||||||
|
fi
|
||||||
if ! curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list 2>/dev/null \
|
|
||||||
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
|
if ! curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list 2>/dev/null \
|
||||||
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list > /dev/null 2>&1; then
|
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
|
||||||
echo -e "${YELLOW}#${RESET} Warning: Failed to add NVIDIA container toolkit repository. Continuing anyway...\\n"
|
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list > /dev/null 2>&1; then
|
||||||
return 0
|
echo -e "${YELLOW}#${RESET} Warning: Failed to add NVIDIA container toolkit repository. Continuing anyway...\\n"
|
||||||
fi
|
return 0
|
||||||
|
fi
|
||||||
if ! sudo apt-get update 2>/dev/null; then
|
|
||||||
echo -e "${YELLOW}#${RESET} Warning: Failed to update package list. Continuing anyway...\\n"
|
if ! sudo apt-get update 2>/dev/null; then
|
||||||
return 0
|
echo -e "${YELLOW}#${RESET} Warning: Failed to update package list. Continuing anyway...\\n"
|
||||||
fi
|
return 0
|
||||||
|
fi
|
||||||
if ! sudo apt-get install -y nvidia-container-toolkit 2>/dev/null; then
|
|
||||||
echo -e "${YELLOW}#${RESET} Warning: Failed to install NVIDIA container toolkit. Continuing anyway...\\n"
|
if ! sudo apt-get install -y nvidia-container-toolkit 2>/dev/null; then
|
||||||
return 0
|
echo -e "${YELLOW}#${RESET} Warning: Failed to install NVIDIA container toolkit. Continuing anyway...\\n"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
elif [[ "$OS_TYPE" == "fedora" ]]; then
|
||||||
|
if ! curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo 2>/dev/null | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo > /dev/null 2>&1; then
|
||||||
|
echo -e "${YELLOW}#${RESET} Warning: Failed to add NVIDIA container toolkit repository. Continuing anyway...\\n"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if ! sudo dnf install -y nvidia-container-toolkit 2>/dev/null; then
|
||||||
|
echo -e "${YELLOW}#${RESET} Warning: Failed to install NVIDIA container toolkit. Continuing anyway...\\n"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "${GREEN}#${RESET} NVIDIA container toolkit installed successfully.\\n"
|
echo -e "${GREEN}#${RESET} NVIDIA container toolkit installed successfully.\\n"
|
||||||
|
|
@ -552,7 +576,7 @@ success_message() {
|
||||||
###################################################################################################################################################################################################
|
###################################################################################################################################################################################################
|
||||||
|
|
||||||
# Pre-flight checks
|
# Pre-flight checks
|
||||||
check_is_debian_based
|
check_os_compatibility
|
||||||
check_is_bash
|
check_is_bash
|
||||||
check_has_sudo
|
check_has_sudo
|
||||||
ensure_dependencies_installed
|
ensure_dependencies_installed
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user