Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/patwie/paperhero
webapp written in python to manage pdf collections and notes
https://github.com/patwie/paperhero
arxiv management-system pdf python self-hosted
Last synced: 3 months ago
JSON representation
webapp written in python to manage pdf collections and notes
- Host: GitHub
- URL: https://github.com/patwie/paperhero
- Owner: PatWie
- Created: 2017-02-11T19:25:02.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-15T19:50:46.000Z (over 7 years ago)
- Last Synced: 2024-10-03T12:44:46.218Z (4 months ago)
- Topics: arxiv, management-system, pdf, python, self-hosted
- Language: CSS
- Homepage:
- Size: 22.7 MB
- Stars: 29
- Watchers: 3
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Manager for PDF papers (Arxiv-Binding)
Tired of browsing endless directories of pdfs? Arxiv is again slow when loading a paper?
This small and hackable web-app written in python which allows you to browse your pdf collection in a nice interface.
Features:
- search and download papers directly from Arxiv.org including meta data such as title, authors and abstract
- live fuzzy-search your local papers
- add notes with markdown and LaTeX
- edit meta-data
- use labelsEach entry consists of up to 4 files:
- .pdf: the article itself
- .yml: all meta data, which can be exported later to bibtex
- .jpg: a small preview of all papes
- .md (optional): notes in markdown-formatThis allows you to synchronize your papers across different machines quite easily even without a git-repository.
![Demo](./docs/paperhero.png)
## Install locally
````bash
# get montage command
sudo apt-get install imagemagick imagemagick-doc
# clone this project
cd /var/www/papers
git clone https://github.com/PatWie/paperhero.git
cd paperhero
# install dependencies
pip install -r requirements.txt --user
# compile sass and minify js
python2.7 compile.py
# ready to start
python2.7 paperhero.py --port 8888
````Now point your browser to http://localhost:8888
## Install on your VirtualPrivateServer (VPS)
I assume you already have NGINX properly configured and running. An example config file is given in [docs](docs). This uses NGINX for serving static assets and as a reverse-proxy for the python app itself.
````bash
# get montage command and utils for htaccess
sudo apt-get install imagemagick imagemagick-doc apache2-utils
# go to root-dir (where README.md is located)
cd paperhero
# add password protection
sudo htpasswd -c .htpasswd
# make directoy writeable by current user
sudo chown -R your-user:your-user .
# configure nginx
sudo cp docs/paperhero.conf /etc/nginx/sites-available/paperhero.conf
# edit (server-name, path, port)
sudo nano /etc/nginx/sites-available/paperhero.conf
# activate site
sudo ln -s /etc/nginx/sites-available/paperhero.conf /etc/nginx/sites-enabled/
# start app (in another terminal)
python2.7 paperhero.py --port 8100&
# load configuration in nginx
sudo service nginx reload
````## Update app
````bash
cd paperhero
# kill current instance
kill $(ps aux | grep [p]aperhero | awk '{print $2}')
# get updates
git pull origin master
# compile assets and restart app
python2.7 compile.py && python2.7 paperhero.py --port 8100&
````## Sync data accross machines
Add the following to your `.bashrc`
````bash
# alias for fetching changes
alias fpapers='rsync -avzru --delete-excluded vps:/remote/paperhero/data/ /local/paperhero/data/'
# alias for pushing changes
alias ppapers='rsync -avzru --delete-excluded /local/paperhero/data/ vps:/remote/paperhero/data/'
````