docstore/README.md
2019-08-26 19:58:31 +02:00

74 lines
2.1 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
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
}
```
## Features
* Fulltext indexing of documents
* 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
* 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.