feat: add fulltextsearch using elasticsearch (#36)
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
Reviewed-on: #36 Co-authored-by: p4u1 <p4u1_f4u1@riseup.net> Co-committed-by: p4u1 <p4u1_f4u1@riseup.net>
This commit is contained in:
parent
eefb14e150
commit
99514b5991
|
@ -62,3 +62,6 @@ DEFAULT_QUOTA="10 GB"
|
|||
# AUTHENTIK_DOMAIN=authentik.example.com
|
||||
# SECRET_AUTHENTIK_SECRET_VERSION=v1
|
||||
# SECRET_AUTHENTIK_ID_VERSION=v1
|
||||
|
||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.fulltextsearch.yml"
|
||||
#SECRET_ELASTICSEARCH_PASSWORD_VERSION=v1
|
||||
|
|
38
README.md
38
README.md
|
@ -244,3 +244,41 @@ docker exec -u www-data $(docker ps -f name=foo_com_app -q) ./occ preview:pre-ge
|
|||
```
|
||||
|
||||
This app will improve performance of image browsing at the cost of storage space.
|
||||
|
||||
## Fulltextsearch using elasticsearch
|
||||
|
||||
1. Uncomment the following lines in your env file:
|
||||
```
|
||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.fulltextsearch.yml"
|
||||
#SECRET_ELASTICSEARCH_PASSWORD_VERSION=v1
|
||||
```
|
||||
|
||||
2. Generate the secret for elasticsearch:
|
||||
```bash
|
||||
abra app secret generate <domain> elasticsearch_password v1
|
||||
```
|
||||
|
||||
3. Deploy your app:
|
||||
```bash
|
||||
abra app deploy <domain>
|
||||
```
|
||||
|
||||
4. Install the apps and configure them:
|
||||
```
|
||||
abra app cmd <domain> app install_fulltextsearch
|
||||
```
|
||||
|
||||
5. You might need to configure the files_fulltextsearch app. run this command to check its settings:
|
||||
```
|
||||
abra app cmd <domain> app run_occ '"config:list files_fulltextsearch"
|
||||
```
|
||||
|
||||
6. You can check if the nextcloud can connect to elasticsearch:
|
||||
```
|
||||
abra app cmd <domain> app run_occ '"fulltextsearch:test"'
|
||||
```
|
||||
|
||||
And you can populate the index manually and check if any errors occur:
|
||||
```
|
||||
abra app cmd <domain> app run_occ '"fulltextsearch:index"'
|
||||
```
|
||||
|
|
10
abra.sh
10
abra.sh
|
@ -70,6 +70,16 @@ install_collabora() {
|
|||
set_app_config richdocuments wopi_url "$COLLABORA_URL"
|
||||
}
|
||||
|
||||
install_fulltextsearch() {
|
||||
install_apps fulltextsearch
|
||||
install_apps fulltextsearch_elasticsearch
|
||||
install_apps files_fulltextsearch
|
||||
set_app_config fulltextsearch search_platform "OCA\\FullTextSearch_Elasticsearch\\Platform\\ElasticSearchPlatform"
|
||||
set_app_config fulltextsearch_elasticsearch elastic_host "http://elastic:$(cat /run/secrets/elasticsearch_password)@elasticsearch:9200/"
|
||||
set_app_config fulltextsearch_elasticsearch elastic_index "nextcloud"
|
||||
set_app_config files_fulltextsearch files_local "1"
|
||||
}
|
||||
|
||||
set_default_quota() {
|
||||
set_app_config files default_quota "$DEFAULT_QUOTA"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
version: "3.8"
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
image: "docker.elastic.co/elasticsearch/elasticsearch:8.11.3"
|
||||
environment:
|
||||
- cluster.name=docker-cluster
|
||||
- bootstrap.memory_lock=true
|
||||
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
- discovery.type=single-node
|
||||
# Disable authentication and ssl completely
|
||||
# - xpack.security.enabled=false
|
||||
# Use this to enable Basic Authentication:
|
||||
- xpack.security.enabled=true
|
||||
- xpack.security.http.ssl.enabled=false
|
||||
- ELASTIC_PASSWORD_FILE=/var/run/secrets/elasticsearch_password
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
volumes:
|
||||
- elasticsearch:/usr/share/elasticsearch/data
|
||||
networks:
|
||||
- internal
|
||||
secrets:
|
||||
- source: elasticsearch_password
|
||||
uid: "1000"
|
||||
gid: "1000"
|
||||
mode: 0600
|
||||
|
||||
searchindexer:
|
||||
image: nextcloud:27.1.3-fpm
|
||||
volumes:
|
||||
- nextcloud:/var/www/html/
|
||||
- nextapps:/var/www/html/custom_apps:cached
|
||||
- nextdata:/var/www/html/data:cached
|
||||
- nextconfig:/var/www/html/config:cached
|
||||
- ${EXTRA_VOLUME}
|
||||
networks:
|
||||
- internal
|
||||
entrypoint: su -p www-data -s /bin/sh -c '/var/www/html/occ fulltextsearch:live'
|
||||
|
||||
# Add the secret to the app service so it is avaiable in the
|
||||
# install_fulltextsearch command
|
||||
app:
|
||||
secrets:
|
||||
- elasticsearch_password
|
||||
|
||||
secrets:
|
||||
elasticsearch_password:
|
||||
external: true
|
||||
name: ${STACK_NAME}_elasticsearch_password_${SECRET_ELASTICSEARCH_PASSWORD_VERSION}
|
||||
|
||||
volumes:
|
||||
elasticsearch:
|
Loading…
Reference in New Issue