Installation
Your basic prerequisites for Infinity Tools installation.
1: Getting Started
This guide is designed for IT professionals who are familiar with Linux, servers, networking, and modern DevOps practices. If you're comfortable with Docker, containerization, and command-line administration, you're in the right place.
Prerequisites
Before installing Infinity Tools, ensure you have:
Required
- ✅ Linux Server - Any modern Linux distribution (Ubuntu, Debian, CentOS, Fedora, Arch, etc.)
- ✅ Root/Sudo Access - Full administrative privileges
- ✅ Internet Connection - Required for downloading dependencies and Docker images
- ✅ Minimum 2GB RAM - Recommended 4GB+ for running multiple services
- ✅ 20GB+ Storage - For applications and data (more recommended for production)
Technical Knowledge Assumed
This guide assumes you're familiar with:
- Linux command-line operations
- Docker and Docker Compose
- Basic networking concepts (ports, DNS, reverse proxies)
- SSL/TLS certificates and Let's Encrypt
- SSH connections and key management
- System administration basics
Server Setup Options
Option 1: Self-Hosted Server
If you have physical hardware or are running a virtualization platform:
Requirements:
- Physical server or VM with a supported Linux distribution
- Direct internet access or through a router/firewall
- Ability to configure DNS records (for SSL certificates)
Considerations:
- Network configuration and firewall rules
- Static IP address recommended
- Domain name for SSL certificates (optional but recommended)
Option 2: Cloud/VPS Provider
Most IT professionals will use a cloud provider. Popular options include:
Hetzner Cloud (Recommended)
- Excellent price-to-performance ratio
- EU-based with strong data protection
- Simple interface, great for automation
- Starting at ~€4/month for basic instances
DigitalOcean
- Developer-friendly interface
- Strong documentation and community
- Good performance and reliability
- Starting at $6/month for basic droplets
Other Options:
- AWS EC2, Google Cloud Platform, Azure (more complex but powerful)
- Linode, Vultr, Scaleway (good alternatives)
- Any provider that offers a Linux server with root access
Server Configuration
Regardless of your hosting choice, configure your server with:
- Fresh Linux Installation
- Clean install of your preferred distribution
- All security updates applied (
apt update && apt upgradeor equivalent)
- Non-Root User with Sudo
- Create a user account with sudo privileges
- SSH key authentication configured (password auth disabled recommended)
- Basic Firewall
- At minimum, allow SSH (port 22) and HTTP/HTTPS (ports 80/443)
- UFW or firewalld configured and enabled
- DNS Configuration (for SSL certificates)
- Domain name pointing to your server's IP address
- If using Traefik, ensure DNS A record is configured before installation
System Requirements
Minimum Specifications
- CPU: 1 core (2 cores recommended)
- RAM: 2GB (4GB+ recommended)
- Storage: 20GB SSD (more for production workloads)
- Network: Stable internet connection
Recommended for Production
- CPU: 2-4 cores
- RAM: 4-8GB
- Storage: 50GB+ SSD with backup storage
- Network: 100Mbps+ connection
Storage Considerations
Infinity Tools stores data in /opt/speedbits/ by default:
- Application data volumes
- Database files
- Configuration files
- SSL certificates
Ensure sufficient disk space and consider:
- Using separate volumes for databases
- Regular backup strategies
- Monitoring disk usage
What You'll Need Before Installation
1. Domain Name (Optional but Recommended)
For automatic SSL certificates via Let's Encrypt:
- A domain name you control
- Ability to create DNS A records
- DNS pointing to your server's IP address
Without a domain: You can still use Infinity Tools with self-signed certificates or IP-based access, but SSL won't be automatically trusted by browsers.
2. Email Address
For SSL certificate notifications and administrative purposes:
- Valid email address (for Let's Encrypt certificate warnings)
- Consider a dedicated email for server administration
3. SSH Access
Ensure you can:
- Connect to your server via SSH
- Use sudo/root privileges
- Transfer files if needed (SCP/SFTP)
Next Steps
Once your server is ready:
- SSH into your server
- Download or transfer Infinity Tools installer
- Run the installer (covered in the next article)
The installation process will:
- Check system readiness
- Install Docker if needed
- Set up Infinity Tools in
/opt/InfinityTools/ - Create the
infinity-toolscommand for easy access
Quick Reference
Installation Path: /opt/InfinityTools/
Command: sudo infinity-tools
Data Directory: /opt/speedbits/
Configuration: /opt/speedbits/_configuration/
Common Considerations
Firewall Ports
Default ports used by Infinity Tools:
- 80/443 - HTTP/HTTPS (Traefik)
- 22 - SSH
- Various - Application-specific ports (configurable)
Docker Resources
Docker will be installed if not present. Consider:
- Docker daemon configuration
- Storage driver selection
- Network configuration
- Resource limits
Backup Strategy
Infinity Tools includes Borgmatic for backups, but you should also:
- Plan for backup storage location
- Configure retention policies
- Test restore procedures
Troubleshooting
Common Issues
Port conflicts: Check for existing services using ports 80/443 or other expected ports.
Network issues: Ensure firewall allows necessary traffic and DNS is properly configured.
Ready to Install?
Once your server meets these prerequisites, proceed to the installation guide which will cover:
- Establishing SSH connection
- Getting Infinity Tools onto your server
- Running the installer
- Initial configuration
Next: Installation and Initial Setup Guide (Article 2)
2: Installing Infinity Tools
This chapter covers the complete installation process for Infinity Tools on your Linux server. We'll cover SSH connection, downloading the installer, and running the installation with technical details relevant to system administrators.
Prerequisites Recap
Ensure you have:
- ✅ Linux server with root/sudo access
- ✅ SSH client installed on your local machine
- ✅ Server IP address and credentials
- ✅ Internet connectivity on both local and server
Obtaining the Infinity Tools Installer
You'll receive the Infinity Tools installer as a file (typically named infinity-tools-installer.run) through your preferred delivery method.
File Transfer Methods
Method 1: SCP (Secure Copy) - Recommended
# From your local machine
scp infinity-tools-installer.run root@YOUR_SERVER_IP:/tmp/
Method 2: SFTP (Secure File Transfer Protocol)
# Connect via SFTP
sftp root@YOUR_SERVER_IP
# Upload file
put infinity-tools-installer.run /tmp/
# Exit SFTP
quit
Verify File Integrity
# Check file size
ls -lh infinity-tools-installer.run
# Verify file type
file infinity-tools-installer.run
# Check for corruption (if checksum available)
# sha256sum infinity-tools-installer.run
# Compare with provided checksum
# Verify file permissions
ls -la infinity-tools-installer.run
Installation Process
Pre-Installation Setup
Make the installer executable and verify permissions:
chmod +x infinity-tools-installer.run
ls -la infinity-tools-installer.run
Run Installation
Execute the installer with root privileges:
sudo ./infinity-tools-installer.run
Installation Process Details
The installer performs the following operations:
- Archive Extraction:
- Uses makeself to extract to temporary directory
- Creates
/tmp/selfgz[random]/InfinityTools/ - Contains all scripts, configurations, and dependencies
- File Installation:
- Copies files to
/opt/InfinityTools/ - Sets executable permissions on all
*.shfiles - Preserves directory structure and file ownership
- Copies files to
- Dependency Installation:
- Installs GUM (interactive menu tool) if not present
- Detects package manager (apt, dnf, pacman, apk)
- Adds repository and installs via appropriate package manager
- System Integration:
- Creates symbolic link:
/usr/local/bin/infinity-tools - Creates desktop entry (if GUI environment detected)
- Sets up proper file permissions and ownership
- Creates symbolic link:
Installation Output
Expected installation output:
╔════════════════════════════════════════════════════════════════════════════════╗
║ ║
║ ♾️ Infinity Tools - Linux Server Suite ║
║ ║
╚════════════════════════════════════════════════════════════════════════════════╝
📦 Installing Infinity Tools...
Source: /tmp/selfgz12345/InfinityTools
Target: /opt/InfinityTools
📋 Copying files...
🔧 Setting permissions...
📦 Checking dependencies...
Installing 'gum' (interactive menu tool)...
🔗 Creating command shortcut...
🖥️ Creating desktop shortcut...
╔════════════════════════════════════════════════════════════════════════════════╗
║ ✅ INSTALLATION SUCCESSFUL! ║
╚════════════════════════════════════════════════════════════════════════════════╝
First Run
Launch Infinity Tools
sudo bash infinity-tools
Initial System Check
On first run, Infinity Tools will:
- Load all helper modules from
StartHelper/ - Check system readiness and dependencies
- Initialize the interactive menu system
- Display service status and health information
Menu Navigation
- 📱 APPS - SOFTWARE: Application installation scripts
- 🔐 SECURITY & NETWORKING: Security hardening and network tools
- 🏗️ INFRASTRUCTURE & CORE SYSTEMS: Docker, Portainer, system tools
- 💾 BACKUP MANAGEMENT: Borgmatic, Rclone, backup configuration
- 📊 STATUS & HEALTH: System monitoring and health checks
Installation Architecture
Directory Structure
/opt/InfinityTools/
├── start-tools.sh # Main launcher script
├── install.sh # Installation script
├── Solutions/ # Application installers
│ ├── setup-traefik.sh
│ ├── setup-wordpress.sh
│ └── ...
├── Infrastructure/ # Core system tools
│ ├── install-docker.sh
│ ├── increase-security.sh
│ └── ...
├── StartHelper/ # Helper modules
│ ├── menu-builder.sh
│ ├── service-metadata.sh
│ └── ...
├── Uninstallations/ # Removal scripts
├── Fallback/ # Recovery tools
└── Repair/ # Maintenance utilities
Data Directory
Application data is stored in:
/opt/speedbits/
├── _configuration/ # Global configuration
├── traefik/ # Traefik data
├── wordpress/ # WordPress instances
├── vaultwarden/ # Vaultwarden data
└── ...
Configuration Management
Global Configuration
Infinity Tools uses a centralized configuration system:
# Main configuration file
/opt/speedbits/_configuration/config
# Port configuration
Infrastructure/ports-config.yml
# Service metadata
StartHelper/service-metadata.sh
Environment Variables
Key environment variables for customization:
# Debug mode
export INFINITY_DEBUG=true
# Custom installation path (not recommended)
export INFINITY_INSTALL_DIR=/custom/path
# Disable tracking
export INFINITY_NO_TRACKING=true
Security Considerations
File Permissions
# Check script permissions
find /opt/InfinityTools -name "*.sh" -ls
# Verify ownership
ls -la /opt/InfinityTools/
# Check for world-writable files
find /opt/InfinityTools -perm -002 -type f
Network Security
Infinity Tools implements:
- Network isolation between services
- SSL/TLS termination at Traefik
- Firewall configuration via UFW
- SSH hardening options
Troubleshooting
Common Issues
Installation fails with permission errors:
# Ensure running as root
sudo whoami
# Check file permissions
ls -la infinity-tools-installer.run
# Verify disk space
df -h /opt
GUM installation fails:
# Manual GUM installation
curl -sL https://github.com/charmbracelet/gum/releases/download/v0.13.0/gum_0.13.0_Linux_x86_64.tar.gz | tar -xz
sudo mv gum /usr/local/bin/
Command not found after installation:
# Check symbolic link
ls -la /usr/local/bin/infinity-tools
# Recreate if missing
sudo ln -sf /opt/InfinityTools/start-tools.sh /usr/local/bin/infinity-tools
# Update PATH if necessary
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Log Analysis
# Check installation logs
journalctl -u infinity-tools 2>/dev/null || echo "No systemd service"
# Check Docker logs
docker logs infinity-tools 2>/dev/null || echo "No Docker container"
# Check system logs
tail -f /var/log/syslog | grep -i infinity
Uninstallation
Complete Removal
# Remove Infinity Tools
sudo rm -rf /opt/InfinityTools/
# Remove symbolic link
sudo rm -f /usr/local/bin/infinity-tools
# Remove desktop entry
sudo rm -f /usr/share/applications/infinity-tools.desktop
# Remove data (WARNING: This deletes all application data)
sudo rm -rf /opt/speedbits/
Selective Cleanup
To remove only Infinity Tools while preserving data:
# Remove only the application
sudo rm -rf /opt/InfinityTools/
# Keep data directory
# /opt/speedbits/ remains intact
Next Steps
After successful installation:
Quick Reference
# Start Infinity Tools
sudo infinity-tools
# Manual execution
cd /opt/InfinityTools && sudo bash start-tools.sh
# Check status
sudo infinity-tools --status 2>/dev/null || echo "Status check not available"
# View logs
sudo journalctl -f -u infinity-tools 2>/dev/null || echo "No systemd service"
# Update (if available)
cd /opt/InfinityTools && git pull 2>/dev/null || echo "Not a git repository"
Installation Complete: Infinity Tools is now installed and ready for configuration. Proceed to the next chapter to begin deploying your infrastructure stack.
Next: Infrastructure Setup and Application Deployment (Chapter 3)