1
0
mirror of https://github.com/xzeldon/vwdump.git synced 2025-07-17 06:46:10 +03:00

Switch from zip to tar.xz (#6)

**README.md**
- Minor text change.

**Dockerfile**
- Remove installation of `zip`.
- Add installation if `xz`.

**backup.sh**
- Switch to `tar.xz` archive _(`zip` was messing up permissions)_.
- `echo` when backups start and end.
This commit is contained in:
jmqm
2021-05-26 00:11:57 -05:00
committed by GitHub
parent ae779ce6e5
commit 6974723efe
3 changed files with 33 additions and 30 deletions

View File

@ -1,4 +1,4 @@
Backs up vaultwarden files using cron daemon.
Backs up vaultwarden files and folders to `tar.xz` archives.
Can be set to run automatically.
## Usage
@ -18,43 +18,40 @@ services:
image: jmqm/vaultwarden_backup
container_name: vaultwarden_backup
volumes:
- "/vaultwarden_data_directory:/data:ro"
- "/vaultwarden_data_directory:/data:ro" # Read-only
- "/backup_directory:/backups"
- "/etc/localtime:/etc/localtime:ro" # Container uses date from host.
environment:
- DELETE_AFTER=30 #optional
- DELETE_AFTER=30
- CRON_TIME=* */24 * * * # Runs every 24 hours.
- UID=1024
- GID=100
```
## Volumes
`/data` - Vaultwarden's `/data` folder. Recommend setting mount as read-only.
`/backups` - Where to store backups to.
## Environment Variables
#### ⭐Required, 👍 Recommended
| Variable | Description |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| 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](https://www.ibm.com/docs/en/db2oc?topic=task-unix-cron-format) and editor [here](https://crontab.guru/). |
| DELETE_AFTER 👍| Delete backups _X_ days old. _(unsupported at the moment)_ |
| 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](https://www.ibm.com/docs/en/db2oc?topic=task-unix-cron-format) and editor [here](https://crontab.guru/). |
| DELETE_AFTER 👍| Delete backups _X_ days old. _(unsupported at the moment)_ |
#### Optional
| Variable | Description |
| -------------- | -------------------------------------------------------------------------------------------- |
| TZ ¹ | Timezone inside the container. Can mount `/etc/localtime` instead as well _(recommended)_. |
| LOGFILE | Log file path relative to inside the container. |
| CRONFILE | Cron file path relative to inside the container. |
| Environment Variable | Info |
| -------------------- | -------------------------------------------------------------------------------------------- |
| TZ ¹ | Timezone inside the container. Can mount `/etc/localtime` instead as well _(recommended)_. |
| LOGFILE | Log file path relative to inside the container. |
| CRONFILE | Cron file path relative to inside the container. |
¹ See <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones> for more information
## Errors
#### Wrong permissions
`Error: unable to open database file` is most likely caused by permission errors.
Note that sqlite3 creates a lock file in the source directory while running the backup.
So source *AND* destination have to be +rw for the user. You can set the user and group ID
via the `UID` and `GID` environment variables like described above.
#### Date Time issues / Wrong timestamp
If you need timestamps in your local timezone you should mount `/etc/timezone:/etc/timezone:ro` and `/etc/localtime:/etc/localtime:ro`
like it's done in the [docker-compose.yml](docker-compose.yml). An other possible solution is to set the environment variable accordingly (like `TZ=Europe/Berlin`)
(see <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones> for more information).
#### Unexpected timestamp
Mount `etc/localtime` _(recommend mounting as read-only)_ or set `TZ` environment variable.