Skip to content

Commit

Permalink
README updated
Browse files Browse the repository at this point in the history
  • Loading branch information
ciur committed Jan 19, 2025
1 parent 622a775 commit ed7904c
Showing 1 changed file with 18 additions and 134 deletions.
152 changes: 18 additions & 134 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Papermerge is perfect tool for long term storage of your documents.
* Document Versioning
* Tags - assign colored tags to documents or folders
* Documents and Folders - users can organize documents in folders
* Document Types
* Document Types (i.e. Categories)
* Custom Fields (metadata) per document type
* Multi-User
* Page Management - delete, reorder, cut, move, extract pages
Expand All @@ -41,144 +41,28 @@ Papermerge is perfect tool for long term storage of your documents.

Papermerge DMS documentation is available at [https://docs.papermerge.io](https://docs.papermerge.io/)

## Docker
## Start with Docker

In order to start Papermerge REST API server as docker image use following command:
In order to start Papermerge App with the most basic setup use following command:

docker run -p 8000:80 \
-e PAPERMERGE__SECURITY__SECRET_KEY=abc \
-e PAPERMERGE__AUTH__PASSWORD=123 \
papermerge/papermerge:3.0.3
papermerge/papermerge:3.3.1

For more info about various docker compose scenarios check [documentation page](https://docs.papermerge.io/3.3/setup/docker-compose/).

If you want initial superuser to have another username (e.g. john), use
`PAPERMERGE__AUTH__USERNAME` environment variable:

docker run -p 8000:80 \
-e PAPERMERGE__SECURITY__SECRET_KEY=abc \
-e PAPERMERGE__AUTH__PASSWORD=123 \
-e PAPERMERGE__AUTH__USERNAME=john \
papermerge/papermerge:3.0.3

Note that above docker command start only web UI. In order to run OCR on the documents you need at least one
worker instance.

## Docker Compose

Here is an example of complete setup with web ui, one worker (which performs OCR), and PostgreSQL database for
storing data:

version: "3.9"

x-backend: &common
image: papermerge/papermerge:3.0.3
environment:
PAPERMERGE__SECURITY__SECRET_KEY: 12345
PAPERMERGE__AUTH__USERNAME: john
PAPERMERGE__AUTH__PASSWORD: hohoho
PAPERMERGE__DATABASE__URL: postgresql://scott:tiger@db:5432/mydatabase
PAPERMERGE__REDIS__URL: redis://redis:6379/0
volumes:
- index_db:/core_app/index_db
- media:/core_app/media
services:
web:
<<: *common
ports:
- "12000:80"
depends_on:
- redis
- db
worker:
<<: *common
command: worker
redis:
image: redis:6
db:
image: bitnami/postgresql:16.1.0
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
POSTGRESQL_USER: scott
POSTGRESQL_PASSWORD: tiger
POSTGRESQL_POSTGRES_PASSWORD: tiger
POSTGRESQL_DATABASE: mydatabase
volumes:
postgres_data:
index_db:
media:

Open your web browser and point it to http://localhost:12000.

Following docker compose file starts Papermerge (web UI and one worker) with
MariaDB as database and Solr as search engine backend:

version: "3.9"

x-backend: &common
image: papermerge/papermerge:3.0.3
environment:
PAPERMERGE__SECURITY__SECRET_KEY: 1234 # top secret
PAPERMERGE__AUTH__USERNAME: eugen
PAPERMERGE__AUTH__PASSWORD: 1234
PAPERMERGE__DATABASE__URL: mysql://myuser:mypass@db:3306/paperdb
PAPERMERGE__REDIS__URL: redis://redis:6379/0
PAPERMERGE__SEARCH__URL: solr://solr:8983/pmg-index
volumes:
- media_root:/core_app/media
depends_on:
- redis
- solr
- db

services:
web:
<<: *common
ports:
- "12000:80"
worker:
<<: *common
command: worker
redis:
image: redis:6
solr:
image: solr:9.3
ports:
- "8983:8983"
volumes:
- solr_data:/var/solr
command:
- solr-precreate
- pmg-index
db:
image: mariadb:11.2
volumes:
- maria:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: mypass
MYSQL_DATABASE: paperdb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypass
volumes:
maria:
solr_data:
media_root:

Open your web browser and point it to http://localhost:12000.

## Ansible Playbook

In order to deploy Papermerge on remote production machine (homelab VM, or cloud VPS instance)
use following [Ansible Playbook](https://github.com/papermerge/ansible).

## Tests

poetry install
poetry shell
pytest tests/

## Linting

Use following command to make sure that your code is formatted per PEP8 spec:

poetry run task lint
## Demo Page

Online demo is available at: https://papermerge.com/demo

```
Username: demo
Password: demo
```

Please note that, in order to save resources, online demo instance is deployed
using very basic setup: there is no OCR worker and no full text search engine
behind. Online instance is reseted every 24 hours (0:00 UTC timezone). Reset
means that all data is restored to initial state and all documents are deleted.

0 comments on commit ed7904c

Please sign in to comment.