Blame

e5fe93 theophile 2025-10-07 13:37:58 1
# Backup & Restore
2
3
Cette page est dédier à la sauvegarde et restoration des services sur le serveur.
1d634d admin 2025-09-03 14:28:17 4
5
## Services
8da001 admin 2025-09-03 14:29:02 6
> [!NOTE]
69cfe3 admin 2025-09-03 14:29:18 7
> As of _25/08/08_ → **20 GiB** approximatly. It should not grow very fast, since it is
8da001 admin 2025-09-03 14:29:02 8
> mostly configuration files and a text wiki.
1d634d admin 2025-09-03 14:28:17 9
3aae9d theophile 2025-10-07 14:33:16 10
**Large Media** is backed up seperatly when necessary:
1d634d admin 2025-09-03 14:28:17 11
12
- jellyfin
13
- navidrome
14
64543b theophile 2025-10-07 15:53:14 15
:::warning
16
# Stop containers before making backups.
17
This is safer for data.
18
:::
19
3aae9d theophile 2025-10-07 14:33:16 20
---
24f926 theophile 2025-10-07 14:28:22 21
aff08e theophile 2025-10-07 14:51:59 22
### Otterwiki ✅
1d634d admin 2025-09-03 14:28:17 23
4ae2a9 admin 2025-09-03 18:11:23 24
OtterWiki being a flatfile wiki, we can back it up by simply copying the
64543b theophile 2025-10-07 15:53:14 25
`/mnt/data/otterwiki` folder and restoring it.
1d634d admin 2025-09-03 14:28:17 26
3aae9d theophile 2025-10-07 14:33:16 27
---
28
aff08e theophile 2025-10-07 14:51:59 29
### Forgejo ✅
094334 theophile 2025-09-28 20:49:23 30
64543b theophile 2025-10-07 15:53:14 31
**Backup**
e5fe93 theophile 2025-10-07 13:37:58 32
33
[Based on the documentation](https://forgejo.org/docs/latest/admin/upgrade/#backup) and [this analysis of gitea backups](https://codeberg.org/forgejo/forgejo/src/tag/v1.21.3-0/docs/content/administration/backup-and-restore.en-us.md), we can run
094334 theophile 2025-09-28 20:49:23 34
35
```bash
8c9c43 theophile 2025-10-07 15:53:50 36
e5fe93 theophile 2025-10-07 13:37:58 37
docker compose exec -u git forgejo forgejo dump --file /tmp/forgejo-dump.zip
8c9c43 theophile 2025-10-07 15:53:50 38
094334 theophile 2025-09-28 20:49:23 39
```
8c9c43 theophile 2025-10-07 15:53:50 40
e5fe93 theophile 2025-10-07 13:37:58 41
Then copy out the file and rename it at the same time:
42
43
```bash
44
docker compose cp forgejo:/tmp/forgejo-dump.zip /mnt/data/backups/forgejo/forgejo-backup-$(date +%Y%m%d-%H%M%S).zip
45
```
46
47
Pour finir, on supprime l'archive du dossier /tmp dans le container:
48
49
```bash
50
docker compose exec forgejo rm /tmp/forgejo-dump.zip
51
```
52
64543b theophile 2025-10-07 15:53:14 53
**Restore**
e5fe93 theophile 2025-10-07 13:37:58 54
e299e7 theophile 2025-10-07 14:27:18 55
Move all relevant files to their location in the mounted volumes:
56
57
```bash
58
59
docker compose up
60
# Arreter un peu après. C'est pour générer la structure de dossiers.
61
unzip forgejo-dump-1610949662.zip
62
cd forgejo-dump-1610949662
63
mv app.ini $FORGEJO_DATA_DIR/gitea/conf/app.ini
64
mv data/* $FORGEJO_DATA_DIR/gitea/data/
65
mv log/* $FORGEJO_DATA_DIR/gitea/log/
66
mv repos/* $FORGEJO_DATA_DIR/git/repositories/
67
chown -R docker:docker $FORGEJO_DATA_DIR/
68
69
# Je garde les commandes ci-dessous comme archives. La db se trouve déjà dans data/.
70
# De fait, on peut s'arrêter là, et on a pas besoin du dump, car sqlite3 est en format single file.
71
72
# sqlite3
73
# sqlite3 $DATABASE_PATH <gitea-db.sql
74
75
# Commandes pour d'autres types de DB:
76
# mysql
77
# mysql --default-character-set=utf8mb4 -u$USER -p$PASS $DATABASE <gitea-db.sql
78
# postgres
79
# psql -U $USER -d $DATABASE < gitea-db.sql
80
81
```
e5fe93 theophile 2025-10-07 13:37:58 82
3aae9d theophile 2025-10-07 14:33:16 83
---
094334 theophile 2025-09-28 20:49:23 84
1d634d admin 2025-09-03 14:28:17 85
### Jellyfin
86
87
[Backup and Restore → jellyfin.org](https://jellyfin.org/docs/general/administration/backup-and-restore)
88
669a6e theophile 2025-10-22 13:50:45 89
**Backup**
90
91
1. Stop the container completly
92
2. Copy the config folder → `/mnt/data/jellyfin/config`
93
94
Alternatively,
95
96
> To take a new Backup, enter the **Jellyfin Dashboard**, open the **Backups** tab and click on the **Create Backup** button. The popup will now ask you to select what data you want to backup.
97
>
98
> - **Database**. Always enabled. Will contain all data from the jellyfin.db or used database provider.
99
> - **Metadata**. The contents of the metadata folder and depending on your selected options may contain metadata images.
100
> - **Subtitles**. All extracted subtitles including downloaded ones.
101
> - **Trickplay**. All trickplay data that is stored not alongside media.
102
>
103
>The Backup system will check for at least 4GB of free space in the backup folder where backups a written to. However this can easily not be enough if you also backup Subtitles and Trickplay so ensure you have enough free space there. The Backup folder is located within your Jellyfin data directory which is located in
104
4546d2 theophile 2025-11-26 11:22:41 105
[Jellyfin Docker Backup Without Metadata](https://forum.jellyfin.org/t-jellyfin-docker-backup-without-metadata) → we can apparently safely ignore the `metadata` folder, which is the largest folder in `config`.
106
669a6e theophile 2025-10-22 13:50:45 107
**Restore**
108
109
> To restore from a Backup you can either use the webUI by navigating to the same view as for the step above and clicking on the restore button in the list of backups, or you can start jellyfin with the `--restore-archive PATH_TO_BACKUP_ZIP` argument. Note that when you start a restore from the webUI, you server will immediately restart for this process to take place and will be unavailable for that time.
1d634d admin 2025-09-03 14:28:17 110
3aae9d theophile 2025-10-07 14:33:16 111
---
112
1d634d admin 2025-09-03 14:28:17 113
### Kavita
114
115
[Backups → wiki.kavitareader.com](https://wiki.kavitareader.com/guides/admin-settings/tasks/#kavita-backup)
116
117
Backups are already generated, in `/mnt/data/kavita/config/backups`.
118
3aae9d theophile 2025-10-07 14:33:16 119
---
120
1d634d admin 2025-09-03 14:28:17 121
### Navidrome
122
123
[Automated Backup → navidrome.org](https://www.navidrome.org/docs/usage/backup/)
124
c885e2 theophile 2025-10-12 23:16:17 125
**Backup**
9d5404 theophile 2025-10-10 16:01:27 126
1d634d admin 2025-09-03 14:28:17 127
Backup can be automated via config file or env variables. Location is
128
`/mnt/data/navidrome/backup`.
129
9d5404 theophile 2025-10-10 16:01:27 130
Alternatively, we can also directly start a backup from inside the container:
131
132
```bash
133
sudo docker compose run <service_name> backup create
134
# service_name is usually `navidrome`
135
```
136
137
We can also prune old backups with:
138
139
```bash
140
sudo docker compose run <service_name> backup prune
141
# service_name is usually `navidrome`
142
```
c885e2 theophile 2025-10-12 23:16:17 143
**Restore**
9d5404 theophile 2025-10-10 16:01:27 144
145
When you restore a backup, the existing data in the database is wiped and the data in the backup gets copied into the database.
146
147
Note: YOU MUST BE SURE TO RUN THIS COMMAND WHILE THE NAVIDROME APP IS NOT RUNNING/LIVE.
148
149
Restore a backup by running the navidrome backup restore command.
150
:::warning
151
Attention
152
Restoring a backup should ONLY be done when the service is NOT running. You’ve been warned.
153
:::
154
3aae9d theophile 2025-10-07 14:33:16 155
---
156
6518e9 theophile 2025-10-07 16:10:26 157
### Miniflux ✅
1d634d admin 2025-09-03 14:28:17 158
64543b theophile 2025-10-07 15:53:14 159
**Backups**
160
1d634d admin 2025-09-03 14:28:17 161
[FAQ → miniflux.app](https://miniflux.app/faq.html#backup)
162
163
[postgresql dump restore → postgresql.org](https://www.postgresql.org/docs/current/backup-dump.html)
164
64543b theophile 2025-10-07 15:53:14 165
Miniflux stores all it's data in a PostgreSQL db.
166
167
We can dump it with:
168
169
```bash
170
docker compose exec -T db pg_dump -U miniflux miniflux > miniflux_backup.sql
171
```
172
173
**Restore**
174
175
Start the db service:
1d634d admin 2025-09-03 14:28:17 176
177
```bash
64543b theophile 2025-10-07 15:53:14 178
docker compose up -d db
1d634d admin 2025-09-03 14:28:17 179
```
180
64543b theophile 2025-10-07 15:53:14 181
Then run the dump restoration command:
182
183
```bash
184
cat ./miniflux_backup.sql | podman-compose exec -T db psql -U miniflux miniflux
185
```
186
187
Then start the miniflux service:
188
189
```bash
190
docker compose up -d miniflux
191
```
1d634d admin 2025-09-03 14:28:17 192
3aae9d theophile 2025-10-07 14:33:16 193
---
194
c885e2 theophile 2025-10-12 23:16:17 195
### Readeck ✅
1d634d admin 2025-09-03 14:28:17 196
197
[Backups → readeck.org](https://readeck.org/en/docs/backups)
198
c885e2 theophile 2025-10-12 23:16:17 199
**Backup**
200
1d634d admin 2025-09-03 14:28:17 201
```bash
c885e2 theophile 2025-10-12 23:16:17 202
docker compose exec app readeck export -config /readeck/config.toml /readeck/readeck_backup_"$(date +%Y%m%dT%H%M%S)".zip
1d634d admin 2025-09-03 14:28:17 203
```
204
c885e2 theophile 2025-10-12 23:16:17 205
**Restore**
1d634d admin 2025-09-03 14:28:17 206
c885e2 theophile 2025-10-12 23:16:17 207
To import:
1d634d admin 2025-09-03 14:28:17 208
c885e2 theophile 2025-10-12 23:16:17 209
```bash
210
docker compose exec app readeck import -config /readeck/config.toml /readeck/readeck_backup_"$(date +%Y%m%dT%H%M%S)".zip
211
```
5d7331 theophile 2025-10-07 18:01:31 212
3aae9d theophile 2025-10-07 14:33:16 213
---
214
c885e2 theophile 2025-10-12 23:16:17 215
### Caddy ✅
1d634d admin 2025-09-03 14:28:17 216
217
It is sufficient to backup the `/mnt/data/caddy`. The most important folders
218
inside are:
219
220
- `./Caddyfile`
221
- `./html/`
222
223
To restore, the both should be in the same folder, for the Caddyfile contains
224
the paths to the different root folders for the websites hosted.
225
3aae9d theophile 2025-10-07 14:33:16 226
---
227
5f0d87 theophile 2025-10-04 11:59:42 228
### OpenWebUI
229
230
We do not backup the `ollama` models. We only handle the `openwebui` data.
231
232
233
- [Backing Up Your Instance - openwebUI docs](https://docs.openwebui.com/tutorials/maintenance/backups/#scripting-a-backup-job)
234
235
236
**Dir structure**:
237
```
238
├── audit.log
239
├── cache/
240
├── uploads/
241
├── vector_db/
242
└── webui.db
243
```
244
1d65de theophile 2025-10-04 12:00:32 245
1. Cold backup approach - Stops the container before backup for data integrity
246
2. Copies the entire `/webui` folder including:
247
- webui.db (main database with chats, users, settings)
248
- uploads/ (uploaded files)
249
- cache/ (cached data)
250
- vector_db/ (RAG/Knowledge embeddings)
5f0d87 theophile 2025-10-04 11:59:42 251
3aae9d theophile 2025-10-07 14:33:16 252
---
5f0d87 theophile 2025-10-04 11:59:42 253
9d5404 theophile 2025-10-10 16:01:27 254
### Medama
255
256
n.a.
257
c885e2 theophile 2025-10-12 23:16:17 258
259
---
260
261
### Paperless-ngx
262
263
n.a.
264
265
9d5404 theophile 2025-10-10 16:01:27 266
---
267
1d634d admin 2025-09-03 14:28:17 268
## Missing or broken installs
269
270
- archivebox
271
- bookstack
272
- etherpad
273
- synapse