Configuration Guide
Table of Contents
Overview
5q12's Indexer uses a JSON-based configuration system that controls all aspects of behavior, from file display to system performance. The configuration file is located at
.indexer_files/config.json
and must be created manually.
Quick Configuration
Enable high performance:
{"main": {"cache_type": "sqlite"}}
Disable downloads:
{"main": {"disable_file_downloads": true, "disable_folder_downloads": true}}
Show hidden files:
{"main": {"index_hidden": true}}
Configuration File Structure
{
"version": "1.0",
"main": {
// Core system settings
},
"exclusions": {
// Controls which file types are indexed (shown in listings)
},
"viewable_files": {
// Controls which files can be viewed vs downloaded
}
}
Main Settings
Performance Settings
Cache Type
{
"main": {
"cache_type": "sqlite" // "sqlite" or "json"
}
}
Option | Performance | Compatibility | Use Case |
---|
sqlite | High (5-10x faster) | Requires SQLite3 extension | Production, large directories |
json | Standard | Universal | Simple setups, small directories |
Icon Type
{
"main": {
"icon_type": "default" // "default", "minimal", "emoji", "disabled"
}
}
Option | Description | Use Case |
---|
default | Full icon library with type-specific icons | Standard usage, visual file identification |
minimal | Generic file/folder icons only | Bandwidth-limited environments |
emoji | Unicode emoji icons (📄/📁) | No external resources, universal compatibility |
disabled | No icons displayed | Text-only interfaces, accessibility |
Icon behavior:
default
- Uses full icon library (.indexer_files/icons/
)
minimal
- Shows only folder.png
and non-descript-default-file.png
emoji
- Uses Unicode file (📄) and folder (📁) symbols
disabled
- Removes icon column entirely, adjusts layout
All icons are stored and served locally from
.indexer_files/icons/
Download Controls
File Downloads
{
"main": {
"disable_file_downloads": true, // Removes the Download options from file action menus
"disable_folder_downloads": true // Removes the Download options from folder action menus
}
}
Use cases for disabling:
- Read-only file browser
- Security compliance
- Bandwidth conservation
- Content protection
Display Controls
Hidden Files
{
"main": {
"index_hidden": true // Show files starting with "."
}
}
Hidden items include:
.htaccess
, .env
, .gitignore
.git/
, .vscode/
, .DS_Store
- Configuration and system files
Index All (⚠️ Use with caution)
{
"main": {
"index_all": false // Override all filtering when true
}
}
When enabled, shows:
- All security-sensitive files
- All file types regardless of other settings
File Type Controls
Exclusions (Indexing)
Controls which file types appear in directory listings.
Common Programming Languages
{
"exclusions": {
"index_php": false, // Hide PHP files
"index_js": true, // Show JavaScript files
"index_py": true, // Show Python files
"index_java": true, // Show Java files
"index_cpp": true // Show C++ files
}
}
Documents and Media
{
"exclusions": {
"index_txt": true, // Show text files
"index_pdf": true, // Show PDF documents
"index_docx": true, // Show Word documents
"index_png": true, // Show PNG images
"index_mp4": true // Show MP4 videos
}
}
Security-Sensitive Files (Default: hidden)
{
"exclusions": {
"index_key": false, // Hide cryptographic keys
"index_secret": false, // Hide secret files
"index_passwd": false, // Hide password files
"index_authorized_keys": false // Hide SSH keys
}
}
Viewable Files
Controls which files open in browser vs download.
Text and Code Files
{
"viewable_files": {
"view_php": true, // View PHP source
"view_js": true, // View JavaScript
"view_json": true, // View JSON files
"view_md": true // View Markdown
}
}
Media Files
{
"viewable_files": {
"view_png": true, // View images in browser
"view_mp4": true, // View videos in browser
"view_pdf": true // View PDFs in browser
}
}
Security Files (Default: download only)
{
"viewable_files": {
"view_exe": false, // Download executables
"view_key": false, // Download keys
"view_cert": false // Download certificates
}
}
Advanced Filtering
Deny List
Exclude specific files, folders, or patterns.
Basic Examples
{
"main": {
"deny_list": "logs, temp, admin, .git"
}
}
Pattern Examples
{
"main": {
"deny_list": "uploads/.exe*, config/.env*, cache*, private/*"
}
}
Pattern Types:
folder
- Exact folder exclusion
folder*
- Folder and all contents
folder/*
- Folder and subfolders
folder/.ext*
- All files with extension in folder
file.ext
- Specific file
Allow List
Force inclusion, overriding other exclusions.
Override Examples
{
"main": {
"allow_list": "public*, docs/readme.txt, admin/debug.php"
}
}
Priority System
- Conflicting rules (same path in both lists) → Both ignored
- Allow list → Takes priority over deny list
- Extension settings → Apply as defaults
- Fallback → Show by default
Configuration Examples
High-Security Environment
{
"main": {
"access_url": "https://example.net",
"cache_type": "sqlite",
"icon_type": "minimal",
"disable_file_downloads": true,
"disable_folder_downloads": true,
"index_hidden": false,
"deny_list": "logs, .git, .env*, config/secrets*, admin"
},
"exclusions": {
"index_php": false,
"index_key": false,
"index_secret": false
},
"viewable_files": {
"view_php": false,
"view_key": false
}
}
Development Environment
{
"main": {
"cache_type": "sqlite",
"icon_type": "default",
"index_hidden": true,
"index_all": true,
"allow_list": "src*, docs*, config/dev.json"
},
"exclusions": {
"index_php": true,
"index_js": true,
"index_py": true
},
"viewable_files": {
"view_php": true,
"view_js": true,
"view_py": true
}
}
Public File Server
{
"main": {
"cache_type": "sqlite",
"icon_type": "emoji",
"deny_list": "admin, private, .htaccess, config"
},
"exclusions": {
"index_php": false,
"index_key": false
},
"viewable_files": {
"view_pdf": true,
"view_png": true,
"view_mp4": true,
"view_php": false
}
}
Media Server
{
"main": {
"cache_type": "sqlite",
"icon_type": "default",
"deny_list": "system, config, logs"
},
"exclusions": {
"index_png": true,
"index_jpg": true,
"index_mp4": true,
"index_mp3": true,
"index_pdf": true,
"index_php": false
},
"viewable_files": {
"view_png": true,
"view_jpg": true,
"view_mp4": true,
"view_mp3": true,
"view_pdf": true
}
}
Troubleshooting Configuration
Configuration Not Applied
- Check JSON syntax
python -m json.tool .indexer_files/config.json
- Clear cache
rm -rf .indexer_files/index_cache/*
- Verify file permissions
ls -la .indexer_files/config.json
Performance Issues
- Enable SQLite caching
{"main": {"cache_type": "sqlite"}}
- Simplify deny/allow patterns
- Review extension settings
Security Concerns
- Verify sensitive files are excluded
- Check deny list effectiveness
- Review download permissions
Related Documentation: