5q12's Indexer
PHP file browser with sorting, filtering, download, icons, caching, and configurable indexing.
Installation Methods
Choose your preferred installation method. Docker is recommended for most users.
1. Docker Installation (Recommended)
Quick start with Docker Compose:
services:
5q12-indexer:
image: 5q12/5q12-indexer:latest
container_name: 5q12-indexer
restart: unless-stopped
ports:
- "5012:5012" # Access the indexer on port 5012
environment:
- TZ=Etc/UTC # Set your timezone (optional)
volumes:
# Configuration directory - stores settings and cache
- /example_host_path/config:/config
# Files directory - mount your content here to index
- /example_host_path/files:/files
# Create the compose file above, then start
docker-compose up -d
Access at:
http://localhost:5012
Important: Replace
/example_host_path/
with your actual host directories. The
/config
volume persists settings and cache, while
/files
contains the content you want to browse.
2. Automated Script Installation
For Debian/Ubuntu systems with automatic dependency management:
# Download installer
wget https://ccls.icu/src/repositories/5q12-indexer/main/install.sh/ -O install.sh
chmod +x install.sh
# Install to web directory
sudo ./install.sh install /var/www/html/files
# Update later
sudo 5q12-index update
Access at:
http://your-server:5012
3. Manual Installation
For custom setups or other operating systems:
# Download indexer repository
wget https://ccls.icu/src/repositories/5q12-indexer/main/?download=archive -O 5q12-indexer.zip
# Extract content
unzip 5q12-indexer.zip
# Move to desired location
sudo mv main/* main/.* /var/www/html/ 2>/dev/null
# Configure web server (Nginx/Apache)
# Create configuration manually (see Configuration section)
Requirements:
- PHP 8.3+
- Web server (Nginx/Apache)
- SQLite3 extension (recommended)
- ZipArchive extension (for downloads)
Features
- File browsing with sorting by name, size, date, type
- Download support for files and folders (ZIP)
- File viewing in browser for supported types
- Icon system with file type recognition
- Caching (SQLite/JSON) for performance
- Security controls with path filtering
- Responsive design for mobile devices
- No JavaScript required
- Fully offline operation - no external dependencies
Configuration
.indexer_files/config.json
Key settings:
{
"main": {
"cache_type": "sqlite", // "sqlite" or "json"
"disable_file_downloads": false, // Enable/disable downloads
"disable_folder_downloads": false,
"index_hidden": false, // Show hidden files
"deny_list": "admin, logs, .git", // Exclude paths
}
}
File Structure
installation-directory/
├── index.php # Main indexer file
├── .indexer_files/ # Configuration and cache
│ ├── config.json # Settings file
│ ├── index_cache/ # Performance cache
│ ├── zip_cache/ # Temporary downloads
│ └── icons/ # Local icon files
└── files/ # Your content directory
Documentation
Security Features
- Path traversal protection
- Configurable file access controls
- Hidden file filtering
- Download restrictions
- Deny/allow lists for directories and files
Browser Support
Works with all modern browsers including mobile devices. No JavaScript required.
Download
Latest Release:
# Download as archive
wget https://ccls.icu/src/repositories/5q12-indexer/main/?download=archive -O 5q12-indexer.zip
unzip 5q12-indexer.zip
# Or download individual file
wget https://ccls.icu/src/repositories/5q12-indexer/main/index.php/ -O index.php
Repository: https://ccls.icu/src/repositories/5q12-indexer/