Owncloud Infinite Scale (OCIS) can be used as a file cloud and it is very easy to integrate full text search using a "tika" server. See also the Owncloud clients.
docker-compose.yml
version: "3.3"
volumes:
traefik:
ocis:
ocis-config:
services:
traefik:
image: "traefik:v2.10.4"
container_name: "traefik"
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
# - "--certificatesresolvers.myresolver.acme.email=<email>"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
# - "--log.level=DEBUG"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
ports:
- "443:443"
volumes:
- "traefik:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
ocis:
image: owncloud/ocis:4.0.0
container_name: ocis
restart: unless-stopped
entrypoint:
- /bin/sh
command: ["-c", "ocis init || true; ocis server"]
environment:
- PROXY_TLS=false
- OCIS_INSECURE=false
- OCIS_URL=https://<subdomain>
- OCIS_LOG_LEVEL=info
- SEARCH_EXTRACTOR_TYPE=tika
- SEARCH_EXTRACTOR_TIKA_TIKA_URL=http://tika:9998
- FRONTEND_FULL_TEXT_SEARCH_ENABLED=true
volumes:
- "ocis-config:/etc/ocis"
- "ocis:/var/lib/ocis"
labels:
- "traefik.enable=true"
- "traefik.http.routers.ocis.rule=Host(`<subdomain>`)"
- "traefik.http.routers.ocis.entrypoints=websecure"
- "traefik.http.routers.ocis.tls.certresolver=myresolver"
- "traefik.http.services.ocis.loadbalancer.server.port=9200"
tika:
image: apache/tika:2.9.0.0
container_name: tika
restart: unless-stopped
volumes:
traefik:
ocis:
ocis-config:
services:
traefik:
image: "traefik:v2.10.4"
container_name: "traefik"
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
# - "--certificatesresolvers.myresolver.acme.email=<email>"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
# - "--log.level=DEBUG"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
ports:
- "443:443"
volumes:
- "traefik:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
ocis:
image: owncloud/ocis:4.0.0
container_name: ocis
restart: unless-stopped
entrypoint:
- /bin/sh
command: ["-c", "ocis init || true; ocis server"]
environment:
- PROXY_TLS=false
- OCIS_INSECURE=false
- OCIS_URL=https://<subdomain>
- OCIS_LOG_LEVEL=info
- SEARCH_EXTRACTOR_TYPE=tika
- SEARCH_EXTRACTOR_TIKA_TIKA_URL=http://tika:9998
- FRONTEND_FULL_TEXT_SEARCH_ENABLED=true
volumes:
- "ocis-config:/etc/ocis"
- "ocis:/var/lib/ocis"
labels:
- "traefik.enable=true"
- "traefik.http.routers.ocis.rule=Host(`<subdomain>`)"
- "traefik.http.routers.ocis.entrypoints=websecure"
- "traefik.http.routers.ocis.tls.certresolver=myresolver"
- "traefik.http.services.ocis.loadbalancer.server.port=9200"
tika:
image: apache/tika:2.9.0.0
container_name: tika
restart: unless-stopped
- Obtain the admin password via docker logs ocis 2>&1 | grep password.
- Go to https://<subdomain> and login as "admin" using the password you have just received.
For example, to test the full-text search feature, simply upload a file called "test.txt" containing "hello". Now search for "hello" in the search bar at the top. The result should be an empty list, as the default search only looks for file names. But you can enable "Search in content only". Now "text.txt" should be found.