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() {

- The easiest way to get Updaterup running is with docker-compose for declarative, reproducible deployments. + The easiest way to get Daterup running is with docker-compose for declarative, reproducible deployments.

@@ -513,7 +513,7 @@ export default async function UpdaterupPage() { docker-compose setup
- +
@@ -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.

- {/* Updaterup card */} + {/* Daterup card */}}
@@ -595,7 +595,7 @@ export default async function LandingPage() { New
-

Updaterup

+

Daterup

Docker container update manager. Continuously checks your running containers for new image versions and lets you update them with a single click — or automatically @@ -619,14 +619,14 @@ export default async function LandingPage() {

- Explore Updaterup → + Explore Daterup →