Sinistraverso
  • Communities
  • Multi-communities
  • Support Lemmy
  • Search
  • Login
Selfhosted@lemmy.worldbySam@toot.io
2 months

Paperless cloud backups

Paperless cloud backups

https://samsm.ch/paperless-cloud-backups/

Some documentation on how I setup backing up my paperless-ngx documents to dropbox using rclone and some custom code

#homelab #selfhosted @selfhosted

10
    You must log in or register to comment.

    • Taasz/Woof@piefed.socialEnglish
      2 months

      How are you handling versioning and deleted files?

      It seems like Restic would be a better option? It only backs up changed files and handles versioning, encryption, deduplication, and some fault recovery allready. You wouldn’t need all of the other layers like the export script and float.

      • MalReynolds@slrpnk.netEnglish
        2 months

        If you encrypt at home it doesn’t matter where you do offsite. See Cryptomator for an easy platform agnostic approach. Why trust the bastards?

        Ah, should have updooted darntootin, oh well. Still, OP, a bit more detail (like I encrypt with rclone, would have been nice.) Cool. Got my own system, but anything that helps…

          • Sam@toot.io
            2 months

            @MalReynolds Rclone can encrypt, but I also like to have another avenue to access my documents in case for some reason I can’t accessy homelab.

              • MalReynolds@slrpnk.netEnglish
                2 months

                Cryptomator has an android app, haven’t used it in anger (It’s not a backup until you restore successfully), but it’s there.

              • Taasz/Woof@piefed.socialEnglish
                2 months

                Restic is a good backup tool with encryption. Cryptomator is awesome but it doesn’t do backups, just storage.

                  • MalReynolds@slrpnk.netEnglish
                    2 months

                    Completely correct. It’s a useful tool for people protecting their precious memories, not an ongoing protection of an OS state.

                • darntootin@lemmy.worldEnglish
                  2 months

                  deleted by creator

                    • Sam@toot.io
                      2 months

                      @darntootin I don’t see how Proton is all that more trustworthy, but encryption is a good idea, and my method works fine for both since rclone already supports proton (https://rclone.org/protondrive/) and encrypting your data pre-copy (https://rclone.org/crypt/)

                    • lokalhorst@feddit.orgEnglish
                      2 months

                      I use restic to backup my paperless documents to a Hetzner Storage Box. The setup was easy and I am independent of US cloud hosters.

                        • Sam@toot.io
                          2 months

                          @lokalhorst As I mentioned in the post, this method can be used to back up to many different providers (incl. hetzner, see https://rclone.org/docs/). I assume w/ restic you’re just backing up the folder where paperless stores the docs rather than the export. IMO the latter is nice because leaves you w/ something that’s more useful w/o paperless.

                            • lokalhorst@feddit.orgEnglish
                              2 months

                              I actually use the document_exporter of paperless-ngx. I have a small bash script backup-paperless.sh that runs the paperless-ngx document_exporter and also makes a database dump using pg_dump. It sets up the restic backups logic with daily, weekly and monthly backups. I run that bash script using a systemd service paperless-backup.service. This service is run daily with the timer paperless-backup.timer, randomly at 3 am ±30 minutes. restic is smart, so it does only backup if there are changes. The incremental backups are great, in case the database corrupts without me noticing. I’ll share the scripts in case you are interested in how it works:

                              backup-paperless.sh

                              #!/bin/bash
                              set -euo pipefail
                              
                              COMPOSE_DIR="/home/user/paperless-ngx/"
                              DUMP_DIR="$COMPOSE_DIR/sqldump"
                              EXPORT_DIR="/usr/src/paperless/export"
                              
                              export RESTIC_REPOSITORY="sftp:abc123@abc123.your-storagebox.de:/backup/restic"
                              export RESTIC_PASSWORD_FILE="/home/user/.config/restic/password"
                              
                              mkdir -p "$DUMP_DIR"
                              
                              cd "$COMPOSE_DIR"
                              docker compose exec -T webserver document_exporter "$EXPORT_DIR" -p
                              docker compose exec -T db pg_dump -U paperless paperless > "$DUMP_DIR/dump.sql"
                              
                              
                              
                              restic backup "$DUMP_DIR" "$COMPOSE_DIR/export"
                              
                              restic forget \
                              	--keep-daily 7 \
                              	--keep-weekly 4 \
                              	--keep-monthly 6 \
                              	--prune
                              
                              rm -rf "$COMPOSE_DIR/export"/*
                              rm -rf "$DUMP_DIR"/*
                              

                              paperless-backup.service

                              [Unit]
                              Description=Paperless-ngx Restic Backup
                              Wants=network-online.target
                              After=network-online.target docker.service
                              
                              [Service]
                              Type=oneshot
                              User=user
                              WorkingDirectory=/home/user/paperless-ngx
                              ExecStart=/home/user/paperless-ngx/backup-paperless.sh
                              

                              paperless-backup.timer

                              [Unit]
                              Description=Run paperless backup every 24 hours
                              
                              [Timer]
                              OnCalendar=*-*-* 03:00:00
                              Persistent=true
                              RandomizedDelaySec=30min
                              
                              [Install]
                              WantedBy=timers.target
                              

                          Selfhosted@lemmy.world

                          selfhosted@lemmy.world

                          Subscribe from remote instance

                          Create post

                          Report community

                          Modlog
                          You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !selfhosted@lemmy.world

                          A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

                          Rules:

                          Detailed Rules Post

                          1. Be civil.

                          2. No spam.

                          3. Posts are to be related to self-hosting.

                          4. Don’t duplicate the full text of your blog or readme if you’re providing a link.

                          5. Submission headline should match the article title.

                          6. No trolling.

                          7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

                          8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

                          Resources:

                          • selfh.st Newsletter and index of selfhosted software and apps
                          • awesome-selfhosted software
                          • awesome-sysadmin resources
                          • Self-Hosted Podcast from Jupiter Broadcasting

                          Any issues on the community? Report it using the report flag.

                          Questions? DM the mods!

                          Visibility: Public

                          This community is visible to everyone.

                          • Unknown language
                          • Italiano
                          257 users / Day1.96K users / Week6.08K users / Month9.22K users / 6 months774 posts10.9K comments1 local subscriber63.2K subscribers
                          Mods: Ruud@lemmy.world
                          • BE: 1.0.0-beta.2
                          • Modlog
                          • Instances
                          • Docs
                          • Code
                          • join-lemmy.org