Automated Script Installation
Overview
The automated installation script is the easiest way to install 5q12's Indexer. It handles all dependencies, configuration, and setup automatically.
Features
- Automatic dependency installation - Installs Nginx, PHP, and required extensions
- Automatic configuration updates - Automaticly adds missing fields to config.json
- Conflict resolution - Stops and disables conflicting web servers (Apache2, Lighttpd)
- Nginx configuration - Creates optimized configuration for the indexer
- PHP optimization - Installs and configures PHP-FPM with required extensions
- System integration - Sets up system-wide command access
- Update management - Built-in update checking and upgrading
- Configuration creation - Creates basic configuration files
Compatibility
Tested and Supported:
- Ubuntu Server 20.04 LTS
- Ubuntu Server 22.04 LTS
- Ubuntu Server 24.04 LTS
May Work (Untested):
- Other Debian-based distributions
- Arch Linux (with manual package management adjustments)
- Other systemd-based distributions
Not Supported:
- CentOS/RHEL (different package manager)
- Alpine Linux (different init system)
- Windows/macOS
Installation
Step 1: Download the Script
# Download the installation script
wget https://ccls.icu/src/repositories/5q12-indexer/main/install.sh/ -O install.sh
# Make it executable
chmod +x install.sh
Step 2: Run Installation
# Install to a web directory
sudo ./install.sh install /var/www/html/files
# Or install to a relative path
sudo ./install.sh install files
# Or install to home directory
sudo ./install.sh install ~/public_html/files
Installation Path Examples:
/var/www/html/files
- Standard web server location
/home/user/www/files
- User home directory
./files
- Current directory (converts to absolute path)
Step 3: Access Your Indexer
After installation, your indexer will be available at:
http://your-server-ip:5012
Or if running locally:
http://localhost:5012
System Requirements
Required
- Operating System: Debian-based Linux distribution
- Memory: 512MB RAM minimum (1GB+ recommended)
- Disk Space: 100MB free space
- Network: Internet connection for package downloads
- Privileges: sudo/root access
Automatically Installed
- Nginx (latest stable)
- PHP 8.3 with PHP-FPM
- PHP Extensions: json, fileinfo, mbstring, sqlite3, zip, curl, openssl
Command Reference
Once installed, you can use the
5q12-index
command system-wide:
Installation
# Install to specified directory
sudo 5q12-index install /path/to/directory
Update Management
# Check for updates
5q12-index version
# Update to latest version
sudo 5q12-index update
Help
# Show help information
5q12-index help
Installation Process Details
What the Script Does
- System Check
- Verifies OS compatibility
- Checks for existing installations
- Validates system requirements
- Dependency Management
- Updates package lists
- Installs Nginx and PHP-FPM
- Removes conflicting web servers
- Installs required PHP extensions
- Configuration
- Creates optimized Nginx configuration
- Sets up PHP-FPM integration
- Configures proper file permissions
- Creates system directories
- Indexer Setup
- Downloads latest index.php from repository
- Downloads all ".indexer_files" files
- Sets proper ownership (www-data)
- Initializes cache directories
- Creates management symlinks
- Service Management
- Enables and starts Nginx
- Enables and starts PHP-FPM
- Tests configuration validity
- Reloads services
Generated Files and Directories
System Configuration:
/etc/5q12-indexer/indexer.conf
- Installation configuration
/etc/5q12-indexer/backups/
- Backup directory
/etc/nginx/sites-available/5q12-indexer.conf
- Nginx configuration
/usr/local/bin/5q12-index
- System command symlink
Indexer Files:
{install-path}/index.php
- Main indexer file
{install-path}/.indexer_files/
- Configuration and cache directories
{install-path}/.indexer_files/config.json
- Basic configuration
Troubleshooting
Permission Issues
# Fix ownership if needed
sudo chown -R www-data:www-data /path/to/installation
# Fix permissions
sudo chmod 755 /path/to/installation
sudo chmod 644 /path/to/installation/index.php
Service Issues
# Check service status
sudo systemctl status nginx
sudo systemctl status php8.3-fpm
# Restart services
sudo systemctl restart nginx
sudo systemctl restart php8.3-fpm
# Check nginx configuration
sudo nginx -t
Network Issues
# Check if port 5012 is open
sudo netstat -tlnp | grep :5012
# Check firewall (if applicable)
sudo ufw status
sudo ufw allow 5012
PHP Extension Issues
# Check installed extensions
php -m | grep -E 'json|sqlite3|zip|curl'
# Install missing extensions manually
sudo apt install php8.3-sqlite3 php8.3-zip php8.3-curl php8.3-mbstring
Configuration Issues
# Check configuration exists
ls -la /path/to/installation/.indexer_files/config.json
# Validate configuration
python -m json.tool /path/to/installation/.indexer_files/config.json
# Recreate configuration if needed
sudo 5q12-index create-config /path/to/installation
Common Error Solutions
"Port 5012 already in use"
- Check for other services using the port
- Modify nginx configuration to use different port
"Permission denied"
- Ensure running with sudo
- Check directory permissions
- Verify www-data user exists
"Package not found"
- Update package lists:
sudo apt update
- Check internet connection
- Verify distribution compatibility
Manual Cleanup
If you need to completely remove the installation:
# Remove nginx configuration
sudo rm -f /etc/nginx/sites-available/5q12-indexer.conf
sudo rm -f /etc/nginx/sites-enabled/5q12-indexer.conf
# Remove system files
sudo rm -rf /etc/5q12-indexer
sudo rm -f /usr/local/bin/5q12-index
# Remove indexer files (replace with your path)
sudo rm -rf /path/to/your/installation
# Reload nginx
sudo systemctl reload nginx
Advanced Configuration
Custom Port
Edit
/etc/nginx/sites-available/5q12-indexer.conf
and change:
listen 5012;
To your desired port, then reload nginx:
sudo systemctl reload nginx
SSL/HTTPS Setup
Add SSL certificate configuration to your nginx config:
listen 443 ssl;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/private.key;
Custom PHP Settings
Edit
/etc/php/8.3/fpm/php.ini
for global changes or create pool-specific configuration.
Next Steps
After successful installation:
- Review the configuration - Edit
.indexer_files/config.json
as needed
- Secure your installation - See Security Guide
- Customize settings - See Configuration Guide
- Set up backups - Regular backups of your files and configuration
Related Documentation: