Created
August 22, 2024 11:35
-
-
Save sams96/dc97a06fcb669465d0ca44d4041b2cad to your computer and use it in GitHub Desktop.
paperless-ngx docker compose file with scheduled rclone backup
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# docker-compose file for running paperless from the Docker Hub. | |
# This file contains everything paperless needs to run. | |
# Paperless supports amd64, arm and arm64 hardware. | |
# | |
# All compose files of paperless configure paperless in the following way: | |
# | |
# - Paperless is (re)started on system boot, if it was running before shutdown. | |
# - Docker volumes for storing data are managed by Docker. | |
# - Folders for importing and exporting files are created in the same directory | |
# as this file and mounted to the correct folders inside the container. | |
# - Paperless listens on port 8000. | |
# | |
# In addition to that, this docker-compose file adds the following optional | |
# configurations: | |
# | |
# - Instead of SQLite (default), PostgreSQL is used as the database server. | |
# | |
# To install and update paperless with this file, do the following: | |
# | |
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env' | |
# and '.env' into a folder. | |
# - Run 'docker-compose pull'. | |
# - Run 'docker-compose run --rm webserver createsuperuser' to create a user. | |
# - Run 'docker-compose up -d'. | |
# | |
# For more extensive installation and update instructions, refer to the | |
# documentation. | |
version: "3.4" | |
services: | |
broker: | |
image: docker.io/library/redis:7 | |
restart: unless-stopped | |
volumes: | |
- redisdata:/data | |
db: | |
image: docker.io/library/postgres:13 | |
restart: unless-stopped | |
volumes: | |
- /drive0/paperless/database:/var/lib/postgresql/data | |
environment: | |
POSTGRES_DB: paperless | |
POSTGRES_USER: paperless | |
POSTGRES_PASSWORD: paperless | |
webserver: | |
image: ghcr.io/paperless-ngx/paperless-ngx:latest | |
restart: unless-stopped | |
depends_on: | |
- db | |
- broker | |
ports: | |
- "8000:8000" | |
healthcheck: | |
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"] | |
interval: 30s | |
timeout: 10s | |
retries: 5 | |
volumes: | |
- /drive0/paperless/data:/usr/src/paperless/data | |
- /drive0/paperless/documents:/usr/src/paperless/media | |
- export:/usr/src/paperless/export | |
- /drive0/paperless/consume:/usr/src/paperless/consume | |
env_file: docker-compose.env | |
environment: | |
PAPERLESS_REDIS: redis://broker:6379 | |
PAPERLESS_DBHOST: db | |
labels: | |
ofelia.enabled: "true" | |
ofelia.job-exec.export-job.schedule: "@hourly" | |
ofelia.job-exec.export-job.command: "document_exporter --no-thumbnail ../export" | |
# Put your rclone.conf file into the local rclone/config file, and change the command to your backup location | |
rclone: | |
container_name: rclone | |
image: rclone/rclone:latest | |
volumes: | |
- export:/data | |
- ./rclone/config:/root/.config/rclone | |
labels: | |
ofelia.enabled: "true" | |
command: "copy /data [remote:location]" | |
ofelia: | |
image: mcuadros/ofelia:latest | |
restart: unless-stopped | |
depends_on: | |
- webserver | |
command: daemon --docker | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock:ro | |
labels: | |
# backup job is run 5 minutes after the hour to give the export time to run | |
ofelia.job-run.backup.schedule: "0 5 * * * *" | |
ofelia.job-run.backup.container: "rclone" | |
volumes: | |
redisdata: | |
export: | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment