refactor: consolidate page titles

This commit is contained in:
Nicolas Meienberger
2025-11-08 14:04:06 +01:00
parent a1ef34118c
commit ef5d95d347
13 changed files with 56 additions and 14 deletions

View File

@@ -155,7 +155,7 @@ docker compose up -d
Ironmount can also be used as a Docker volume plugin, allowing you to mount your volumes directly into other Docker containers. This enables seamless integration with your containerized applications.
In order to enable this feature, you need to run Ironmount with privileged modek and mount several items from the host. Here is an example of how to set this up in your `docker-compose.yml` file:
In order to enable this feature, you need to run Ironmount with privileged mode and mount several items from the host. Here is an example of how to set this up in your `docker-compose.yml` file:
```diff
services:

View File

@@ -10,9 +10,20 @@ import { Button } from "~/components/ui/button";
import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "~/components/ui/form";
import { Input } from "~/components/ui/input";
import { authMiddleware } from "~/middleware/auth";
import type { Route } from "./+types/login";
export const clientMiddleware = [authMiddleware];
export function meta(_: Route.MetaArgs) {
return [
{ title: "Login" },
{
name: "description",
content: "Sign in to your Ironmount account.",
},
];
}
const loginSchema = type({
username: "2<=string<=50",
password: "string>=1",

View File

@@ -10,9 +10,20 @@ import { Button } from "~/components/ui/button";
import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from "~/components/ui/form";
import { Input } from "~/components/ui/input";
import { authMiddleware } from "~/middleware/auth";
import type { Route } from "./+types/onboarding";
export const clientMiddleware = [authMiddleware];
export function meta(_: Route.MetaArgs) {
return [
{ title: "Onboarding" },
{
name: "description",
content: "Welcome to Ironmount. Create your admin account to get started.",
},
];
}
const onboardingSchema = type({
username: "2<=string<=50",
password: "string>=8",

View File

@@ -19,6 +19,16 @@ import type { Route } from "./+types/backup-details";
import { SnapshotFileBrowser } from "../components/snapshot-file-browser";
import { SnapshotTimeline } from "../components/snapshot-timeline";
export function meta(_: Route.MetaArgs) {
return [
{ title: "Backup Job Details" },
{
name: "description",
content: "View and manage backup job configuration, schedule, and snapshots.",
},
];
}
export const clientLoader = async ({ params }: Route.LoaderArgs) => {
const { data } = await getBackupSchedule({ path: { scheduleId: params.id } });

View File

@@ -11,10 +11,10 @@ import type { Route } from "./+types/backups";
export function meta(_: Route.MetaArgs) {
return [
{ title: "Ironmount" },
{ title: "Backup Jobs" },
{
name: "description",
content: "Create, manage, monitor, and automate your Docker volumes with ease.",
content: "Automate volume backups with scheduled jobs and retention policies.",
},
];
}

View File

@@ -20,10 +20,10 @@ import { listRepositories, listVolumes } from "~/api-client";
export function meta(_: Route.MetaArgs) {
return [
{ title: "Ironmount" },
{ title: "Create Backup Job" },
{
name: "description",
content: "Create, manage, monitor, and automate your Docker volumes with ease.",
content: "Create a new automated backup job for your volumes.",
},
];
}

View File

@@ -17,10 +17,10 @@ import { EmptyState } from "~/components/empty-state";
export function meta(_: Route.MetaArgs) {
return [
{ title: "Ironmount - Repositories" },
{ title: "Repositories" },
{
name: "description",
content: "Manage your backup repositories",
content: "Manage your backup repositories with encryption and compression.",
},
];
}

View File

@@ -27,10 +27,10 @@ import { RepositorySnapshotsTabContent } from "../tabs/snapshots";
export function meta({ params }: Route.MetaArgs) {
return [
{ title: `Ironmount - ${params.name}` },
{ title: params.name },
{
name: "description",
content: "Manage your restic backup repositories with ease.",
content: "View repository configuration, status, and snapshots.",
},
];
}

View File

@@ -7,6 +7,16 @@ import { SnapshotFileBrowser } from "~/modules/backups/components/snapshot-file-
import { getSnapshotDetails } from "~/api-client";
import type { Route } from "./+types/snapshot-details";
export function meta({ params }: Route.MetaArgs) {
return [
{ title: `Snapshot ${params.snapshotId}` },
{
name: "description",
content: "Browse and restore files from a backup snapshot.",
},
];
}
export const clientLoader = async ({ params }: Route.ClientLoaderArgs) => {
const snapshot = await getSnapshotDetails({ path: { name: params.name, snapshotId: params.snapshotId } });
if (snapshot.data) return snapshot.data;

View File

@@ -13,7 +13,7 @@ import type { Route } from "./+types/settings";
export function meta(_: Route.MetaArgs) {
return [
{ title: "Settings - Ironmount" },
{ title: "Settings" },
{
name: "description",
content: "Manage your account settings and preferences.",

View File

@@ -32,10 +32,10 @@ import { DockerTabContent } from "../tabs/docker";
export function meta({ params }: Route.MetaArgs) {
return [
{ title: `Ironmount - ${params.name}` },
{ title: params.name },
{
name: "description",
content: "Create, manage, monitor, and automate your Docker volumes with ease.",
content: "View and manage volume details, configuration, and files.",
},
];
}

View File

@@ -17,7 +17,7 @@ import type { Route } from "./+types/volumes";
export function meta(_: Route.MetaArgs) {
return [
{ title: "Ironmount" },
{ title: "Volumes" },
{
name: "description",
content: "Create, manage, monitor, and automate your Docker volumes with ease.",

View File

@@ -15,7 +15,7 @@ services:
ports:
- "4096:4097"
volumes:
- /var/lib/ironmount/:/var/lib/ironmount/
- /var/lib/ironmount:/var/lib/ironmount
- ./apps/client/app:/app/apps/client/app
- ./apps/server/src:/app/apps/server/src