+ >
+ );
+}
diff --git a/app/layout.tsx b/app/layout.tsx
new file mode 100644
index 0000000..cfcc242
--- /dev/null
+++ b/app/layout.tsx
@@ -0,0 +1,55 @@
+import { Jost } from "next/font/google";
+import "./globals.css";
+import Script from "next/script";
+
+const jost = Jost({
+ weight: ["400", "500", "600", "700", "800"],
+ style: ["normal"],
+ subsets: ["latin"],
+ display: "swap",
+});
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+
+
+ {children}
+
+
+
+
+
+ );
+}
diff --git a/app/not-found.tsx b/app/not-found.tsx
new file mode 100644
index 0000000..9ceb20c
--- /dev/null
+++ b/app/not-found.tsx
@@ -0,0 +1,112 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+import Image from "next/image";
+
+export const metadata: Metadata = {
+ title: "404 - Page Not Found | Postgresus",
+ description: "The page you're looking for doesn't exist.",
+ robots: "noindex, nofollow",
+};
+
+export default function NotFound() {
+ return (
+
+ {/* Navbar */}
+
+
+ {/* 404 Content */}
+
+
+
404
+
+
+
+ Page Not Found
+
+
+
+ The page you're looking for doesn't exist or has been moved.
+
+
+
+
+ Go to Homepage
+
+
+
+ View Documentation
+
+
+
+
+ {/* Footer */}
+
+
+ );
+}
diff --git a/app/notifiers/page.tsx b/app/notifiers/page.tsx
new file mode 100644
index 0000000..1262307
--- /dev/null
+++ b/app/notifiers/page.tsx
@@ -0,0 +1,136 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+import DocsNavbarComponent from "../components/DocsNavbarComponent";
+import DocsSidebarComponent from "../components/DocsSidebarComponent";
+import DocTableOfContentComponent from "../components/DocTableOfContentComponent";
+
+export const metadata: Metadata = {
+ title: "Notifiers - Postgresus Documentation",
+ description:
+ "List of supported notification channels for Postgresus backup alerts including Slack, Discord, Telegram, Microsoft Teams, Email and Webhooks.",
+ keywords: [
+ "Postgresus notifiers",
+ "backup notifications",
+ "Slack notifications",
+ "Discord alerts",
+ "Telegram notifications",
+ "Teams notifications",
+ "Email alerts",
+ "Webhook notifications",
+ ],
+ openGraph: {
+ title: "Notifiers - Postgresus Documentation",
+ description:
+ "List of supported notification channels for Postgresus backup alerts including Slack, Discord, Telegram, Microsoft Teams, Email and Webhooks.",
+ type: "article",
+ url: "https://postgresus.com/notifiers",
+ },
+ twitter: {
+ card: "summary",
+ title: "Notifiers - Postgresus Documentation",
+ description:
+ "List of supported notification channels for Postgresus backup alerts including Slack, Discord, Telegram, Microsoft Teams, Email and Webhooks.",
+ },
+ alternates: {
+ canonical: "https://postgresus.com/notifiers",
+ },
+ robots: "index, follow",
+};
+
+export default function NotifiersPage() {
+ return (
+ <>
+ {/* JSON-LD Structured Data */}
+
+
+
+
+
+ {/* Sidebar */}
+
+
+ {/* Main Content */}
+
+
+
+
Notifiers
+
+
+ Postgresus supports multiple notification channels to keep you
+ informed about your PostgreSQL backup status. Get instant alerts
+ when backups succeed, fail or encounter issues.
+
+
+
Supported notifiers
+
+
+
+
+ Slack
+ {" "}
+ - Send notifications to Slack channels via webhooks
+
+
+ Discord - Post backup alerts to Discord
+ channels
+
+
+ Telegram - Receive notifications through
+ Telegram bots
+
+
+
+ Microsoft Teams
+ {" "}
+ - Notify your team via Microsoft Teams channels
+
+ Webhook - Custom webhook integration for any
+ service
+
+
+
+
+
+
+ {/* Table of Contents */}
+
+
+ >
+ );
+}
diff --git a/app/notifiers/slack/page.tsx b/app/notifiers/slack/page.tsx
new file mode 100644
index 0000000..de99a14
--- /dev/null
+++ b/app/notifiers/slack/page.tsx
@@ -0,0 +1,262 @@
+import type { Metadata } from "next";
+import DocsNavbarComponent from "../../components/DocsNavbarComponent";
+import DocsSidebarComponent from "../../components/DocsSidebarComponent";
+import DocTableOfContentComponent from "../../components/DocTableOfContentComponent";
+import Image from "next/image";
+
+export const metadata: Metadata = {
+ title: "How to configure Slack notifications for Postgresus | Postgresus",
+ description:
+ "Step-by-step guide to set up Slack notifications for PostgreSQL backup alerts with Postgresus. Learn how to create Slack webhook and configure notifications.",
+ keywords: [
+ "Postgresus",
+ "Slack notifications",
+ "PostgreSQL backup",
+ "Slack webhook",
+ "backup alerts",
+ "database notifications",
+ ],
+ openGraph: {
+ title: "How to configure Slack notifications for Postgresus | Postgresus",
+ description:
+ "Step-by-step guide to set up Slack notifications for PostgreSQL backup alerts with Postgresus. Learn how to create Slack webhook and configure notifications.",
+ type: "article",
+ url: "https://postgresus.com/notifiers/slack",
+ },
+ twitter: {
+ card: "summary",
+ title: "How to configure Slack notifications for Postgresus | Postgresus",
+ description:
+ "Step-by-step guide to set up Slack notifications for PostgreSQL backup alerts with Postgresus. Learn how to create Slack webhook and configure notifications.",
+ },
+ alternates: {
+ canonical: "https://postgresus.com/notifiers/slack",
+ },
+ robots: "index, follow",
+};
+
+export default function SlackPage() {
+ return (
+ <>
+ {/* JSON-LD Structured Data */}
+
+
+
+
+
+ {/* Sidebar */}
+
+
+ {/* Main Content */}
+
+
+
+
Slack notifications
+
+
+ Configure Slack to receive instant notifications about your
+ PostgreSQL backup status. Get alerts for successful backups,
+ failures and warnings directly in your Slack channels.
+
+
+
Setup Slack webhook
+
+
1. Open your Slack workspace
+
+
+ Navigate to your Slack workspace where you want to receive
+ backup notifications.
+
+
+
+
+
2. Access Slack apps
+
+
+ Click on your workspace name in the top left, then select{" "}
+ "Settings & administration" →{" "}
+ "Manage apps".
+
+
+
+
+
+ 3. Search for incoming webhooks
+
+
+
+ In the App Directory, search for{" "}
+ "Incoming Webhooks" and click on it.
+
+
+
+
+
4. Add to Slack
+
+
+ Click the "Add to Slack" button to
+ install the Incoming Webhooks app to your workspace.
+
+
+
+
+
5. Select channel
+
+
+ Choose the channel where you want to receive backup
+ notifications, then click{" "}
+ "Add Incoming Webhooks integration".
+
+
+
+
+
6. Copy webhook URL
+
+
+ After creating the webhook, you'll see the{" "}
+ Webhook URL. Copy this URL - you'll need
+ it for Postgresus configuration.
+
+
+
+
+
Configure in Postgresus
+
+
1. Add Slack notifier
+
+
+ In Postgresus, navigate to the notifiers settings and add a new
+ Slack notifier. Paste the webhook URL you copied from Slack.
+
+
+
+
+
2. Test the notification
+
+
+ After configuring the webhook, test the notification to ensure
+ it's working correctly. You should receive a test message
+ in your selected Slack channel.
+
+
+
+ That's it! Your Slack workspace is now configured to
+ receive PostgreSQL backup notifications from Postgresus.
+
+ >
+ );
+}
diff --git a/app/notifiers/teams/page.tsx b/app/notifiers/teams/page.tsx
new file mode 100644
index 0000000..8e58e97
--- /dev/null
+++ b/app/notifiers/teams/page.tsx
@@ -0,0 +1,274 @@
+import type { Metadata } from "next";
+import DocsNavbarComponent from "../../components/DocsNavbarComponent";
+import DocsSidebarComponent from "../../components/DocsSidebarComponent";
+import DocTableOfContentComponent from "../../components/DocTableOfContentComponent";
+import Image from "next/image";
+
+export const metadata: Metadata = {
+ title:
+ "How to configure Microsoft Teams notifications for Postgresus | Postgresus",
+ description:
+ "Step-by-step guide to set up Microsoft Teams notifications for PostgreSQL backup alerts with Postgresus. Learn how to create Teams webhook and configure notifications.",
+ keywords: [
+ "Postgresus",
+ "Microsoft Teams notifications",
+ "PostgreSQL backup",
+ "Teams webhook",
+ "backup alerts",
+ "database notifications",
+ ],
+ openGraph: {
+ title:
+ "How to configure Microsoft Teams notifications for Postgresus | Postgresus",
+ description:
+ "Step-by-step guide to set up Microsoft Teams notifications for PostgreSQL backup alerts with Postgresus. Learn how to create Teams webhook and configure notifications.",
+ type: "article",
+ url: "https://postgresus.com/notifiers/teams",
+ },
+ twitter: {
+ card: "summary",
+ title:
+ "How to configure Microsoft Teams notifications for Postgresus | Postgresus",
+ description:
+ "Step-by-step guide to set up Microsoft Teams notifications for PostgreSQL backup alerts with Postgresus. Learn how to create Teams webhook and configure notifications.",
+ },
+ alternates: {
+ canonical: "https://postgresus.com/notifiers/teams",
+ },
+ robots: "index, follow",
+};
+
+export default function TeamsPage() {
+ return (
+ <>
+ {/* JSON-LD Structured Data */}
+
+
+
+
+
+ {/* Sidebar */}
+
+
+ {/* Main Content */}
+
+
+
+
Microsoft Teams notifications
+
+
+ Configure Microsoft Teams to receive instant notifications about
+ your PostgreSQL backup status. Get alerts for successful
+ backups, failures and warnings directly in your Teams channels.
+
+
+
Setup Teams webhook
+
+
1. Open your Teams channel
+
+
+ Navigate to the Microsoft Teams channel where you want to
+ receive backup notifications. Click on the three dots (
+ •••) next to the channel name.
+
+
+
+
+
2. Access workflows
+
+
+ From the channel menu, select{" "}
+ "Workflows" to open the Power
+ Automate integration.
+
+
+
+
+
3. Create new workflow
+
+
+ In the Workflows panel, click on{" "}
+ "Create" or search for{" "}
+
+ "Post to a channel when a webhook request is
+ received"
+ {" "}
+ template.
+
+
+
+
+
4. Select webhook template
+
+
+ Choose the{" "}
+
+ "Post to a channel when a webhook request is
+ received"
+ {" "}
+ template from the available options.
+
+
+
+
+
5. Configure webhook
+
+
+ Set up the webhook by providing a name (e.g.,{" "}
+ "Postgresus Backup Notifications")
+ and confirm the channel where notifications will be posted.
+
+
+
+
+
6. Copy webhook URL
+
+
+ After creating the workflow, you'll see the{" "}
+ HTTP POST URL. Copy this URL - you'll need
+ it for Postgresus configuration.
+
+
+
+
+
Configure in Postgresus
+
+
1. Add Teams notifier
+
+
+ In Postgresus, navigate to the notifiers settings and add a new
+ Microsoft Teams notifier. Paste the webhook URL you copied from
+ Teams.
+
+
+
+
+
2. Test the notification
+
+
+ After configuring the webhook, test the notification to ensure
+ it's working correctly. You should receive a test message
+ in your selected Teams channel.
+
+
+
+ That's it! Your Microsoft Teams channel is now configured
+ to receive PostgreSQL backup notifications from Postgresus.
+
+ >
+ );
+}
diff --git a/app/page.tsx b/app/page.tsx
new file mode 100644
index 0000000..80fe777
--- /dev/null
+++ b/app/page.tsx
@@ -0,0 +1,1081 @@
+import type { Metadata } from "next";
+import Image from "next/image";
+import { CopyButton } from "./components/CopyButton";
+
+export const metadata: Metadata = {
+ title: "Postgresus | PostgreSQL backup",
+ description:
+ "Free and open source tool for PostgreSQL scheduled backups. Save them locally and to clouds. Notifications to Slack, Discord, etc.",
+ keywords:
+ "PostgreSQL, backup, monitoring, database, scheduled backups, Docker, self-hosted, open source, S3, Google Drive, Slack notifications, Discord, DevOps, database monitoring, pg_dump, database restore",
+ robots: "index, follow",
+ alternates: {
+ canonical: "https://postgresus.com",
+ },
+ openGraph: {
+ type: "website",
+ url: "https://postgresus.com",
+ title: "Postgresus | PostgreSQL backup",
+ description:
+ "Free and open source tool for PostgreSQL scheduled backups. Save them locally and to clouds. Notifications to Slack, Discord, etc.",
+ images: [
+ {
+ url: "https://postgresus.com/images/index/dashboard.svg",
+ alt: "Postgresus dashboard interface showing backup management",
+ },
+ ],
+ siteName: "Postgresus",
+ locale: "en_US",
+ },
+ twitter: {
+ card: "summary_large_image",
+ title: "Postgresus | PostgreSQL backup",
+ description:
+ "Free and open source tool for PostgreSQL scheduled backups. Save them locally and to clouds. Notifications to Slack, Discord, etc.",
+ images: ["https://postgresus.com/images/index/dashboard.svg"],
+ },
+ applicationName: "Postgresus",
+ appleWebApp: {
+ title: "Postgresus",
+ capable: true,
+ },
+ icons: {
+ icon: [
+ { url: "/favicon.ico", type: "image/x-icon" },
+ { url: "/favicon.svg", type: "image/svg+xml" },
+ ],
+ apple: "/favicon.svg",
+ shortcut: "/favicon.ico",
+ },
+};
+
+export default function Index() {
+ const installScript = `sudo apt-get install -y curl && \\
+sudo curl -sSL https://raw.githubusercontent.com/RostislavDugin/postgresus/refs/heads/main/install-postgresus.sh | sudo bash`;
+
+ const dockerRun = `docker run -d \\
+ --name postgresus \\
+ -p 4005:4005 \\
+ -v ./postgresus-data:/postgresus-data \\
+ --restart unless-stopped \\
+ rostislavdugin/postgresus:latest`;
+
+ const dockerCompose = `version: "3"
+
+services:
+ postgresus:
+ container_name: postgresus
+ image: rostislavdugin/postgresus:latest
+ ports:
+ - "4005:4005"
+ volumes:
+ - ./postgresus-data:/postgresus-data
+ restart: unless-stopped`;
+
+ return (
+ <>
+ {/* JSON-LD Structured Data */}
+
+
+
+
+
+ {/* NAVBAR */}
+
+ {/* END OF NAVBAR */}
+
+ {/* MAIN SECTION */}
+
+
+
+
+ PostgreSQL backup tool
+
+
+
+ Postgresus is a free, open source and self-hosted tool to backup
+ PostgreSQL. Make backups with different storages and notifications
+ about progress
+
+
+
+
+
+
Configurable health checks with notifications
+
+
+
+
+
+ Scheduled backups (daily, weekly, at 4 AM, etc.)
+
+
+
+
+
+
Save backups locally, in S3, Google Drive and more
+ {/* END OF MAIN SECTION */}
+
+ {/* HOW TO MAKE BACKUPS SECTION */}
+
+
+
+
+ How to make backups?
+
+
+ To make PostgreSQL backup with Postgresus you need to follow
+ 4 steps. After that, you will be able to restore in one click
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+ Select required schedule
+
+
+
+ You can choose any time you need: daily, weekly, monthly and
+ particular time (like 4 AM)
+
+
+ For week interval you need to specify particular day, for
+ month you need to specify particular day
+
+
+ If your database is large, we recommend you choosing the
+ time when there are decrease in traffic
+
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+ Enter your database info
+
+
+
+ Enter credentials of your PostgreSQL database, select
+ version and target DB. Also choose whether SSL is required
+
+
+ Postgresus, by default, compress backups at balance level to
+ not slow down backup process (~20% slower) and save x4-x8 of
+ the space (that decreasing network traffic)
+
+
+
+
+
+
+
+
+
+
+
+ 3
+
+
+
+
+
+ Choose storage for backups
+
+
+
+ You can keep files with backups locally, in S3, in Google
+ Drive, NAS, Dropbox and other services
+
+
+ Please keep in mind that you need to have enough space on
+ the storage
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+ Choose where you want to receive notifications (optional)
+
+
+
+ When backup succeed or failed, Postgresus is able to send you
+ notification. It can be chat with DevOps, your emails or even
+ webhook of your team
+
+
+ We are going to support the most of popular messangers and
+ platforms
+
+
+
+
+
+
+
+
+ {/* END OF HOW TO MAKE BACKUPS SECTION */}
+
+ {/* FEATURES SECTION */}
+
+
+
+
Features
+
+
+ Postgresus provides everything you need for reliable PostgreSQL
+ backup management. From automated scheduling to multiple storage
+ options, we've got you covered.
+
+
+
+
+
+
+ Scheduled backups
+
+
+
+
+
+
+
+ Backup is a thing that should be done in specified time on
+ regular basis. So we provide many options: from hourly to
+ monthly
+
+
+
+
+
+ Notifications
+
+
+
+
+
+
+
+ You can receive notifications about success or fail of the
+ process. This is useful for developers or DevOps teams
+
+
+
+
+
+ Self hosted via Docker
+
+
+
+
+
+
+
+ Postgresus runs on your PC or VPS. Therefore, all your data is
+ owned by you and secured. Deploy takes about 2 minutes
+
+
+
+
+
+ Configurable health checks
+
+
+
+
+
+
+
+ Each minute (or any another amount of time) the system will ping
+ your database and show you the history of attempts
+
+
+ The database can be considered as down after 3 failed attempts
+ or so. Once DB is healthy again - you receive notification too
+
+
+
+
+
+ Open source and free
+
+
+
+
+
+
+
+ The project is fully open source, free and have Apache 2.0
+ license. You can copy and fork the code on your own
+
+
+
+
+
+ Many PostgreSQL versions
+
+
+
+
+
+
+
+ PostgreSQL 13, 14, 15, 16, 17 and 18 are supported by the
+ project. You can backup any version from 2020
+
+
+
+
+
+ Many destinations to store
+
+
+
+
+
+
+
+ Files are kept on VPS, cloud storages and other places. You can
+ choose any storage you. Files are always owned by you need
+
+
+
+
+
+ {/* END OF FEATURES SECTION */}
+
+ {/* INSTALLATION SECTION */}
+
+
+
+
How to install?
+
+
+ You have three ways to install Postgresus: automated script
+ (recommended), simple Docker run or Docker Compose setup.
+
+ The installation script will:
+
+ ✅ Install Docker with Docker Compose (if not already
+ installed)
+
+ ✅ Set up Postgresus
+ ✅ Configure automatic startup on system reboot
+
+ The easiest way to run Postgresus with embedded PostgreSQL.
+ This single command will:
+
+ ✅ Start Postgresus
+
+ ✅ Store all data in ./postgresus-data directory
+ ✅ Automatically restart on system reboot
+
+ {/* END OF INSTALLATION SECTION */}
+
+ {/* FAQ SECTION */}
+
+
+
+
FAQ
+
+ The goal of Postgresus — make backing up as simple as possible for
+ single developers (as well as DevOps) and teams. UI makes it easy
+ to create backups and visualizes the progress and restores
+ anything in couple of clicks
+
+
+
+
+
+
+
+ 1. What is Postgresus and why should I use it instead of
+ hand-rolled scripts?
+
+
+
+ Postgresus is an Apache 2.0 licensed, self-hosted service
+ backing up PostgreSQL, v13 to v18. It differs from shell
+ scripts in that it has a frontend for scheduling tasks,
+ compressing and storing archives on multiple targets (local
+ disk, S3, Google Drive, NAS, Dropbox, etc.) and notifying your
+ team when tasks finish or fail — all without hand-rolled code
+
+
+
+
+
+ 2. How do I install Postgresus in the quickest manner?
+
+
+
+ The most direct route is to run the one-line cURL installer.
+ It fetches the current Docker image, spins up a single
+ PostgreSQL container. Then creates a docker-compose.yml and
+ boots up the service so it will automatically start again when
+ reboots occur. Overall time is usually less than two minutes
+ on a typical VPS.
+
+
+
+
+
+ 3. What backup schedules can I schedule?
+
+
+
+ You can choose from hourly, daily, weekly or monthly cycles
+ and even choose an exact run time (such as 04:00 when
+ it's late night). Weekly schedules enable you to choose a
+ particular weekday, while monthly schedules enable you to
+ choose a particular calendar day, giving you very fine-grained
+ control of maintenance windows.
+
+
+
+
+
+ 4. Where do my backups live and how much space will they
+ occupy?
+
+
+
+ Archives can be saved to local volumes, S3-compatible buckets,
+ Google Drive, Dropbox and other cloud targets. Postgresus
+ implements balanced compression, which typically shrinks dump
+ size by 4-8x with incremental only about 20% of runtime
+ overhead, so you have storage and bandwidth savings.
+
+
+
+
+
+ 5. How will I know a backup succeeded — or worse, failed?
+
+
+
+ Postgresus can notify with real-time emails, Slack, Telegram,
+ webhooks, Mattermost, Discord and more. You have the choice of
+ what channels to ping so that your DevOps team hears about
+ successes and failures in real time, making recovery routines
+ and compliance audits easier.
+
+
+
+
+
+ 6. Does Postgresus reduce database security?
+
+
+
+ No. All the data executes within containers you control, on
+ servers you own. Credentials and backup files are left on your
+ server or in the cloud account of your choice. Because
+ it's open source, you or your security team, can inspect
+ every line to make sure it meets your organization's
+ needs before it's run.
+
+
+
+
+
+ 7. How do I set up and run my first backup job in Postgresus?
+
+
+
+ To start your very first Postgresus backup, simply log in to
+ the dashboard, click on New Backup, select an interval —
+ hourly, daily, weekly or monthly. Then specify the exact run
+ time (e.g., 02:30 for off-peak hours). Then input your
+ PostgreSQL host, port number, database name, credentials,
+ version and SSL preference. Choose where the archive should be
+ sent (local path, S3 bucket, Google Drive folder, Dropbox,
+ etc.). If you need, add notification channels such as email,
+ Slack, Telegram or a webhook and click Save. Postgresus
+ instantly validates the info, starts the schedule, runs the
+ initial job and sends live status. So you may restore with one
+ touch when the backup is complete.
+
+
+
+
+
+ 8. How does PostgreSQL monitoring work?
+
+
+
+ Postgresus monitors your databases instantly. This optional
+ feature helps avoid extra costs for edge DBs. Health checks
+ are performed once a specific period (minute, 5 minutes,
+ etc.). To enable the feature, choose your DB and select
+ "enable" monitoring. Then configure health checks
+ period and number of failed attempts to consider the DB as
+ unavailable.
+
+
+
+
+
+ 9. Who is Postgresus suitable for?
+
+
+
+ Postgresus is designed for single developers, DevOps teams,
+ organizations, startups, system administrators and IT
+ departments who need reliable PostgreSQL backups. Whether
+ you're managing personal projects or production
+ databases, Postgresus provides enterprise-grade backup
+ capabilities with a simple, intuitive interface.
+
+
+
+
+
+ 10. How is Postgresus different from PgBackRest, Barman or
+ pg_dump?
+
+
+
+ Postgresus provides a modern, user-friendly web interface
+ instead of complex configuration files and command-line tools.
+ While PgBackRest and Barman require extensive configuration
+ and command-line expertise, Postgresus offers intuitive
+ point-and-click setup. Unlike raw pg_dump scripts, it includes
+ built-in scheduling, compression, multiple storage
+ destinations, health monitoring and real-time notifications —
+ all managed through a simple web UI.
+
+
+
+
+
+
+ {/* END OF FAQ SECTION */}
+
+ {/* FOOTER SECTION */}
+
+ {/* END OF FOOTER SECTION */}
+ >
+ );
+}
diff --git a/app/password/page.tsx b/app/password/page.tsx
new file mode 100644
index 0000000..d514962
--- /dev/null
+++ b/app/password/page.tsx
@@ -0,0 +1,154 @@
+import type { Metadata } from "next";
+import { CopyButton } from "../components/CopyButton";
+import DocsNavbarComponent from "../components/DocsNavbarComponent";
+import DocsSidebarComponent from "../components/DocsSidebarComponent";
+import DocTableOfContentComponent from "../components/DocTableOfContentComponent";
+
+export const metadata: Metadata = {
+ title: "Reset password - Postgresus Documentation",
+ description:
+ "Learn how to reset user passwords in Postgresus using the built-in command-line tool. Quick and secure password recovery for your PostgreSQL backup system.",
+ keywords: [
+ "Postgresus password reset",
+ "reset user password",
+ "PostgreSQL backup password",
+ "Docker password recovery",
+ "password recovery",
+ "Postgresus authentication",
+ ],
+ openGraph: {
+ title: "Reset Password - Postgresus Documentation",
+ description:
+ "Learn how to reset user passwords in Postgresus using the built-in command-line tool. Quick and secure password recovery for your PostgreSQL backup system.",
+ type: "article",
+ url: "https://postgresus.com/password",
+ },
+ twitter: {
+ card: "summary",
+ title: "Reset Password - Postgresus Documentation",
+ description:
+ "Learn how to reset user passwords in Postgresus using the built-in command-line tool. Quick and secure password recovery for your PostgreSQL backup system.",
+ },
+ alternates: {
+ canonical: "https://postgresus.com/password",
+ },
+ robots: "index, follow",
+};
+
+export default function PasswordResetPage() {
+ const resetPasswordCommand = `docker exec -it postgresus ./main --new-password="YourNewSecurePassword123" --email="admin"`;
+
+ return (
+ <>
+ {/* JSON-LD Structured Data */}
+
+
+
+
+
+
+ {/* Sidebar */}
+
+
+ {/* Main Content */}
+
+
+
+
Reset user password
+
+
Reset password command
+
+
+ To reset a user's password, use the following command on
+ the server where Postgresus is running:
+
+
+
+
+ {resetPasswordCommand}
+
+
+
+
+
+
+
Parameters
+
+
The command accepts the following parameters:
+
+
+
+ --new-password: The new password. Make sure
+ it's secure and contains a mix of letters, numbers and
+ special characters.
+
+
+ --email: The email address of the user whose
+ password you want to reset (e.g., admin,{" "}
+ user@example.com).
+
+
+
+
+
+
+ {/* Table of Contents */}
+
+
+ >
+ );
+}
diff --git a/app/robots.ts b/app/robots.ts
new file mode 100644
index 0000000..fed5e0e
--- /dev/null
+++ b/app/robots.ts
@@ -0,0 +1,11 @@
+import { MetadataRoute } from "next";
+
+export default function robots(): MetadataRoute.Robots {
+ return {
+ rules: {
+ userAgent: "*",
+ allow: "/",
+ },
+ sitemap: "https://postgresus.com/sitemap.xml",
+ };
+}
diff --git a/app/sitemap.ts b/app/sitemap.ts
new file mode 100644
index 0000000..fae93a0
--- /dev/null
+++ b/app/sitemap.ts
@@ -0,0 +1,63 @@
+import { MetadataRoute } from "next";
+
+export default function sitemap(): MetadataRoute.Sitemap {
+ const baseUrl = "https://postgresus.com";
+ const currentDate = new Date().toISOString();
+
+ return [
+ {
+ url: baseUrl,
+ lastModified: currentDate,
+ changeFrequency: "weekly",
+ priority: 1.0,
+ },
+ {
+ url: `${baseUrl}/installation`,
+ lastModified: currentDate,
+ changeFrequency: "weekly",
+ priority: 0.9,
+ },
+ {
+ url: `${baseUrl}/password`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.8,
+ },
+ {
+ url: `${baseUrl}/storages`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.8,
+ },
+ {
+ url: `${baseUrl}/storages/google-drive`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.7,
+ },
+ {
+ url: `${baseUrl}/storages/cloudflare-r2`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.7,
+ },
+ {
+ url: `${baseUrl}/notifiers`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.8,
+ },
+ {
+ url: `${baseUrl}/notifiers/slack`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.7,
+ },
+ {
+ url: `${baseUrl}/notifiers/teams`,
+ lastModified: currentDate,
+ changeFrequency: "monthly",
+ priority: 0.7,
+ },
+ ];
+}
diff --git a/app/storages/cloudflare-r2/page.tsx b/app/storages/cloudflare-r2/page.tsx
new file mode 100644
index 0000000..c0e7bbf
--- /dev/null
+++ b/app/storages/cloudflare-r2/page.tsx
@@ -0,0 +1,220 @@
+import type { Metadata } from "next";
+import DocsNavbarComponent from "../../components/DocsNavbarComponent";
+import DocsSidebarComponent from "../../components/DocsSidebarComponent";
+import DocTableOfContentComponent from "../../components/DocTableOfContentComponent";
+import Image from "next/image";
+
+export const metadata: Metadata = {
+ title: "How to use Postgresus with Cloudflare R2 | Postgresus",
+ description:
+ "Step-by-step guide to configure Cloudflare R2 storage for PostgreSQL backups with Postgresus. Learn how to set up S3-compatible storage with R2.",
+ keywords: [
+ "Postgresus",
+ "Cloudflare R2",
+ "PostgreSQL backup",
+ "S3 storage",
+ "cloud storage",
+ "database backup",
+ ],
+ openGraph: {
+ title: "How to use Postgresus with Cloudflare R2 | Postgresus",
+ description:
+ "Step-by-step guide to configure Cloudflare R2 storage for PostgreSQL backups with Postgresus. Learn how to set up S3-compatible storage with R2.",
+ type: "article",
+ url: "https://postgresus.com/storages/cloudflare-r2",
+ },
+ twitter: {
+ card: "summary",
+ title: "How to use Postgresus with Cloudflare R2 | Postgresus",
+ description:
+ "Step-by-step guide to configure Cloudflare R2 storage for PostgreSQL backups with Postgresus. Learn how to set up S3-compatible storage with R2.",
+ },
+ alternates: {
+ canonical: "https://postgresus.com/storages/cloudflare-r2",
+ },
+ robots: "index, follow",
+};
+
+export default function CloudflareR2Page() {
+ return (
+ <>
+ {/* JSON-LD Structured Data */}
+
-
-
-
-
-
-
-
-
-
-
-
-
-
Blog
-
-
- Learn how to configure Postgresus with different storage providers and notification
- systems. Step-by-step guides to help you get the most out of your PostgreSQL backup
- solution.
-
- Learn how to configure Cloudflare R2 as your S3-compatible storage for
- PostgreSQL backups. Step-by-step guide to set up credentials, endpoints, and
- bucket configuration.
-
- Complete guide to setting up Google Drive as your backup storage. Learn how to
- create a Google Cloud project, configure OAuth, and connect your Drive account.
-
- Set up Slack notifications for your PostgreSQL backups. Learn how to create a
- Slack bot, configure permissions, and get channel IDs for backup notifications.
-
- Configure Microsoft Teams notifications for your PostgreSQL backups using Power
- Automate. Step-by-step guide to create an HTTP-triggered flow and connect it to
- your Teams channel.
-