docstore/README.md
2019-08-24 17:42:02 +02:00

2 KiB

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
  • Custom regex based tags (see https://golang.org/pkg/regexp/syntax/)
  • 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) and unveil(2).

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.