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. It is recommended that you use this setup in conjunction with the Owncloud client to synchronize data between the cloud and your PC.
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-full
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-full
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. However, you can enable "Search in content only", which uses full-text search, so "text.txt" should now be found.