From a130daa0f03c51bbac009fe362b97a97f4b486df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20I=C3=9Fbr=C3=BCcker?= Date: Sun, 5 Nov 2023 13:53:08 +0100 Subject: [PATCH] Update backup docs --- docs/backup.md | 73 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 24 deletions(-) diff --git a/docs/backup.md b/docs/backup.md index da3c579..49d85ee 100644 --- a/docs/backup.md +++ b/docs/backup.md @@ -1,52 +1,77 @@ # Backups -This page describes some options on how to create backups. - -## What to backup - -Linkding stores all data in a SQLite database, so all you need to backup are the contents of that database. - -The location of the database file is `data/db.sqlite3` in the application folder. -If you are using Docker then the full path in the Docker container is `/etc/linkding/data/db.sqlite`. +Linkding stores all data in the application's data folder. +The full path to that folder in the Docker container is `/etc/linkding/data`. As described in the installation docs, you should mount the `/etc/linkding/data` folder to a folder on your host system, from which you then can execute the backup. -Below, we describe several methods to create a backup of the database: +The data folder contains the following contents: +- `db.sqlite3` - the SQLite database +- `favicons` - folder that contains downloaded favicons -- Manual backup using the export function from the UI -- Create a copy of the SQLite database with the SQLite backup function -- Create a plain textfile with the contents of the SQLite database with the SQLite dump function +The following sections explain how to back up the individual contents. -Choose the method that fits you best. +## Database -## Exporting from the UI +This section describes several methods on how to back up the contents of the SQLite database. -The least technical option is to use the bookmark export in the UI. -Go to the settings page and open the *Data* tab. -Then click on the *Download* button to download an HTML file containing all your bookmarks. -You can backup this file on a drive, or an online file host. +> [!WARNING] +> While the SQLite database is just a single file, it is not recommended to just copy that file. +> This method is not transaction safe and may result in a [corrupted database](https://www.sqlite.org/howtocorrupt.html). +> Use one of the official SQLite backup methods described below. -## Using the SQLite backup function +### Using the SQLite backup function Requires [SQLite](https://www.sqlite.org/index.html) to be installed on your host system. With this method you create a new SQLite database, which is a copy of your linkding database. This method uses the backup command in the [Command Line Shell For SQLite](https://sqlite.org/cli.html). +To create a backup, execute the following command in the data folder: ```shell sqlite3 db.sqlite3 ".backup 'backup.sqlite3'" ``` -After you have created the backup database `backup.sqlite` you have to move it to another system, for example with rsync. +This creates a `backup.sqlite3` file which you can copy to your backup location. -## Using the SQLite dump function +To restore the backup, just copy the backup file as `db.sqlite3` to the data folder of your new installation before starting the Docker container. + +### Using the SQLite dump function Requires [SQLite](https://www.sqlite.org/index.html) to be installed on your host system. With this method you create a plain text file with the SQL statements to recreate the SQLite database. - +To create a backup, execute the following command in the data folder: ```shell sqlite3 db.sqlite3 .dump > backup.sql ``` +This creates a `backup.sql` which you can copy to your backup location. +As this is a plain text file you can also commit it to any revision management system, like git. +Using git, you can commit the changes, followed by a git push to a remote repository. -As this is a plain text file you can commit it to any revision management system, like git. -Using git you can commit the changes, followed by a git push to a remote repository. +### Exporting bookmarks from the UI +This is the least technical option to back up bookmarks, but has several limitations: +- It does not export user profiles. +- It only exports your own bookmarks, not those of other users. +- It does not export archived bookmarks. +- It does not export URLs of snapshots on the Internet Archive Wayback machine. +- It does not export favicons. +Only use this method if you are fine with the above limitations. + +To export bookmarks from the UI, open the general settings. +In the Export section, click on the *Download* button to download an HTML file containing all your bookmarks. +Then move that file to your backup location. + +To restore bookmarks, open the general settings on your new installation. +In the Import section, click on the *Choose file* button to select the HTML file you downloaded before. +Then click on the *Import* button to import the bookmarks. + +## Favicons + +Doing a backup of the icons is optional, as they can be downloaded again. + +If you choose not to back up the icons, you can just restore the database and then click the _Refresh Favicons_ button in the general settings. +This will download all missing icons again. + +If you want to back up the icons, then you have to copy the `favicons` folder to your backup location. + +To restore the icons, copy the `favicons` folder back to the data folder of your new installation.