/vaultwarden_backup

Backs up vaultwarden files and directories automatically.

Primary LanguageShellGNU Affero General Public License v3.0AGPL-3.0

Backs up vaultwarden files and directories to tar.xz archives automatically. tar.xz archives can be opened using data compression programs like 7-Zip and WinRAR.

Files and directories that are backed up:

  • db.sqlite3
  • config.json
  • rsa_key.der
  • rsa_key.pem
  • rsa_key.pub.der
  • /attachments
  • /sends

Usage

Automatic Backups

Refer to the docker-compose section below. By default, backing up is automatic.

Manual Backups

Pass manual to docker run or docker-compose as a command.

docker-compose

services:
  vaultwarden:
    # Vaultwarden configuration here.
  backup:
    image: jmqm/vaultwarden_backup:latest
    container_name: vaultwarden_backup
    network_mode: none
    volumes:
      - /vaultwarden_data_directory:/data:ro # Read-only
      - /backup_directory:/backups

      - /etc/localtime:/etc/localtime:ro # Container uses date from host.
    environment:
      - DELETE_AFTER=30
      - CRON_TIME=* */24 * * * # Runs at 12:00 AM.
      - UID=1024
      - GID=100

Volumes (permissions required)

/data (read)- Vaultwarden's /data directory. Recommend setting mount as read-only.

/backups (write) - Where to store backups to.

Environment Variables

⭐Required, 👍 Recommended

Environment Variable Info
UID ⭐ User ID to run the cron job as.
GID ⭐ Group ID to run the cron job as.
CRON_TIME 👍 When to run (default is every 12 hours). Info here and editor here.
DELETE_AFTER 👍 (exclusive to automatic mode) Delete backups X days old. Requires read and write permissions.

Optional

Environment Variable Info
TZ ¹ Timezone inside the container. Can mount /etc/localtime instead as well (recommended).

¹ See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for more information

Errors

Unexpected timestamp

Mount /etc/localtime (recommend mounting as read-only) or set TZ environment variable.