Home

Awesome

PdfDing

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

GitHub Repo Stars Docker Pulls Version GitHub Actions Workflow Status Last Commit

Overview

Introduction

PdfDing is a PDF manager and viewer 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. As all data stays on your server you have full control over your data and privacy.

With its simple, intuitive and adjustable UI, PdfDing makes it easy for users to keep track of their PDFs and access them whenever they need to. With a dark mode and colored themes users can style the app to their liking. As PdfDing offers SSO support via OIDC it can be easily integrated into existing setups.

The name is a combination of PDF and ding. Ding is the German word for thing. Thus, PdfDing is a thing for your PDFs. The name and PdfDing's design are inspired by the excellent bookmark manager linkding.

Feature Overview

Screenshots

Screenshots can be found here.

Why PdfDing?

I started developing PdfDing as I was searching for a solution for viewing and managing PDF files. I had a few simple requirements:

I was quite surprised to find out that there was no app matching my simple requirements. While there were some existing solutions they still had some problems:

Thus, I am developing PDfDing as a simple webapp with a clear focus on a single thing: viewing and managing PDFs.

Installation

PdfDing is designed to be run with container solutions like Docker. The Docker image is compatible with ARM64 platforms, so it can be run on a Raspberry Pi 4.

PdfDing uses an SQLite database by default. Alternatively PdfDing supports PostgreSQL.

Using Docker

To install PdfDing using Docker you can just run the image from Docker Hub:

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 everything completed successfully, the application should now be running and can be accessed at http://127.0.0.1:8000.

If you use selinux it might be necessary to add the :Z after the volumes, e.g. sqlite_data:/home/nonroot/pdfding/db:Z.

Using Docker Compose

To install PdfDing using Docker Compose, you can use one of the files in the deploy directory and run e.g.:

docker-compose -d -f sqlite.docker-compose.yaml

Configuration

Information about the different configuration options can be found in the configuration 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.

If you are interested in contributing more information can be found in the development section of the docs.

Acknowledements