ansible-role-paperless-ngx/README.md

130 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

# laurivan.paperless
2022-10-07 14:31:40 +02:00
This role installs paperless-ngx via docker-compose.
2022-10-07 14:31:40 +02:00
## Requirements
2022-10-07 14:31:40 +02:00
You need to have a machine capable of running docker and docker-compose.
2022-10-07 14:31:40 +02:00
## Role Variables
2022-10-07 14:31:40 +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
### Docker
2022-10-07 14:31:40 +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
```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
### Ports
By default, only paperless UI is exposed:
2022-10-07 14:31:40 +02:00
```yml
paperless_port: 38000
```
2022-10-07 14:31:40 +02:00
You can expose the PostgreSQL port as well for backups via:
2022-10-07 14:31:40 +02:00
```yml
paperless_db_port: 5432
```
2022-10-07 14:31:40 +02:00
### Run as
2022-10-07 14:31:40 +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)