Secure
README.md
← Back to Folder Raw Code Markdown
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
# 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:**

```yaml
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
```

```bash
# 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:**

```bash
# 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:**

```bash
# 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:

```json
{
  "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


- **[Installation Guide](docs/installation.md)** - Detailed setup procedures

- **[Configuration Guide](docs/configuration.md)** - Settings and customization

- **[User Guide](docs/user-guide.md)** - Interface usage

- **[Security Guide](docs/security.md)** - Hardening and access controls

- **[Troubleshooting Guide](docs/troubleshooting.md)** - Common issues

## 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:**
```bash
# 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/