Compare commits
2 Commits
673827f9f3
...
8e90c4ace1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e90c4ace1 | ||
|
|
803eb1cd76 |
@@ -249,21 +249,18 @@ const checkHealth = async (repositoryId: string) => {
|
|||||||
throw new NotFoundError("Repository not found");
|
throw new NotFoundError("Repository not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
const { error, status } = await restic
|
const { hasErrors, error } = await restic.check(repository.config, { readData: true });
|
||||||
.snapshots(repository.config)
|
|
||||||
.then(() => ({ error: null, status: "healthy" as const }))
|
|
||||||
.catch((error) => ({ error: toMessage(error), status: "error" as const }));
|
|
||||||
|
|
||||||
await db
|
await db
|
||||||
.update(repositoriesTable)
|
.update(repositoriesTable)
|
||||||
.set({
|
.set({
|
||||||
status,
|
status: hasErrors ? "error" : "healthy",
|
||||||
lastChecked: Date.now(),
|
lastChecked: Date.now(),
|
||||||
lastError: error,
|
lastError: error,
|
||||||
})
|
})
|
||||||
.where(eq(repositoriesTable.id, repository.id));
|
.where(eq(repositoriesTable.id, repository.id));
|
||||||
|
|
||||||
return { status, lastError: error };
|
return { lastError: error };
|
||||||
};
|
};
|
||||||
|
|
||||||
const doctorRepository = async (name: string) => {
|
const doctorRepository = async (name: string) => {
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,21 +1,21 @@
|
|||||||
{
|
{
|
||||||
"name": "Zerobyte",
|
"name": "Zerobyte",
|
||||||
"short_name": "Zerobyte",
|
"short_name": "Zerobyte",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "/images/favicon/web-app-manifest-192x192.png",
|
"src": "/images/favicon/web-app-manifest-192x192.png",
|
||||||
"sizes": "192x192",
|
"sizes": "192x192",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"src": "/images/favicon/web-app-manifest-512x512.png",
|
"src": "/images/favicon/web-app-manifest-512x512.png",
|
||||||
"sizes": "512x512",
|
"sizes": "512x512",
|
||||||
"type": "image/png",
|
"type": "image/png",
|
||||||
"purpose": "maskable"
|
"purpose": "maskable"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"theme_color": "#1b1b1b",
|
"theme_color": "#1b1b1b",
|
||||||
"background_color": "#1b1b1b",
|
"background_color": "#1b1b1b",
|
||||||
"display": "standalone"
|
"display": "standalone"
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 28 KiB |