Initial commit.

This commit is contained in:
jon
2021-09-25 12:52:05 -05:00
commit 3c217ae3fe
7 changed files with 118 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
db/
html/

37
README.md Normal file
View File

@@ -0,0 +1,37 @@
= Nextcloud with OCR and Elasticsearch for Full-Text Searching
To get elasticsearch to run, you'll need to run this on the host:
sysctl -w vm.max_map_count=262144
You can build and start all three containers (nextcloud, db and elasticsearch) with:
$docker-compose up
Go to: http://[host]:9900/
Make up user/pass, I uncheck installing the additional apps at the bottom
Disable dashboard under user > settings
== OCR
1. go into settings > basic settings > set cron
1. install apps (workflow ocr)
1. create flow:
2. add new ocr flow
2. when: file created
2. file mime type > is > pdf document
2. (USE IS AND NOT MATCHES!!!)
== Full text
1. Install apps (full text, full text elastic, full text - files)
1. To to Settings > Full Text Search
1. Configure settings appropriately. Address is: http://user:pass@elasticsearch:9200/
1. Now you have to run the fulltextsearch index manually one time
2. shell into container, enable www-data account (chsh)
2. go to /var/www/html and run: php occ fulltextsearch:index
2. disable www-data account (chsh back to nologin)

34
docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
version: '3'
services:
nextcloud_db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=hELLO@123
- MYSQL_PASSWORD=hELLO@123
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
nextcloud:
image: nextcloud-ocr
build: ./docker/nextcloud
ports:
- 9900:80
links:
- nextcloud_db
volumes:
- ./html:/var/www/html
restart: always
elasticsearch:
image: nextcloud-es
build: ./docker/elasticsearch
ports:
- 9200
environment:
- "discovery.type=single-node"

View File

@@ -0,0 +1,2 @@
FROM elasticsearch:7.14.1
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install -b ingest-attachment

View File

@@ -0,0 +1,19 @@
FROM nextcloud
# install necessary packages
RUN apt-get update && apt-get install -y ocrmypdf supervisor
# create supervisord dir
RUN mkdir /var/log/supervisord /var/run/supervisord
COPY supervisord.conf /
# copy in memory size increase php ini file
# we name it zzz because nextcloud.ini was overriding
COPY zzz-memory-limit.ini /usr/local/etc/php/conf.d/
# remove memory limit from nextcloud.ini that overrides that
# todo
ENV NEXTCLOUD_UPDATE=1
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]

View File

@@ -0,0 +1,23 @@
[supervisord]
nodaemon=true
logfile=/var/log/supervisord/supervisord.log
pidfile=/var/run/supervisord/supervisord.pid
childlogdir=/var/log/supervisord/
logfile_maxbytes=50MB ; maximum size of logfile before rotation
logfile_backups=10 ; number of backed up logfiles
loglevel=error
[program:apache2]
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=apache2-foreground
[program:cron]
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
command=/cron.sh

View File

@@ -0,0 +1 @@
memory_limit=1G