83 lines
2.5 KiB
Markdown
83 lines
2.5 KiB
Markdown
# DocStore - document server and indexing engine
|
|
|
|
## Building
|
|
|
|
**Requirements:**
|
|
|
|
* Go (golang) >= 1.12
|
|
|
|
Linux:
|
|
|
|
```
|
|
make
|
|
|
|
or offline
|
|
|
|
make vendor
|
|
```
|
|
|
|
OpenBSD:
|
|
|
|
```
|
|
GOOS=openbsd make
|
|
|
|
or offline
|
|
|
|
GOOS=openbsd make vendor
|
|
```
|
|
|
|
## Install
|
|
|
|
**Requirements:**
|
|
* tesseract
|
|
* pdftotext
|
|
|
|
See the `scripts/` directory on how to install docstore on Linux or OpenBSD.
|
|
|
|
## Config
|
|
|
|
```
|
|
{
|
|
"run_dir": "/var/lib/docstore", // running directory. data will be stored here
|
|
"user": "docstore", // drop privileges to user
|
|
"group": "docstore", // drop privileges to group
|
|
"listen_addr": "127.0.0.1:8080", // listening <address>:<port>
|
|
"log_file": "docstore.log", // log file (use - for stdout, this only works in combination with 'foreground: true')
|
|
"secret": "", // static hmac secret (at least 64 chars, used for JWT signing)
|
|
"langs": ["deu", "eng"], // languages for tesseract ocr
|
|
"cmd_timeout": 600, // timeout in seconds for executed teseract and pdftotext commands
|
|
"tesseract_threads": 1, // tesseract thread limit
|
|
"tesseract_oem": 1, // tesseract oem value
|
|
"foreground": false, // do not fork into the background
|
|
"secure_cookie": false, // enable secure cookie flag
|
|
"debug": false, // enable debugging
|
|
"webdav": false // enable webdav upload
|
|
}
|
|
```
|
|
|
|
## Features
|
|
|
|
* Fulltext indexing of documents
|
|
* Query Syntax: https://github.com/bcampbell/qs/blob/master/syntax.md
|
|
* The `Index All` button tries add every file not already indexed to the index
|
|
* Custom regex based tags (see https://golang.org/pkg/regexp/syntax/)
|
|
* The `Retag All` button will reapply the current tags to all indexed documents
|
|
* Optional WebDav upload functionality
|
|
* WebDav can be accessed at `http://<ip>:<port>/webdav`
|
|
* This WebDav does only permit writing files **once** (reading files or creating directories is not allowed)
|
|
* Password hashing using BCrypt
|
|
* 2FA using TOTP
|
|
* Content Security Policy
|
|
* No Javascript (yet)
|
|
|
|
### DocStore on OpenBSD
|
|
|
|
DocStore makes use of the OpenBSD native security features [pledge(2)](https://man.openbsd.org/pledge) and [unveil(2)](https://man.openbsd.org/unveil).
|
|
|
|
## Usage
|
|
|
|
DocStore manages all files and directories under the `$run_dir/data` directory.
|
|
|
|
Do not delete or move files around in the `$run_dir/data` directory using the filesystem as this messes with the index mapping.
|
|
|
|
You can however add more files and directories using the underlying file system.
|