24 lines
697 B
TypeScript
24 lines
697 B
TypeScript
import { storeJson } from './fileModels/store.json'
|
|
import { sdk } from './sdk'
|
|
import { databaseName, databaseUser } from './utils'
|
|
|
|
export const { createBackup, restoreInit } = sdk.setupBackups(async () =>
|
|
sdk.Backups.withPgDump({
|
|
imageId: 'postgres',
|
|
dbVolume: 'postgres',
|
|
mountpoint: '/var/lib/postgresql',
|
|
pgdataPath: '/data',
|
|
database: databaseName,
|
|
user: databaseUser,
|
|
password: async () => {
|
|
const password = await storeJson
|
|
.read(value => value.databasePassword)
|
|
.once()
|
|
if (!password) throw new Error('Database password is not initialized')
|
|
return password
|
|
},
|
|
})
|
|
.addVolume('config')
|
|
.addVolume('storage'),
|
|
)
|