diff --git a/docs/admin/database_maintenance.md b/docs/admin/database_maintenance.md
index eedf6d1b7..e937e7777 100644
--- a/docs/admin/database_maintenance.md
+++ b/docs/admin/database_maintenance.md
@@ -46,6 +46,10 @@ The basic steps are:
 2. While connected to your GoToSocial database file in the `sqlite3` shell, run `VACUUM;` (this may take quite a few minutes).
 3. Start GoToSocial.
 
+### Replication
+
+It's a common practice to set up safeguards for your database like replication. SQLite can be replicated using external software. The basic steps are described on the [Replicating SQLite](../advanced/replicating-sqlite.md) page.
+
 ## Postgres
 
 TODO: Maintenance recommendations for Postgres. 
diff --git a/docs/advanced/index.md b/docs/advanced/index.md
index 81773801f..196c2b959 100644
--- a/docs/advanced/index.md
+++ b/docs/advanced/index.md
@@ -15,3 +15,4 @@ We consider these topics advanced because applying them incorrectly does have th
 * [Firewall configuration](security/firewall.md)
 * [Tracing](tracing.md)
 * [Metrics](metrics.md)
+* [Replicating SQLite](replicating-sqlite.md)
diff --git a/docs/advanced/replicating-sqlite.md b/docs/advanced/replicating-sqlite.md
new file mode 100644
index 000000000..7de5f19a5
--- /dev/null
+++ b/docs/advanced/replicating-sqlite.md
@@ -0,0 +1,104 @@
+# Replicating SQLite
+
+Next to your regular [backup methods](../admin/backup_and_restore.md), you might want to set up replication for disaster recovery to another path or external host.
+
+For this to work properly, SQLite needs the journal mode to be configured in `WAL` mode, with synchronous mode set to `NORMAL`. This is the default configuration for GoToSocial.
+
+You can check your settings in the configuration file. The journal mode is set in `db-sqlite-journal-mode` and the synchronous mode in `db-sqlite-synchronous`.
+
+## Litestream on Linux
+
+A relatively light, and fast way to set up replication with SQLite is by using [Litestream](https://litestream.io). It can be configured very easily and supports different backends like file based replication, S3 compatible storage and many other setups.
+
+You can then install the prebuilt package by either the deb file on Linux, or building it from source on other distributions.
+
+Using a .deb package on Linux:
+
+Navigate to the [releases page](https://github.com/benbjohnson/litestream/releases/latest), and download the latest release (make sure to select the appropiate platform for the wget command below).
+
+
+```bash
+wget https://github.com/benbjohnson/litestream/releases/download/v0.3.13/litestream-v0.3.13-linux-amd64.deb
+sudo dpkg -i litestream-*.deb
+```
+
+## Configuring Litestream
+
+Configuration is done by editing the configuration file. It's located in /etc/litestream.yml.
+
+### Configuring file based replication
+
+```yaml
+dbs:
+    - path: /gotosocial/sqlite.db
+      - path: /backup/sqlite.db
+```
+
+### Configuring S3 based replication
+
+Set up a bucket for replication, and make sure to set it to be private.
+Make sure to replace the example `access-key-id` and `secret-access-key` with the proper values from your dashboard.
+
+```yaml
+access-key-id: AKIAJSIE27KKMHXI3BJQ
+secret-access-key: 5bEYu26084qjSFyclM/f2pz4gviSfoOg+mFwBH39
+
+dbs:
+    - path: /gotosocial/sqlite.db
+      - url: s3://my.bucket.com/db
+
+```
+
+When using a S3 compatible storage provider you will need to set an endpoint.
+For example for minio this can be done with the following configuration.
+
+```yaml
+access-key-id: miniouser
+secret-access-key: miniopassword
+
+dbs:
+    - path: /gotosocial/sqlite.db
+      - type: s3
+	    bucket: mybucket
+		path: sqlite.db
+		endpoint: minio:9000
+```
+
+## Enabling replication
+
+You can enable replication on Linux by enabling the Litestream service.
+
+```bash
+sudo systemctl enable litestream
+sudo systemctl start litestream
+```
+
+Check if it's running properly using `sudo journalctl -u litestream -f`.
+
+If you need to change the configuration file, restart Litestream:
+
+```bash
+sudo systemctl restart litestream
+```
+
+### Recovering from the configured backend
+
+You can pull down a recovery file from the stored backend with the following simple command.
+
+```bash
+sudo litestream restore
+```
+
+If you have configured multiple files to be backupped, or have multiple replicas, specify what you want to do.
+
+For filebased replication:
+
+```bash
+sudo litestream restore -o /gotosocial/sqlite.db /backup/sqlite.db
+```
+
+For s3 based replication:
+
+```bash
+sudo litestream restore -o /gotosocial/sqlite.db s3://bucketname/db
+```
diff --git a/mkdocs.yml b/mkdocs.yml
index a9dbf68cb..6b79a3d1a 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -113,6 +113,7 @@ nav:
     - "advanced/healthchecks.md"
     - "advanced/tracing.md"
     - "advanced/metrics.md"
+    - "advanced/replicating-sqlite.md"
 
   - "Admin":
       - "admin/settings.md"