No description
- Go 71.3%
- HTML 23.5%
- CSS 2.1%
- Shell 1.8%
- Makefile 1.3%
| img | ||
| pkg | ||
| scripts | ||
| templates | ||
| vendor | ||
| .gitignore | ||
| COPYRIGHT | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| README.md | ||
| sri.sh | ||
| templates.sh | ||
| VERSION | ||
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
}
Features
- Fulltext indexing of documents
- Query Syntax: https://github.com/bcampbell/qs/blob/master/syntax.md
- The
Index Allbutton tries add every file not already indexed to the index
- Custom regex based tags (see https://golang.org/pkg/regexp/syntax/)
- The
Retag Allbutton will reapply the current tags to all indexed documents
- The
- 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.