{"id":21994408,"url":"https://github.com/codelibs/docker-fess","last_synced_at":"2026-05-02T11:01:36.730Z","repository":{"id":10476473,"uuid":"56420975","full_name":"codelibs/docker-fess","owner":"codelibs","description":"Docker files for Fess","archived":false,"fork":false,"pushed_at":"2024-10-17T12:15:41.000Z","size":266,"stargazers_count":92,"open_issues_count":4,"forks_count":43,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-19T16:29:21.707Z","etag":null,"topics":["docker","docker-image","fess"],"latest_commit_sha":null,"homepage":"https://github.com/orgs/codelibs/packages/container/package/fess","language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codelibs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-17T05:42:58.000Z","updated_at":"2024-10-17T12:15:45.000Z","dependencies_parsed_at":"2023-02-15T16:01:35.524Z","dependency_job_id":"43d7fdd8-4728-44db-925f-97c3d52d64d1","html_url":"https://github.com/codelibs/docker-fess","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelibs%2Fdocker-fess","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelibs%2Fdocker-fess/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelibs%2Fdocker-fess/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelibs%2Fdocker-fess/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codelibs","download_url":"https://codeload.github.com/codelibs/docker-fess/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294541,"owners_count":20915340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image","fess"],"created_at":"2024-11-29T21:08:49.972Z","updated_at":"2026-05-02T11:01:36.723Z","avatar_url":"https://github.com/codelibs.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker for Fess\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/codelibs/docker-fess/blob/master/LICENSE)\n\nThe official Docker repository for Fess - a powerful, easily deployable Enterprise Search Server built on OpenSearch.\n\n## What is Fess?\n\nFess is an enterprise search server that makes it easy to deploy powerful search capabilities across your organization. Built on OpenSearch, Fess provides:\n\n- **All-in-One Solution**: No OpenSearch expertise required\n- **Web-based Administration**: Configure everything through an intuitive GUI  \n- **Multi-format Support**: Index MS Office, PDF, ZIP and many other file formats\n- **Flexible Crawling**: Web pages, file systems, databases, and more\n- **Enterprise Ready**: User authentication, access control, and scalability\n\nFor more information, visit the [official Fess documentation](http://fess.codelibs.org/).\n\n## Key Features\n\n- 🔍 **Powerful Search Engine** - Full-text search with advanced filtering and faceted navigation\n- 🕷️ **Built-in Crawlers** - Web, file system, database, and social media crawlers\n- 📄 **Document Support** - MS Office, PDF, HTML, XML, CSV, and 40+ file formats\n- 🔐 **Security \u0026 Access Control** - LDAP, Active Directory, and SSO integration\n- 🎨 **Customizable UI** - Modern responsive interface with theming support\n- ⚡ **High Performance** - Distributed architecture with horizontal scaling\n- 🐳 **Docker Ready** - Multi-platform containers for easy deployment\n\n## Tech Stack\n\n- **Search Engine**: OpenSearch 3.x\n- **Application Server**: Apache Tomcat (embedded)\n- **Runtime**: Java 21 (Eclipse Temurin)\n- **Base Images**: Alpine Linux (production), Amazon Linux 2023, Ubuntu Noble\n- **Containerization**: Docker \u0026 Docker Compose\n- **Optional Services**: OpenSearch Dashboards, MinIO object storage\n\n## Quick Start\n\n### Prerequisites\n\n**System Requirements:**\n- Docker and Docker Compose installed\n- At least 4GB RAM available\n- For OpenSearch: `vm.max_map_count` \u003e= 262144\n\n**Set vm.max_map_count (Linux/WSL):**\n```bash\n# Temporary\nsudo sysctl -w vm.max_map_count=262144\n\n# Permanent\necho 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf\n```\n\n### Standard Deployment\n\n```bash\n# Clone the repository\ngit clone https://github.com/codelibs/docker-fess.git\ncd docker-fess\n\n# Start Fess with OpenSearch\ndocker compose -f compose.yaml -f compose-opensearch3.yaml up -d\n\n# Access Fess web interface\nopen http://localhost:8080\n```\n\n### With OpenSearch Dashboards\n\n```bash\n# Start with visualization dashboard\ndocker compose -f compose.yaml -f compose-opensearch3.yaml -f compose-dashboards3.yaml up -d\n\n# Access services\nopen http://localhost:8080  # Fess\nopen http://localhost:5601  # OpenSearch Dashboards\n```\n\n### With Object Storage (MinIO)\n\n```bash\n# Start with MinIO for file storage\ndocker compose -f compose.yaml -f compose-opensearch3.yaml -f compose-minio.yaml up -d\n\n# Access services\nopen http://localhost:8080  # Fess\nopen http://localhost:9001  # MinIO Console\n```\n\n## Usage\n\n### Basic Search Setup\n\n1. **Access Fess Admin**: Navigate to http://localhost:8080/admin\n   - Default credentials: `admin` / `admin`\n\n2. **Create a Web Crawler**:\n   - Go to Crawler \u003e Web\n   - Add URL: `https://example.com/*`\n   - Start crawling from System \u003e Scheduler\n\n3. **Configure Search**:\n   - Set crawl schedules, filters, and permissions\n   - Monitor crawl status and logs\n\n### Environment Variables\n\nConfigure Fess behavior through environment variables:\n\n```yaml\nenvironment:\n  # Search backend configuration\n  - SEARCH_ENGINE_HTTP_URL=http://search01:9200\n  \n  # Dictionary and data paths\n  - FESS_DICTIONARY_PATH=/usr/share/opensearch/config/dictionary/\n  \n  # Performance tuning\n  - FESS_HEAP_SIZE=1g\n  - FESS_JAVA_OPTS=-server -Xms1g -Xmx1g\n  \n  # Plugin installation\n  - FESS_PLUGINS=fess-webapp-semantic-search:15.5.0 fess-ds-wikipedia:15.5.0\n```\n\n### Multi-Instance Deployment\n\nRun multiple Fess instances sharing one OpenSearch cluster:\n\n```bash\ncd compose/multi-instance\n\n# Start OpenSearch + 2 Fess instances\ndocker compose -f compose.yaml -f compose-fess01.yaml -f compose-fess02.yaml up -d\n\n# Access instances\nopen http://localhost:8080  # Fess instance 1\nopen http://localhost:8081  # Fess instance 2\n```\n\nEach instance uses separate indices for data isolation.\n\n### Service URLs\n\n| Service | URL | Purpose |\n|---------|-----|---------|\n| Fess Web UI | http://localhost:8080 | Main search interface |\n| Fess Admin | http://localhost:8080/admin | Administration panel |\n| OpenSearch API | http://localhost:9200 | Direct search engine access |\n| OpenSearch Dashboards | http://localhost:5601 | Data visualization |\n| MinIO Console | http://localhost:9001 | Object storage management |\n\n## Development\n\n### Building Images\n\n**Fess Application:**\n```bash\n# Build specific version\ndocker build --rm -t ghcr.io/codelibs/fess:15.5.1 ./fess/15.5/\n\n# Build with custom args\ndocker build --build-arg FESS_VERSION=15.5.1 -t my-fess ./fess/15.5/\n```\n\n**OpenSearch with Fess Plugins:**\n```bash\n# Build OpenSearch image\ndocker build --rm -t ghcr.io/codelibs/fess-opensearch:3.6.0 ./opensearch/3.6/\n```\n\n### Project Structure\n\n```\ndocker-fess/\n├── fess/                    # Fess Docker images\n│   ├── 15.6/               # Latest stable version\n│   ├── 15.5/               # Previous versions\n│   └── snapshot/           # Development builds\n├── opensearch/             # OpenSearch images with Fess plugins\n│   ├── 3.6/               # Latest OpenSearch\n│   └── 3.5/               # Previous versions\n├── elasticsearch/          # Elasticsearch images (legacy)\n├── compose/                # Docker Compose configurations\n│   ├── compose.yaml        # Base Fess service\n│   ├── compose-opensearch3.yaml  # OpenSearch 3.x\n│   ├── compose-dashboards3.yaml  # OpenSearch Dashboards\n│   ├── compose-minio.yaml  # MinIO object storage\n│   └── multi-instance/     # Multi-instance setup\n└── archive/                # Archived older versions\n```\n\n### Configuration Files\n\n**Key Configuration Locations:**\n- `/etc/fess/` - Main configuration directory\n- `/opt/fess/` - Custom configuration overrides  \n- `/var/log/fess/` - Application logs\n- `/var/lib/fess/` - Variable data storage\n\n**Custom Index Configuration:**\n```bash\n# Configure separate indices for multi-instance\nFESS_JAVA_OPTS=\"-Dfess.config.index.document.search.index=myapp.search \\\n                -Dfess.config.index.document.update.index=myapp.update \\\n                -Dfess.config.index.config.index=myapp_config\"\n```\n\n### Version Matrix\n\n| Fess Version | OpenSearch | Elasticsearch | Java | Base Image |\n|--------------|------------|---------------|------|------------|\n| 15.6.0 | 3.6.0 | - | 21 | Alpine/Ubuntu Noble/Amazon Linux 2023 |\n| 15.5.1 | 3.5.0 | - | 21 | Alpine/Ubuntu Noble/Amazon Linux 2023 |\n| 15.4.0 | 3.4.0 | - | 21 | Alpine/Ubuntu Noble/Amazon Linux 2023 |\n| 15.3.0 | 3.3.0 | - | 21 | Alpine/Ubuntu Noble/Amazon Linux 2023 |\n| 15.2.0 | 3.2.0 | - | 21 | Alpine/Ubuntu Noble/Amazon Linux 2023 |\n| 15.1.0 | 3.1.0 | - | 21 | Alpine/Ubuntu Noble/Amazon Linux 2023 |\n| 15.0.0 | 2.15 | 8.10+ | 17 | Alpine |\n| 14.x | 2.x | 7.17/8.x | 11 | Alpine |\n\n## Troubleshooting\n\n### Common Issues\n\n**Container fails to start:**\n```bash\n# Check vm.max_map_count\ncat /proc/sys/vm/max_map_count  # Should be \u003e= 262144\n\n# Check container logs\ndocker compose logs fess01\ndocker compose logs search01\n```\n\n**Out of memory errors:**\n```bash\n# Increase heap size\nexport FESS_HEAP_SIZE=2g\ndocker compose up -d\n```\n\n**Search not working:**\n```bash\n# Verify OpenSearch connection\ncurl http://localhost:9200/_cluster/health\n\n# Check Fess connectivity\ndocker compose exec fess01 curl http://search01:9200\n```\n\n**Data persistence:**\n```bash\n# List volumes\ndocker volume ls | grep compose\n\n# Remove volumes (WARNING: deletes data)\ndocker volume rm compose_search01_data compose_search01_dictionary\n```\n\n### Performance Tuning\n\n**For production deployments:**\n\n1. **Memory allocation:**\n   - Fess: 2-4GB heap (`FESS_HEAP_SIZE=2g`)\n   - OpenSearch: 50% of available RAM (`OPENSEARCH_JAVA_OPTS=-Xms2g -Xmx2g`)\n\n2. **Storage optimization:**\n   - Use SSD storage for OpenSearch data volumes\n   - Separate OS disk from data volumes\n\n3. **Network configuration:**\n   - Use dedicated network for container communication\n   - Configure proper DNS resolution\n\n## Advanced Usage\n\n### Custom Plugins\n\nInstall additional Fess plugins:\n\n```yaml\nenvironment:\n  - FESS_PLUGINS=fess-webapp-semantic-search:15.5.0 fess-ds-wikipedia:15.5.0\n```\n\n### SSL/TLS Configuration\n\nConfigure HTTPS for production:\n\n```bash\n# Mount certificate volumes\nvolumes:\n  - ./certs/keystore.jks:/usr/share/fess/keystore.jks:ro\n  \nenvironment:\n  - FESS_JAVA_OPTS=-Dserver.ssl.key-store=/usr/share/fess/keystore.jks\n```\n\n### Backup and Recovery\n\n```bash\n# Backup OpenSearch data\ndocker run --rm -v compose_search01_data:/data -v $(pwd):/backup alpine tar czf /backup/opensearch-backup.tar.gz /data\n\n# Restore OpenSearch data\ndocker run --rm -v compose_search01_data:/data -v $(pwd):/backup alpine tar xzf /backup/opensearch-backup.tar.gz -C /\n```\n\n## License\n\n[Apache License 2.0](LICENSE)\n\nCopyright 2016-2026 CodeLibs Project and the Others.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelibs%2Fdocker-fess","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelibs%2Fdocker-fess","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelibs%2Fdocker-fess/lists"}