2022-10-07 14:50:14 +02:00
|
|
|
# laurivan.paperless
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
This role installs paperless-ngx via docker-compose.
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
## Requirements
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
You need to have a machine capable of running docker and docker-compose.
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
## Role Variables
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
This role uses the variables listed below, along with default values (see defaults/main.yml).
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
### Docker
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
This role allows you to select versions of the various docker images used by paperless-ngx:
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
```yml
|
|
|
|
paperless_image_version_redis: "7"
|
|
|
|
paperless_image_version_gotenberg: "7.4"
|
|
|
|
paperless_image_version_tika: "latest"
|
|
|
|
paperless_image_version_paperless: "latest"
|
|
|
|
```
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
### Ports
|
|
|
|
By default, only paperless UI is exposed:
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
```yml
|
|
|
|
paperless_port: 38000
|
|
|
|
```
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
You can expose the PostgreSQL port as well for backups via:
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
```yml
|
|
|
|
paperless_db_port: 5432
|
|
|
|
```
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
### Run as
|
2022-10-07 14:31:40 +02:00
|
|
|
|
2022-10-07 14:50:14 +02:00
|
|
|
You can run the docker containers as a different user via:
|
|
|
|
|
|
|
|
```yml
|
|
|
|
paperless_uid:
|
|
|
|
paperless_gid:
|
|
|
|
```
|
|
|
|
|
|
|
|
If these values are empty, the current ansible user is used :)
|
|
|
|
|
|
|
|
### Credentials
|
|
|
|
|
|
|
|
When you install paperless for the first time, you need to add a default admin user (username and password):
|
|
|
|
|
|
|
|
```yml
|
|
|
|
paperless_admin_user: "admin"
|
|
|
|
paperless_admin_password: "changeme"
|
|
|
|
```
|
|
|
|
|
|
|
|
### Directories
|
|
|
|
|
|
|
|
#### Configuration
|
|
|
|
By default, all configuration files (e.g. `docker-compose.yml`) are placed in *~/paperless*. You can change this via:
|
|
|
|
|
|
|
|
```yml
|
|
|
|
paperless_setup_path: "~/paperless"
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Ingestion and export
|
|
|
|
|
|
|
|
Paplerless allows you to inport/export documents via directories:
|
|
|
|
|
|
|
|
```yml
|
|
|
|
paperless_consumer_path: "/mnt/documents-consume"
|
|
|
|
paperless_volume_consume: "{{ paperless_consumer_path }}/consume"
|
|
|
|
paperless_volume_export: "{{ paperless_consumer_path }}/export"
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Docker persistence
|
|
|
|
|
|
|
|
You need to set up various volumes for data persistence. They are:
|
|
|
|
|
|
|
|
```yml
|
|
|
|
paperless_volume_base: "/mnt/documents"
|
|
|
|
paperless_volume_media: "{{ paperless_volume_base }}/media"
|
|
|
|
paperless_volume_metadata: "{{ paperless_volume_base }}/data"
|
|
|
|
paperless_volume_redis: "{{ paperless_volume_base }}/redis"
|
|
|
|
paperless_volume_db: "{{ paperless_volume_base }}/db"
|
|
|
|
```
|
|
|
|
|
|
|
|
**Notes:**
|
|
|
|
|
|
|
|
1. The `paperless_volume_base` provided for convenience as default.
|
|
|
|
2. The volumes are directory-based. If you want this role to support docker volumes, please do a pull request :)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Database
|
|
|
|
|
|
|
|
By default, this instance is configured with PostgreSQL:
|
|
|
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
paperless_image_version_db: "13-alpine"
|
|
|
|
paperless_db_host: "postgres"
|
|
|
|
paperless_db_port:
|
|
|
|
paperless_db_user: "paperless"
|
|
|
|
paperless_db_password: "changeme"
|
|
|
|
```
|
|
|
|
|
|
|
|
If the value for `paperless_db_host` is not **postgres**, then the postgres container is not installed, and you need to provide a different DB.
|
|
|
|
|
|
|
|
|
|
|
|
## Dependencies
|
|
|
|
|
|
|
|
No dependencies.
|
|
|
|
|
|
|
|
## Example Playbook
|
|
|
|
|
|
|
|
```yml
|
|
|
|
- hosts: servers
|
|
|
|
roles:
|
|
|
|
- laurivan.paperless
|
|
|
|
```
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
MIT
|
|
|
|
|
|
|
|
## Author Information
|
|
|
|
|
|
|
|
This role was created in 2022 by [Laur Ivan](https://www.laurivan.com)
|