PDF Ding
PDF Ding
# PdfDing
PdfDing is a selfhosted PDF manager, viewer and editor offering a seamless user
experience on multiple devices.

## Introduction
PdfDing is a PDF manager, viewer and editor that you can host yourself. It offers a
seamless user experience on multiple
devices. It's designed be to be minimal, fast, and easy to set up using Docker.
The name is a combination of PDF and *ding*. Ding is the German word for thing.
Thus, PdfDing is a thing for
your PDFs. Inspired by [linkding](https://github.com/sissbruecker/linkding).
## Live Demo
Try PdfDing on the demo instance: https://demo.pdfding.com
This is a temporary live demo with shared user accounts, all data will be deleted
every 60 minutes.
## Features
* Seamless browser based PDF viewing on multiple devices. Remembers current
position - continue where you stopped reading
* Stay on top of your PDF collection with multi-level tagging, starring and
archiving functionalities
* Edit PDFs by adding annotations, highlighting and drawings
* Clean, intuitive UI with dark mode, inverted color mode and custom theme colors
* SSO support via OIDC
* Share PDFs with an external audience via a link or a QR Code with optional access
control
* Markdown Notes
* Progress bars show the reading progress of each PDF at a quick glance
## Screenshots
Screenshots can be found
[here](https://github.com/mrmn2/PdfDing/blob/master/docs/screenshots.md).
## Getting started
### Using Docker
To install PdfDing using Docker you can just run the image from [Docker Hub]
(https://hub.docker.com/r/mrmn/pdfding):
```
docker run --name pdfding \
-p 8000:8000 \
-v sqlite_data:/home/nonroot/pdfding/db -v media:/home/nonroot/pdfding/media \
-e HOST_NAME=127.0.0.1 -e SECRET_KEY=some_secret -e CSRF_COOKIE_SECURE=FALSE -e
SESSION_COOKIE_SECURE=FALSE \
-d \
mrmn/pdfding:latest
```
If you use selinux it might be necessary to add the `:Z` after the volumes, e.g.
`sqlite_data:/home/nonroot/pdfding/db:Z`.
```
docker-compose -d -f compose/sqlite.docker-compose.yaml
```
## Guides
Guides about various aspects of PdfDing can be found in the
[guides](https://github.com/mrmn2/PdfDing/blob/master/docs/guides.md) section of
the docs.
## Configuration
Information about the different configuration options can be found in the
[configuration](https://github.com/mrmn2/PdfDing/blob/master/docs/configuration.md)
section of the docs.
## Contributing
Small improvements, bugfixes and documentation improvements are always welcome.
If you want to contribute a larger feature, consider opening an issue first to
discuss it. I may choose to ignore PRs for features that don't align with the
project's goals or that I don't want to maintain.
## Acknowledements
* This project started by adjusting the django starter of Andreas Jud: [django-
starter](https://github.com/andyjud/django-starter), [django-starter-assets]
(https://github.com/andyjud/django-starter-assets)
* As mentioned above, inspired by
[linkding](https://github.com/sissbruecker/linkding).