aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: d06e6def85c71479e82605cf2f874f26e11b08f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Crane

Crane is a minimal self-hosted research literature organizational web service
with support for paper download and metadata retrieval.

No databases or app-proprietary formats are used. Papers are categorized by the
directories in which they're stored, and XML metadata is retrieved from the
[doi.org](https://www.doi.org/) API and written alongside each paper for which
its DOI is known.

![admin](screenshots/admin.png)

## Installation

Crane can be compiled with `make` or `go build`, and installed system-wide by
running `make install` with root-level permissions.

## Usage

Crane can be run locally or on a server. The index (`"/"`) endpoint lists papers
but does not permits modification to the set. The admin (`"/admin/"`) endpoint
supports optional authentication and permits paper download, deletion, and
moving between categories, as well as category addition, deletion, and rename.

```
Usage of ./crane:
  -host string
        IP address to listen on (default "127.0.0.1")
  -port uint
        Port to listen on (default 9090)
  -path string
        Absolute or relative path to papers folder (default "./papers")
  -sci-hub string
        Sci-Hub URL (default "https://sci-hub.se/")
  -user string
        Username for /admin/ endpoints (optional)
  -pass string
        Password for /admin/ endpoints (optional)
```

By default, crane listens on `127.0.0.1:9090` but this is configurable with the
`--host` and `--port` parameters. Authentication is optional but can be enabled
with `--user` and `--pass` parameters; the index is always publicly accessible.

Papers are written to `--path`, stored in directories which serve as paper
categories.