mirror of
https://github.com/aljazceru/plugins.git
synced 2025-12-26 17:34:22 +01:00
62 lines
1.9 KiB
Markdown
62 lines
1.9 KiB
Markdown
# A simple and reliable backup plugin
|
|
|
|
**This version only supports the default SQLite3 database**
|
|
|
|
This plugin will maintain clean database backups to another location. It uses
|
|
the `db_write` hook to make sure to always have a backup that is not missing any
|
|
state updates and is not potentially harmful.
|
|
|
|
|
|
## Installation
|
|
|
|
There are some Python dependencies. You can install them using `pip3`:
|
|
|
|
```bash
|
|
pip3 install --user -r requirements.txt
|
|
```
|
|
|
|
|
|
## Setup
|
|
|
|
Before the backup plugin can be used it has to be initialized once. The following
|
|
command will create a `backup.lock` in the lightning directory that stores the
|
|
internal state, and which makes sure no instances are using the same backup.
|
|
|
|
```bash
|
|
./backup-cli init ~/.lightning/bitcoin file:///mnt/external/location
|
|
```
|
|
|
|
Notes:
|
|
- Make sure to adjust the `~/.lightning/bitcoin` directory to your needs.
|
|
- You should use some non-local SSH or NFS mount as destination.
|
|
- Currently only the `file:///` URL scheme is supported.
|
|
|
|
## IMPORTANT note about hsm_secret
|
|
|
|
**You need to secure `~/.lightning/bitcoin/hsm_secret` once! This
|
|
file will not change, but without this file, the database backup will be
|
|
unusable!**
|
|
|
|
Make sure it has user read only permissions, otherwise `lightningd` will refuse
|
|
to work: `chmod 0400 hsm_secret`
|
|
|
|
|
|
## Running
|
|
|
|
In order to tell `lightningd` to use the plugin you either need to tell it
|
|
via the startup option `--plugin /path/to/backup.py` or by placing it (or a
|
|
symlink to it) in the lightning plugin directory (`~/.lightning/plugins`).
|
|
|
|
On daemon startup the plugin will check the integrity of the existing backup
|
|
and complain if there is a version mismatch.
|
|
|
|
|
|
## Restoring a backup
|
|
|
|
If things really messed up and you need to reinstall clightning, you can
|
|
restore the database backup by using the `backup-cli` utility:
|
|
|
|
```bash
|
|
./backup-cli restore file:///mnt/external/location ~/.lightning/bitcoin/lightningd.sqlite3
|
|
```
|