From b711aa510a29745324ed9fb14f7a005593729f9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anders=20B=C3=B6ttcher?=
Date: Wed, 13 May 2026 13:57:27 +0200
Subject: [PATCH] feat: rename Updaterup to Daterup and update related links
and metadata
---
frontend/app/components/ProductTabs.tsx | 10 +++---
frontend/app/components/TerminalTyper.tsx | 38 ++++++++++----------
frontend/app/{updaterup => daterup}/page.tsx | 34 +++++++++---------
frontend/app/login/LoginForm.tsx | 5 +--
frontend/app/page.tsx | 10 +++---
frontend/lib/links-db.ts | 4 +--
frontend/lib/links.ts | 10 +++---
7 files changed, 56 insertions(+), 55 deletions(-)
rename frontend/app/{updaterup => daterup}/page.tsx (95%)
diff --git a/frontend/app/components/ProductTabs.tsx b/frontend/app/components/ProductTabs.tsx
index 1fee4f8..8525bd2 100644
--- a/frontend/app/components/ProductTabs.tsx
+++ b/frontend/app/components/ProductTabs.tsx
@@ -5,14 +5,14 @@ import { usePathname } from "next/navigation";
export default function ProductTabs() {
const pathname = usePathname();
- const isUpdaterup = pathname.startsWith("/updaterup");
+ const isDaterup = pathname.startsWith("/daterup");
return (
- Updaterup
+ Daterup
);
diff --git a/frontend/app/components/TerminalTyper.tsx b/frontend/app/components/TerminalTyper.tsx
index 00f766e..e4ac044 100644
--- a/frontend/app/components/TerminalTyper.tsx
+++ b/frontend/app/components/TerminalTyper.tsx
@@ -6,7 +6,7 @@ import { LINKS } from "@/lib/links";
export interface TerminalLinks {
dockerImage?: string;
uiPort?: string;
- updaterupDockerImage?: string;
+ daterupDockerImage?: string;
}
interface Line {
@@ -65,37 +65,37 @@ function buildDockerComposeLines(links: TerminalLinks): Line[] {
];
}
-function buildUpdaterupRunLines(links: TerminalLinks): Line[] {
- const updaterupDockerImage = links.updaterupDockerImage ?? LINKS.updaterupDockerImage;
+function buildDaterupRunLines(links: TerminalLinks): Line[] {
+ const daterupDockerImage = links.daterupDockerImage ?? LINKS.daterupDockerImage;
return [
- { type: "comment", text: "# Quick start: Run Updaterup directly" },
- { type: "cmd", text: "docker run -d --name updaterup \\", copyable: true },
+ { type: "comment", text: "# Quick start: Run Daterup directly" },
+ { type: "cmd", text: "docker run -d --name daterup \\", copyable: true },
{ type: "cmd-cont", text: " -p 8080:80 \\", copyable: true },
{ type: "cmd-cont", text: " -v /var/run/docker.sock:/var/run/docker.sock \\", copyable: true },
- { type: "cmd-cont", text: " -v updaterup-config:/app/config \\", copyable: true },
- { type: "cmd-cont", text: ` ${updaterupDockerImage}`, copyable: true },
+ { type: "cmd-cont", text: " -v daterup-config:/app/config \\", copyable: true },
+ { type: "cmd-cont", text: ` ${daterupDockerImage}`, copyable: true },
{ type: "output", text: "b3c91d2e4f07" },
{ type: "success", text: "✓ Container started" },
{ type: "success", text: "✓ Ready at http://localhost:8080" },
];
}
-function buildUpdaterupComposeLines(links: TerminalLinks): Line[] {
- const updaterupDockerImage = links.updaterupDockerImage ?? LINKS.updaterupDockerImage;
+function buildDaterupComposeLines(links: TerminalLinks): Line[] {
+ const daterupDockerImage = links.daterupDockerImage ?? LINKS.daterupDockerImage;
return [
- { type: "comment", text: "# Using docker-compose for Updaterup" },
+ { type: "comment", text: "# Using docker-compose for Daterup" },
{ type: "cmd", text: "cat > docker-compose.yml << 'EOF'", copyable: false },
{ type: "output", text: "services:" },
- { type: "output", text: " updaterup:" },
- { type: "output", text: ` image: ${updaterupDockerImage}` },
+ { type: "output", text: " daterup:" },
+ { type: "output", text: ` image: ${daterupDockerImage}` },
{ type: "output", text: " ports:" },
{ type: "output", text: " - \"8080:80\"" },
{ type: "output", text: " volumes:" },
{ type: "output", text: " - /var/run/docker.sock:/var/run/docker.sock" },
- { type: "output", text: " - updaterup-config:/app/config" },
+ { type: "output", text: " - daterup-config:/app/config" },
{ type: "output", text: " restart: unless-stopped" },
{ type: "output", text: "volumes:" },
- { type: "output", text: " updaterup-config:" },
+ { type: "output", text: " daterup-config:" },
{ type: "output", text: "EOF" },
{ type: "success", text: "✓ docker-compose.yml created" },
{ type: "cmd", text: "docker compose up -d", copyable: false },
@@ -104,11 +104,11 @@ function buildUpdaterupComposeLines(links: TerminalLinks): Line[] {
];
}
-function buildLines(mode: "docker-run" | "docker-compose" | "updaterup" | "updaterup-compose" = "docker-run", links: TerminalLinks = {}): Line[] {
+function buildLines(mode: "docker-run" | "docker-compose" | "daterup" | "daterup-compose" = "docker-run", links: TerminalLinks = {}): Line[] {
switch (mode) {
case "docker-compose": return buildDockerComposeLines(links);
- case "updaterup": return buildUpdaterupRunLines(links);
- case "updaterup-compose": return buildUpdaterupComposeLines(links);
+ case "daterup": return buildDaterupRunLines(links);
+ case "daterup-compose": return buildDaterupComposeLines(links);
default: return buildDockerRunLines(links);
}
}
@@ -142,7 +142,7 @@ function linePrompt(line: Line): string {
return "";
}
-export default function TerminalTyper({ mode = "docker-run", links = {} }: { mode?: "docker-run" | "docker-compose" | "updaterup" | "updaterup-compose"; links?: TerminalLinks } = {}) {
+export default function TerminalTyper({ mode = "docker-run", links = {} }: { mode?: "docker-run" | "docker-compose" | "daterup" | "daterup-compose"; links?: TerminalLinks } = {}) {
const LINES = buildLines(mode, links);
const [doneLines, setDoneLines] = useState([]);
const [current, setCurrent] = useState<{ idx: number; chars: number } | null>({ idx: 0, chars: 0 });
@@ -151,7 +151,7 @@ export default function TerminalTyper({ mode = "docker-run", links = {} }: { mod
const copyToClipboard = () => {
let textToCopy = "";
- if (mode === "docker-compose" || mode === "updaterup-compose") {
+ if (mode === "docker-compose" || mode === "daterup-compose") {
// For docker-compose, copy the YAML content only
const startIdx = LINES.findIndex(line => line.type === "output" && line.text === "services:");
const endIdx = LINES.findIndex((line, i) => i > startIdx && line.type === "output" && line.text === "EOF");
diff --git a/frontend/app/updaterup/page.tsx b/frontend/app/daterup/page.tsx
similarity index 95%
rename from frontend/app/updaterup/page.tsx
rename to frontend/app/daterup/page.tsx
index c7d2e04..6abcd4c 100644
--- a/frontend/app/updaterup/page.tsx
+++ b/frontend/app/daterup/page.tsx
@@ -8,7 +8,7 @@ import { LINKS } from "@/lib/links";
import { getLinks } from "@/lib/links-db";
export const metadata: Metadata = {
- title: "Updaterup — Docker Container Updates",
+ title: "Daterup — Docker Container Updates",
description:
"Automated Docker container update manager. Check running containers for new image versions and update them in one click — or on a cron schedule.",
};
@@ -112,7 +112,7 @@ const features = [
iconBg: "bg-indigo-500/10",
iconColor: "text-indigo-400",
title: "Batch operations",
- body: "Check or update all containers at once with a single click. Updaterup handles each container sequentially to avoid Docker socket contention.",
+ body: "Check or update all containers at once with a single click. Daterup handles each container sequentially to avoid Docker socket contention.",
},
{
icon: ,
@@ -140,7 +140,7 @@ const steps = [
icon: ,
color: "bg-violet-500/20 text-violet-400",
title: "Connect",
- body: "Mount the Docker socket. Updaterup auto-discovers all running containers immediately on startup.",
+ body: "Mount the Docker socket. Daterup auto-discovers all running containers immediately on startup.",
},
{
n: "02",
@@ -161,7 +161,7 @@ const steps = [
icon: ,
color: "bg-indigo-500/20 text-indigo-400",
title: "Update",
- body: "One click to update — Updaterup stops, removes, and recreates the container with zero config drift.",
+ body: "One click to update — Daterup stops, removes, and recreates the container with zero config drift.",
},
];
@@ -180,7 +180,7 @@ const stats = [
];
/* ── Page ───────────────────────────────────────────────────── */
-export default async function UpdaterupPage() {
+export default async function DaterupPage() {
const links = await getLinks();
return (
<>
@@ -251,7 +251,7 @@ export default async function UpdaterupPage() {
className="mx-auto mt-7 max-w-2xl text-lg leading-relaxed text-slate-400"
style={{ animation: "slideUp 0.75s cubic-bezier(0.22,1,0.36,1) 380ms both" }}
>
- Updaterup watches your running containers for new image versions and lets you update
+ Daterup watches your running containers for new image versions and lets you update
them with a single click — or automatically on a cron schedule. Zero config drift,
full audit history, all from a self-hosted UI.
@@ -262,7 +262,7 @@ export default async function UpdaterupPage() {
style={{ animation: "slideUp 0.75s cubic-bezier(0.22,1,0.36,1) 520ms both" }}
>
- updaterup · quick start
+ daterup · quick start
live
-
+
@@ -428,7 +428,7 @@ export default async function UpdaterupPage() {
Zero config drift, guaranteed
- When Updaterup recreates a container, it reads the full{" "}
+ When Daterup recreates a container, it reads the full{" "}
docker inspect output
and rebuilds the container with the exact same configuration — nothing is lost
or changed except the image digest.
@@ -455,7 +455,7 @@ export default async function UpdaterupPage() {
@@ -539,11 +539,11 @@ export default async function UpdaterupPage() {
Open source, self-hosted, and free forever. Stop manually checking for image updates
- and let Updaterup handle it automatically.
+ and let Daterup handle it automatically.