mirror of
https://github.com/databasus/databasus.git
synced 2026-04-06 00:32:03 +02:00
1732 lines
79 KiB
TypeScript
1732 lines
79 KiB
TypeScript
import type { Metadata } from "next";
|
||
import InstallationComponent from "./components/InstallationComponent";
|
||
import LiteYouTubeEmbed from "./components/LiteYouTubeEmbed";
|
||
|
||
export const metadata: Metadata = {
|
||
title: "PostgreSQL backup | Databasus",
|
||
description:
|
||
"Free and open source tool for PostgreSQL scheduled backups (with MySQL and MongoDB support). Save them locally and to clouds. Notifications to Slack, Discord, Telegram, email, webhook, 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, encryption, AES-256, backup encryption",
|
||
robots: "index, follow",
|
||
alternates: {
|
||
canonical: "https://databasus.com",
|
||
},
|
||
openGraph: {
|
||
type: "website",
|
||
url: "https://databasus.com",
|
||
title: "PostgreSQL backup | Databasus",
|
||
description:
|
||
"Free and open source tool for PostgreSQL scheduled backups (with MySQL and MongoDB support). Save them locally and to clouds. Notifications to Slack, Discord, Telegram, email, webhook, etc.",
|
||
images: [
|
||
{
|
||
url: "https://databasus.com/images/index/dashboard.png",
|
||
alt: "Databasus dashboard interface showing backup management",
|
||
width: 980,
|
||
height: 573,
|
||
},
|
||
],
|
||
siteName: "Databasus",
|
||
locale: "en_US",
|
||
},
|
||
twitter: {
|
||
card: "summary_large_image",
|
||
title: "PostgreSQL backup | Databasus",
|
||
description:
|
||
"Free and open source tool for PostgreSQL scheduled backups (with MySQL and MongoDB support). Save them locally and to clouds. Notifications to Slack, Discord, Telegram, email, webhook, etc.",
|
||
images: ["https://databasus.com/images/index/dashboard.png"],
|
||
},
|
||
applicationName: "Databasus",
|
||
appleWebApp: {
|
||
title: "Databasus",
|
||
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() {
|
||
return (
|
||
<div className="overflow-x-hidden">
|
||
{/* JSON-LD Structured Data */}
|
||
<script
|
||
type="application/ld+json"
|
||
dangerouslySetInnerHTML={{
|
||
__html: JSON.stringify({
|
||
"@context": "https://schema.org",
|
||
"@type": "SoftwareApplication",
|
||
name: "Databasus",
|
||
description:
|
||
"Free and open source tool for PostgreSQL scheduled backups (with MySQL and MongoDB support). Save them locally and to clouds. Notifications to Slack, Discord, Telegram, email, webhook, etc.",
|
||
url: "https://databasus.com",
|
||
image: "https://databasus.com/images/index/dashboard.png",
|
||
logo: "https://databasus.com/logo.svg",
|
||
publisher: {
|
||
"@type": "Organization",
|
||
name: "Databasus",
|
||
logo: {
|
||
"@type": "ImageObject",
|
||
url: "https://databasus.com/logo.svg",
|
||
},
|
||
},
|
||
featureList: [
|
||
"Scheduled PostgreSQL backups",
|
||
"Multiple storage destinations (S3, Google Drive, Dropbox, SFTP, rclone, etc.)",
|
||
"Real-time notifications (Slack, Telegram, Discord, Webhook, email, etc.)",
|
||
"Database health monitoring",
|
||
"Self-hosted via Docker",
|
||
"Open source and free",
|
||
"Support for PostgreSQL 12-18",
|
||
"Backup compression and AES-256-GCM encryption",
|
||
"Support for PostgreSQL, MySQL, MariaDB and MongoDB",
|
||
"Retention policies: time period, count, GFS and size limits",
|
||
],
|
||
screenshot: "https://databasus.com/images/index/dashboard.png",
|
||
softwareVersion: "latest",
|
||
}),
|
||
}}
|
||
/>
|
||
<script
|
||
type="application/ld+json"
|
||
dangerouslySetInnerHTML={{
|
||
__html: JSON.stringify({
|
||
"@context": "https://schema.org",
|
||
"@type": "Organization",
|
||
name: "Databasus",
|
||
url: "https://databasus.com/",
|
||
alternateName: ["databasus", "Databasus"],
|
||
logo: "https://databasus.com/logo.svg",
|
||
sameAs: ["https://github.com/databasus/databasus"],
|
||
}),
|
||
}}
|
||
/>
|
||
<script
|
||
type="application/ld+json"
|
||
dangerouslySetInnerHTML={{
|
||
__html: JSON.stringify({
|
||
"@context": "https://schema.org",
|
||
"@type": "WebSite",
|
||
name: "Databasus",
|
||
alternateName: ["databasus", "Databasus"],
|
||
url: "https://databasus.com/",
|
||
description: "PostgreSQL backup tool",
|
||
publisher: { "@type": "Organization", name: "Databasus" },
|
||
}),
|
||
}}
|
||
/>
|
||
<script
|
||
type="application/ld+json"
|
||
dangerouslySetInnerHTML={{
|
||
__html: JSON.stringify({
|
||
"@context": "https://schema.org",
|
||
"@type": "FAQPage",
|
||
mainEntity: [
|
||
{
|
||
"@type": "Question",
|
||
name: "What is Databasus and why should I use it instead of hand-rolled scripts?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Databasus 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, Dropbox, SFTP, rclone, etc.), configuring retention policies to automatically prune old backups and notifying your team when tasks finish or fail — all without hand-rolled code",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "How do I install Databasus in the quickest manner?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "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.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "What backup schedules can I schedule?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "You can choose from hourly, daily, weekly, monthly or cron 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. Retention policies let you automatically clean up old backups by time period, count, size limit or GFS (Grandfather-Father-Son), the latter being popular for enterprise compliance.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "Where do my backups live and how much space will they occupy?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Archives can be saved to local volumes, S3-compatible buckets, Google Drive, Dropbox and other cloud targets. Databasus 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.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "How will I know a backup succeeded — or worse, failed?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Databasus 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.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "How does Databasus ensure security?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Databasus enforces security on three levels: (1) Sensitive data encryption — all passwords, tokens and credentials are encrypted with AES-256-GCM and stored separately from the database; (2) Backup encryption — each backup file is encrypted with a unique key derived from a master key, backup ID and random salt, making backups useless without your encryption key even if someone gains storage access; (3) Read-only database access — Databasus only requires SELECT permissions and performs comprehensive checks to ensure no write privileges exist, preventing data corruption even if the tool is compromised. All operations run in containers you control on servers you own, and because it's open source, your security team can audit every line of code before deployment.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "Is Databasus supported by Anthropic and OpenAI OSS programs?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Yes, in March 2026 Databasus was accepted into both Claude for Open Source by Anthropic and Codex for Open Source by OpenAI. The project has been independently evaluated and recognized by industry leaders as critical open-source infrastructure worth supporting.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "How is Databasus different from PgBackRest, Barman or pg_dump?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Databasus prefers simplicity — it provides a modern web interface to manage backups for many databases at once, with built-in scheduling, compression, multiple storage destinations, health monitoring and real-time notifications. At the same time, Databasus also works in agent mode for disaster recovery with WAL archiving and Point-in-Time Recovery. The agent connects from closed networks to the Databasus instance and streams backups, so databases that are not publicly exposed can still be backed up and managed from a single dashboard.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "Which databases are supported by Databasus?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Databasus supports PostgreSQL, MySQL, MariaDB and MongoDB. You can backup and restore all of them with the same tool.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "Can I restore backups without Databasus?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Yes! You can restore backups directly from storage (like S3, Google Drive, etc.) without Databasus itself. There is no vendor lock-in, even on this open source tool. With just your secret.key file, you can decrypt and restore any backup manually using standard database tools. This means if your Databasus instance is unavailable or you lose access to it, your backups remain fully recoverable.",
|
||
},
|
||
},
|
||
{
|
||
"@type": "Question",
|
||
name: "What backup types does Databasus support?",
|
||
acceptedAnswer: {
|
||
"@type": "Answer",
|
||
text: "Databasus supports logical, physical, WAL archiving and Point-in-Time Recovery (PITR). In remote mode, Databasus connects to the database over the network and performs logical backups — no agent needed. In agent mode, a lightweight Go agent runs alongside the database and connects to the Databasus instance, enabling physical backups with continuous WAL archiving and PITR for disaster recovery. Because the agent connects to Databasus, you can manage incremental backups for many databases from a single dashboard.",
|
||
},
|
||
},
|
||
],
|
||
}),
|
||
}}
|
||
/>
|
||
|
||
{/* HEADER */}
|
||
<header className="fixed top-0 left-0 right-0 z-50 flex justify-center pt-3 md:pt-5 px-4 md:px-0">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<nav className="relative flex items-center justify-between border backdrop-blur-md bg-[#0C0E13]/80 md:bg-[#0C0E13]/20 border-[#ffffff20] px-3 py-2 rounded-xl">
|
||
<a href="/" className="flex items-center gap-2.5">
|
||
<img
|
||
src="/logo.svg"
|
||
alt="Databasus logo"
|
||
width={32}
|
||
height={32}
|
||
className="h-7 w-7 md:h-8 md:w-8"
|
||
fetchPriority="high"
|
||
loading="eager"
|
||
/>
|
||
|
||
<span className="text-base md:text-lg font-semibold pl-1">
|
||
Databasus
|
||
</span>
|
||
</a>
|
||
|
||
{/* Desktop Navigation */}
|
||
<div className="absolute left-1/2 -translate-x-1/2 hidden lg:flex items-center gap-3">
|
||
<a
|
||
href="#how-to-use"
|
||
className="py-2 hover:text-gray-300 transition-colors"
|
||
>
|
||
How to use
|
||
</a>
|
||
|
||
<a
|
||
href="#features"
|
||
className="py-2 hover:text-gray-300 transition-colors"
|
||
>
|
||
Features
|
||
</a>
|
||
|
||
<a
|
||
href="/installation"
|
||
className="py-2 hover:text-gray-300 transition-colors"
|
||
>
|
||
Docs
|
||
</a>
|
||
<a
|
||
href="/contribute"
|
||
className="py-2 hover:text-gray-300 transition-colors"
|
||
>
|
||
Contribute
|
||
</a>
|
||
<a
|
||
href="https://t.me/databasus_community"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="py-2 hover:text-gray-300 transition-colors"
|
||
>
|
||
Community
|
||
</a>
|
||
</div>
|
||
|
||
{/* GitHub Button */}
|
||
<a
|
||
href="https://github.com/databasus/databasus"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="flex items-center gap-2 hover:opacity-70 rounded-lg px-2 md:px-3 py-2 text-[14px] border border-[#ffffff20] bg-[#0C0E13] transition-colors"
|
||
>
|
||
<svg
|
||
aria-hidden={true}
|
||
width="24"
|
||
height="24"
|
||
viewBox="0 0 20 20"
|
||
fill="none"
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
>
|
||
<g clipPath="url(#clip0_1_2459)">
|
||
<path
|
||
fillRule="evenodd"
|
||
clipRule="evenodd"
|
||
d="M9.9702 0C4.45694 0 0 4.4898 0 10.0443C0 14.4843 2.85571 18.2427 6.81735 19.5729C7.31265 19.6729 7.49408 19.3567 7.49408 19.0908C7.49408 18.858 7.47775 18.0598 7.47775 17.2282C4.70429 17.8269 4.12673 16.0308 4.12673 16.0308C3.68102 14.8667 3.02061 14.5676 3.02061 14.5676C2.11286 13.9522 3.08673 13.9522 3.08673 13.9522C4.09367 14.0188 4.62204 14.9833 4.62204 14.9833C5.51327 16.5131 6.94939 16.0808 7.52714 15.8147C7.60959 15.1661 7.87388 14.7171 8.15449 14.4678C5.94245 14.2349 3.6151 13.3702 3.6151 9.51204C3.6151 8.41449 4.01102 7.51653 4.63837 6.81816C4.53939 6.56878 4.19265 5.53755 4.73755 4.15735C4.73755 4.15735 5.57939 3.89122 7.47755 5.18837C8.29022 4.9685 9.12832 4.85666 9.9702 4.85571C10.812 4.85571 11.6702 4.97225 12.4627 5.18837C14.361 3.89122 15.2029 4.15735 15.2029 4.15735C15.7478 5.53755 15.4008 6.56878 15.3018 6.81816C15.9457 7.51653 16.3253 8.41449 16.3253 9.51204C16.3253 13.3702 13.998 14.2182 11.7694 14.4678C12.1327 14.7837 12.4461 15.3822 12.4461 16.3302C12.4461 17.6771 12.4298 18.7582 12.4298 19.0906C12.4298 19.3567 12.6114 19.6729 13.1065 19.5731C17.0682 18.2424 19.9239 14.4843 19.9239 10.0443C19.9402 4.4898 15.4669 0 9.9702 0Z"
|
||
fill="white"
|
||
/>
|
||
</g>
|
||
<defs>
|
||
<clipPath id="clip0_1_2459">
|
||
<rect width="20" height="20" fill="white" />
|
||
</clipPath>
|
||
</defs>
|
||
</svg>
|
||
<span className="hidden xl:inline">
|
||
Star on GitHub, it's really important ❤️
|
||
</span>
|
||
<span className="inline xl:hidden">GitHub</span>
|
||
</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
|
||
{/* MAIN SECTION */}
|
||
<main className="relative overflow-hidden pt-[60px] md:pt-[68px]">
|
||
<div className="relative mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px] px-4 md:px-6 lg:px-0 pt-12 md:pt-[100px] pb-12 md:pb-[100px]">
|
||
{/* Background ellipse */}
|
||
<div className="relative">
|
||
<div className="absolute left-1/2 -translate-x-1/2 -translate-y-1/4 w-[400px] h-[400px] md:w-[900px] md:h-[900px] bg-[#155dfc]/4 top-0 rounded-full blur-3xl -z-10" />
|
||
</div>
|
||
|
||
{/* Content */}
|
||
<div className="text-center mb-8 md:mb-16">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">Databasus</span>
|
||
</div>
|
||
|
||
<h1 className="text-2xl sm:text-4xl sm:max-w-[300px] md:text-4xl leading-tight font-bold mb-4 md:mb-6 mx-auto md:max-w-[600px]">
|
||
PostgreSQL backup tool with MySQL and MongoDB support
|
||
</h1>
|
||
|
||
<p className="text-sm sm:text-lg text-gray-200 max-w-[720px] mx-auto mb-6 md:mb-10 px-2">
|
||
Databasus is a free, open source and self-hosted tool to backup
|
||
PostgreSQL. Make backups with different storages (S3, Google
|
||
Drive, FTP, etc.) and notifications about progress (Slack,
|
||
Discord, Telegram, etc.). MySQL, MariaDB and MongoDB are supported
|
||
too
|
||
</p>
|
||
|
||
<div>
|
||
<div className="flex flex-col sm:flex-row sm:flex-wrap items-center justify-center gap-2 sm:gap-2 max-w-[400px] mx-auto">
|
||
<a
|
||
href="#installation"
|
||
className="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-4 py-2 sm:px-5 sm:py-2.5 bg-white rounded-lg text-black font-medium hover:opacity-70 transition-opacity order-1"
|
||
>
|
||
<span>Configure in 2 minutes</span>
|
||
<svg
|
||
aria-hidden={true}
|
||
width="20"
|
||
height="20"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="currentColor"
|
||
strokeWidth="2"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
>
|
||
<path d="M5 12h14M12 5l7 7-7 7" />
|
||
</svg>
|
||
</a>
|
||
|
||
<a
|
||
href="https://github.com/databasus/databasus"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-4 py-2 sm:px-5 sm:py-2.5 rounded-lg font-medium border border-[#ffffff20] bg-[#0C0E13] hover:opacity-70 transition-opacity order-3 sm:order-2"
|
||
>
|
||
<svg
|
||
aria-hidden={true}
|
||
width="24"
|
||
height="24"
|
||
viewBox="0 0 20 20"
|
||
fill="none"
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
>
|
||
<g clipPath="url(#clip0_1_2459)">
|
||
<path
|
||
fillRule="evenodd"
|
||
clipRule="evenodd"
|
||
d="M9.9702 0C4.45694 0 0 4.4898 0 10.0443C0 14.4843 2.85571 18.2427 6.81735 19.5729C7.31265 19.6729 7.49408 19.3567 7.49408 19.0908C7.49408 18.858 7.47775 18.0598 7.47775 17.2282C4.70429 17.8269 4.12673 16.0308 4.12673 16.0308C3.68102 14.8667 3.02061 14.5676 3.02061 14.5676C2.11286 13.9522 3.08673 13.9522 3.08673 13.9522C4.09367 14.0188 4.62204 14.9833 4.62204 14.9833C5.51327 16.5131 6.94939 16.0808 7.52714 15.8147C7.60959 15.1661 7.87388 14.7171 8.15449 14.4678C5.94245 14.2349 3.6151 13.3702 3.6151 9.51204C3.6151 8.41449 4.01102 7.51653 4.63837 6.81816C4.53939 6.56878 4.19265 5.53755 4.73755 4.15735C4.73755 4.15735 5.57939 3.89122 7.47755 5.18837C8.29022 4.9685 9.12832 4.85666 9.9702 4.85571C10.812 4.85571 11.6702 4.97225 12.4627 5.18837C14.361 3.89122 15.2029 4.15735 15.2029 4.15735C15.7478 5.53755 15.4008 6.56878 15.3018 6.81816C15.9457 7.51653 16.3253 8.41449 16.3253 9.51204C16.3253 13.3702 13.998 14.2182 11.7694 14.4678C12.1327 14.7837 12.4461 15.3822 12.4461 16.3302C12.4461 17.6771 12.4298 18.7582 12.4298 19.0906C12.4298 19.3567 12.6114 19.6729 13.1065 19.5731C17.0682 18.2424 19.9239 14.4843 19.9239 10.0443C19.9402 4.4898 15.4669 0 9.9702 0Z"
|
||
fill="white"
|
||
/>
|
||
</g>
|
||
<defs>
|
||
<clipPath id="clip0_1_2459">
|
||
<rect width="20" height="20" fill="white" />
|
||
</clipPath>
|
||
</defs>
|
||
</svg>
|
||
|
||
<span>GitHub</span>
|
||
</a>
|
||
|
||
<a
|
||
href="https://app.databasus.com"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="w-full sm:max-w-[364px] inline-flex items-center justify-center px-4 py-2 sm:px-5 sm:py-2.5 bg-white rounded-lg text-black font-medium hover:opacity-70 transition-opacity order-2 sm:order-3"
|
||
>
|
||
Playground
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Dashboard Screenshot */}
|
||
<div className="relative mx-auto max-w-[1200px]">
|
||
<div>
|
||
<img
|
||
src="/images/index/dashboard.svg"
|
||
alt="Databasus dashboard interface"
|
||
width={980}
|
||
height={620}
|
||
className="w-full h-auto"
|
||
loading="eager"
|
||
fetchPriority="high"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="mt-10 md:mt-15 mb-12 md:mb-20 flex justify-center px-4 md:px-0">
|
||
<div className="flex flex-col md:flex-row items-center">
|
||
<img
|
||
className="h-[45px] md:h-[55px]"
|
||
src="/images/index/ais.svg"
|
||
alt="Support by Anthropic and OpenAI OSS"
|
||
/>
|
||
|
||
<div className="flex justify-center text-base md:text-xl mt-4 md:mt-0 md:ml-10">
|
||
<div className="max-w-[370px] text-gray-400 text-center md:text-left">
|
||
Supported by both Anthropic and Open AI open source programs.{" "}
|
||
<a
|
||
href="/faq#oss-programs"
|
||
target="_blank"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
Learn more →
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
{/* FEATURES OVERVIEW SECTION */}
|
||
<section id="features" className="pb-12 md:pb-20 px-4 md:px-6 lg:px-0">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="text-center">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">Overview</span>
|
||
</div>
|
||
|
||
<h2 className="text-3xl md:text-4xl lg:text-5xl font-bold mb-4 md:mb-6">
|
||
Features
|
||
</h2>
|
||
|
||
<p className="text-sm sm:text-lg text-gray-200 max-w-[650px] mx-auto mb-8 md:mb-10">
|
||
Databasus provides everything you need for reliable production
|
||
backup management. From automated scheduling to backups
|
||
encryption. Suitable well for both individual developers with
|
||
personal projects, DevOps teams and enterprises
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
{/* Feature Cards Grid */}
|
||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 border border-[#ffffff20] rounded-xl">
|
||
{/* Card 1: Scheduled backups */}
|
||
<div className="border-b md:border-r lg:border-r border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
1
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Scheduled backups
|
||
</h3>
|
||
|
||
<div className="mb-4 md:mb-5">
|
||
<img
|
||
src="/images/index/backup-step-1.svg"
|
||
alt="Scheduled backups"
|
||
className="w-full h-full object-contain rounded-lg"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base">
|
||
Backup is a thing that should be done in specified time on
|
||
regular basis. So we provide many options: from hourly to
|
||
monthly
|
||
</p>
|
||
</div>
|
||
|
||
{/* Card 2: Configurable health checks */}
|
||
<div className="border-b lg:border-r border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
2
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Configurable health checks
|
||
</h3>
|
||
|
||
<div className="mb-4 md:mb-5">
|
||
<img
|
||
src="/images/index/feature-healthcheck.svg"
|
||
alt="Health checks"
|
||
className="w-full h-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-3">
|
||
Each minute (or any another amount of time) the system will ping
|
||
your database and show you the history of attempts
|
||
</p>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base">
|
||
The database can be considered as down after 3 failed attempts
|
||
or so. Once DB is healthy again - you receive notification too
|
||
</p>
|
||
</div>
|
||
|
||
{/* Card 3: Many destinations to store */}
|
||
<div className="border-b md:border-r lg:border-r-0 border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
3
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Many destinations to store
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4 md:mb-5">
|
||
Files are kept on VPS, cloud storages and other places. You can
|
||
choose any storage you. Files are always owned by you.{" "}
|
||
<a
|
||
href="/storages"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
View all →
|
||
</a>
|
||
</p>
|
||
|
||
<div>
|
||
<img
|
||
src="/images/index/feature-destinations.svg"
|
||
alt="Storage"
|
||
className="w-full h-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 4: Notifications */}
|
||
<div className="border-b lg:border-r border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
4
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Notifications
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4 md:mb-5">
|
||
You can receive notifications about success or fail of the
|
||
process. This is useful for developers or DevOps teams.{" "}
|
||
<a
|
||
href="/notifiers"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
View all →
|
||
</a>
|
||
</p>
|
||
|
||
<div>
|
||
<img
|
||
src="/images/index/feature-notifications.svg"
|
||
alt="Notifications"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 5: Self hosted via Docker */}
|
||
<div className="border-b md:border-r lg:border-r border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
5
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Self hosted via Docker
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4">
|
||
Databasus runs on your PC or VPS. Therefore, all your data is
|
||
owned by you and secured. Deploy takes about 2 minutes via
|
||
script, Docker or k8s
|
||
</p>
|
||
|
||
<div className="flex">
|
||
<img
|
||
src="/images/index/feature-deploy.svg"
|
||
alt="Docker"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 6: Open source and free */}
|
||
<div className="border-b border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
6
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Open source and free
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4">
|
||
The project is fully open source, free and have Apache 2.0
|
||
license. You can copy and fork the code on your own. Open for
|
||
enterprise as well
|
||
</p>
|
||
<div>
|
||
<img
|
||
src="/images/index/feature-github.svg"
|
||
alt="GitHub"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 7: Many PostgreSQL versions - Mobile/Tablet separate, Desktop merged with card 10 */}
|
||
<div className="border-b md:border-r lg:border-r lg:border-b-0 border-[#ffffff20] col-span-1 lg:row-span-2 lg:flex lg:flex-col">
|
||
{/* Card 7: Many PostgreSQL versions */}
|
||
<div className="p-5 md:p-6 lg:border-b lg:border-[#ffffff20]">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
7
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Many PostgreSQL versions
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4">
|
||
PostgreSQL 12, 13, 14, 15, 16, 17 and 18 are supported by the
|
||
project. You can backup any version from 2019
|
||
</p>
|
||
|
||
<div>
|
||
<img
|
||
src="/images/index/feature-postgresql.svg"
|
||
alt="PostgreSQL"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 10: Security - Only visible on desktop, merged with card 7 */}
|
||
<div className="hidden lg:block p-5 md:p-6">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
10
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Security
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4">
|
||
Enterprise-grade encryption protects sensitive data and
|
||
backups. Read-only database access prevents data corruption.
|
||
Everything this does not require any knowledge and ready out
|
||
of the box from the start automatically.{" "}
|
||
<a
|
||
href="/security"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</p>
|
||
|
||
<div>
|
||
<img
|
||
src="/images/index/feature-encryption.svg"
|
||
alt="Security"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 8: Access management */}
|
||
<div className="border-b md:border-r lg:border-r border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-start justify-between mb-4">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold border border-[#ffffff20]">
|
||
8
|
||
</div>
|
||
</div>
|
||
|
||
<div className="flex flex-wrap items-center mb-4 md:mb-5">
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold">
|
||
Access management
|
||
</h3>
|
||
|
||
<div className="px-2 py-1 rounded border border-[#ffffff20] text-sm font-medium ml-2">
|
||
for teams
|
||
</div>
|
||
</div>
|
||
|
||
<div className="mb-4 md:mb-5">
|
||
<img
|
||
src="/images/index/feature-access-management.svg"
|
||
alt="Access management"
|
||
className="w-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base">
|
||
Provide access for users to view or manage DBs. Separate teams
|
||
and projects. Suitable for DevOps teams and developers.{" "}
|
||
<a
|
||
href="/access-management#settings"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</p>
|
||
</div>
|
||
|
||
{/* Card 9: Audit logs */}
|
||
<div className="border-b md:border-r lg:border-r-0 border-[#ffffff20] p-5 md:p-6 col-span-1">
|
||
<div className="flex items-start justify-between mb-4">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold border border-[#ffffff20]">
|
||
9
|
||
</div>
|
||
</div>
|
||
|
||
<div className="flex flex-wrap items-center mb-4 md:mb-5">
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold">
|
||
Audit logs
|
||
</h3>
|
||
|
||
<div className="px-2 py-1 rounded border border-[#ffffff20] text-sm font-medium ml-2">
|
||
for teams
|
||
</div>
|
||
</div>
|
||
|
||
<div className="mb-4 md:mb-5">
|
||
<img
|
||
src="/images/index/feature-audit-logs.svg"
|
||
alt="Audit logs"
|
||
className="w-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base">
|
||
Track all system activities with comprehensive audit logs. You
|
||
can view access and changes history for each user (backup
|
||
downloads, schedule changes, config updates, etc.).{" "}
|
||
<a
|
||
href="/access-management#audit-logs"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</p>
|
||
</div>
|
||
|
||
{/* Card 10: Security - Mobile/Tablet only */}
|
||
<div className="border-b border-[#ffffff20] p-5 md:p-6 col-span-1 lg:hidden">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold mb-4 border border-[#ffffff20]">
|
||
10
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Security
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base mb-4">
|
||
Enterprise-grade encryption protects sensitive data and backups.
|
||
Read-only database access prevents data corruption. Everything
|
||
this does not require any knowledge and ready out of the box
|
||
from the start automatically.{" "}
|
||
<a
|
||
href="/security"
|
||
className="text-blue-500 hover:text-blue-600 font-medium"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</p>
|
||
|
||
<div>
|
||
<img
|
||
src="/images/index/feature-encryption.svg"
|
||
alt="Security"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Card 11: Backup types and modes */}
|
||
<div className="col-span-1 md:col-span-2 lg:col-span-2 p-5 md:p-6 flex flex-col md:flex-row gap-4 md:gap-6">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded text-sm font-semibold border border-[#ffffff20] shrink-0">
|
||
11
|
||
</div>
|
||
|
||
<div>
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-4 md:mb-5">
|
||
Logical, physical and incremental backups with PITR
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base">
|
||
Databasus supports logical, physical and incremental backups
|
||
with Point-in-Time Recovery. This makes Databasus suitable for
|
||
disaster recovery with WAL archiving and PITR, and works
|
||
equally well with self-hosted and cloud databases — use remote
|
||
mode for cloud-managed or publicly accessible DBs, and agent
|
||
mode for closed networks and host-installed databases
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{/* VIDEO SECTION */}
|
||
<section className="pb-12 md:pb-20 px-4 md:px-6 lg:px-0" id="how-to-use">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="flex flex-col lg:flex-row gap-8 lg:gap-16">
|
||
{/* Left side: Info */}
|
||
<div className="w-full lg:w-[450px] lg:shrink-0">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">4-minutes overview</span>
|
||
</div>
|
||
|
||
<h2 className="text-2xl md:text-3xl lg:text-4xl font-bold mb-4 md:mb-6">
|
||
How to use Databasus?
|
||
</h2>
|
||
|
||
<p className="text-gray-200 max-w-[450px] leading-relaxed mb-6 md:mb-8 text-sm sm:text-base">
|
||
Watch in this video how to connect your database, how to
|
||
configure backups schedule, how to download and restore backups,
|
||
how to add team members and what is users' audit logs
|
||
</p>
|
||
|
||
<a
|
||
href="https://rostislav-dugin.com"
|
||
target="_blank"
|
||
className="flex items-center gap-3 md:gap-4 hover:opacity-70 transition-colors"
|
||
>
|
||
<img
|
||
src="/images/index/rostislav.png"
|
||
alt="Rostislav Dugin"
|
||
className="w-10 h-10 md:w-12 md:h-12 rounded-full object-cover"
|
||
loading="lazy"
|
||
/>
|
||
|
||
<div>
|
||
<p className="font-medium text-base md:text-lg">
|
||
Rostislav Dugin
|
||
</p>
|
||
<p className="text-sm text-gray-400">
|
||
Developer of Databasus
|
||
</p>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
{/* Right side: Video */}
|
||
<div className="flex-1 relative">
|
||
<div className="rounded-lg overflow-hidden shadow-lg border border-[#ffffff20]">
|
||
<LiteYouTubeEmbed
|
||
videoId="1qsAnijJfJE"
|
||
title="How to use Databasus (overview)?"
|
||
thumbnailSrc="/images/index/how-to-use-preview.svg"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<div className="border-b border-[#ffffff20] max-w-[calc(100%-2rem)] md:max-w-[calc(100%-3rem)] lg:max-w-[1000px] 2xl:max-w-[1200px] mx-auto" />
|
||
|
||
{/* Databases section */}
|
||
<section className="pt-12 md:pt-20 px-4 md:px-6 lg:px-0">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="text-center mb-10 md:mb-16">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">Databases</span>
|
||
</div>
|
||
|
||
<h2 className="text-3xl md:text-4xl lg:text-5xl font-bold mb-4 md:mb-6">
|
||
Supported databases
|
||
</h2>
|
||
|
||
<p className="text-sm sm:text-base md:text-lg text-gray-200 max-w-[550px] mx-auto">
|
||
Databasus supports PostgreSQL, MySQL, MariaDB and MongoDB. You can
|
||
backup and restore all of them with the same tool. Primary focus
|
||
is on PostgreSQL, but MySQL, MariaDB and MongoDB are supported too
|
||
</p>
|
||
</div>
|
||
|
||
{/* Databases list */}
|
||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 border border-[#ffffff20] rounded-xl">
|
||
{/* PostgreSQL */}
|
||
<div className="border-b md:border-r lg:border-b-0 border-[#ffffff20] p-5 md:py-6 md:px-5 flex flex-col">
|
||
<div className="flex items-center justify-center mb-4 md:mb-6">
|
||
<div className="text-5xl md:text-6xl">
|
||
<img
|
||
src="/images/index/database-postgresql.svg"
|
||
alt="PostgreSQL"
|
||
className="w-[75px] h-[75px]"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3 md:mb-4 text-center">
|
||
PostgreSQL
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base text-center mb-4">
|
||
PostgreSQL is the primary database supported by Databasus. All
|
||
versions from 12 to 18 are supported
|
||
</p>
|
||
</div>
|
||
|
||
{/* MySQL */}
|
||
<div className="border-b lg:border-r lg:border-b-0 border-[#ffffff20] p-5 md:py-6 md:px-5 flex flex-col">
|
||
<div className="flex items-center justify-center mb-4 md:mb-6">
|
||
<div className="text-5xl md:text-6xl">
|
||
<img
|
||
src="/images/index/database-mysql.svg"
|
||
alt="MySQL"
|
||
className="w-[75px] h-[75px]"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3 md:mb-4 text-center">
|
||
MySQL
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base text-center mb-4">
|
||
MySQL is the second most popular database in the world. You can
|
||
backup and restore your MySQL databases with the same simplicity
|
||
</p>
|
||
|
||
<div className="text-center mt-auto">
|
||
<a
|
||
href="/mysql-backup"
|
||
className="text-blue-500 hover:text-blue-600 font-medium text-sm md:text-base"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
{/* MariaDB */}
|
||
<div className="border-b md:border-r lg:border-r lg:border-b-0 border-[#ffffff20] p-5 md:py-6 md:px-5 flex flex-col">
|
||
<div className="flex items-center justify-center mb-4 md:mb-6">
|
||
<div className="text-5xl md:text-6xl">
|
||
<img
|
||
src="/images/index/database-mariadb.svg"
|
||
alt="MariaDB"
|
||
className="w-[75px] h-[75px]"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3 md:mb-4 text-center">
|
||
MariaDB
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base text-center mb-4">
|
||
MariaDB is supported with the same features as MySQL. You can
|
||
backup and restore your MariaDB databases seamlessly
|
||
</p>
|
||
|
||
<div className="text-center mt-auto">
|
||
<a
|
||
href="/mysql-backup"
|
||
className="text-blue-500 hover:text-blue-600 font-medium text-sm md:text-base"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
{/* MongoDB */}
|
||
<div className="p-5 md:py-6 md:px-5 flex flex-col">
|
||
<div className="flex items-center justify-center mb-4 md:mb-6">
|
||
<div className="text-5xl md:text-6xl">
|
||
<img
|
||
src="/images/index/database-mongodb.svg"
|
||
alt="MongoDB"
|
||
className="w-[75px] h-[75px]"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3 md:mb-4 text-center">
|
||
MongoDB
|
||
</h3>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base text-center mb-4">
|
||
MongoDB is the most popular NoSQL database. You can backup and
|
||
restore your MongoDB databases with the same easy-to-use
|
||
interface
|
||
</p>
|
||
|
||
<div className="text-center mt-auto">
|
||
<a
|
||
href="/mongodb-backup"
|
||
className="text-blue-500 hover:text-blue-600 font-medium text-sm md:text-base"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{/* PROCESS SECTION */}
|
||
<section className="py-12 md:py-20 px-4 md:px-6 lg:px-0">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="text-center mb-10 md:mb-16">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">Process</span>
|
||
</div>
|
||
|
||
<h2 className="text-3xl md:text-4xl lg:text-5xl font-bold mb-4 md:mb-6">
|
||
How to make backups?
|
||
</h2>
|
||
|
||
<p className="text-sm sm:text-base md:text-lg text-gray-200 max-w-[550px] mx-auto">
|
||
The main priority for Databasus is simplicity, right now this is
|
||
the easiest tool to backup PostgreSQL in the world. To make
|
||
backups, you need to follow 4 steps. After that, you will be able
|
||
to restore in one click
|
||
</p>
|
||
</div>
|
||
|
||
{/* Steps */}
|
||
<div className="space-y-6 md:space-y-10 max-w-[1000px] mx-auto">
|
||
{/* Step 1 */}
|
||
<div className="flex flex-col lg:flex-row gap-4 md:gap-8 items-start rounded-lg border border-[#ffffff20] p-4 md:p-6">
|
||
<span className="px-3 py-1 rounded-lg bg-white text-black font-medium text-sm shrink-0">
|
||
Step 1
|
||
</span>
|
||
|
||
<div className="w-full lg:w-[400px] lg:shrink-0">
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3">
|
||
Select required schedule
|
||
</h3>
|
||
|
||
<div className="space-y-3 max-w-[370px] text-gray-400 text-sm md:text-base">
|
||
<p>
|
||
You can choose any time you need: daily, weekly, monthly,
|
||
particular time (like 4 AM) and cron cycles
|
||
</p>
|
||
<p>
|
||
For week interval you need to specify particular day, for
|
||
month you need to specify particular day
|
||
</p>
|
||
<p>
|
||
If your database is large, we recommend you choosing the
|
||
time when there are decrease in traffic
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="flex-1 w-full lg:pl-10">
|
||
<img
|
||
src="/images/index/backup-step-1.svg"
|
||
alt="Step 1"
|
||
className="w-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Step 2 */}
|
||
<div className="flex flex-col lg:flex-row gap-4 md:gap-8 items-start rounded-lg border border-[#ffffff20] p-4 md:p-6">
|
||
<span className="px-3 py-1 rounded-lg bg-white text-black font-medium text-sm shrink-0">
|
||
Step 2
|
||
</span>
|
||
|
||
<div className="w-full lg:w-[400px] lg:shrink-0">
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3">
|
||
Enter your database info
|
||
</h3>
|
||
|
||
<div className="space-y-3 max-w-[370px] text-gray-400 text-sm md:text-base">
|
||
<p>
|
||
Enter credentials of your PostgreSQL database, select
|
||
version and target DB. Also choose whether SSL is required
|
||
</p>
|
||
<p>
|
||
Databasus, 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)
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="flex-1 w-full lg:pl-10">
|
||
<img
|
||
src="/images/index/backup-step-2.svg"
|
||
alt="Step 2"
|
||
className="w-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Step 3 */}
|
||
<div className="flex flex-col lg:flex-row gap-4 md:gap-8 items-start rounded-lg border border-[#ffffff20] p-4 md:p-6">
|
||
<span className="px-3 py-1 rounded-lg bg-white text-black font-medium text-sm shrink-0">
|
||
Step 3
|
||
</span>
|
||
|
||
<div className="w-full lg:w-[400px] lg:shrink-0">
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3">
|
||
Choose storage for backups
|
||
</h3>
|
||
|
||
<div className="space-y-3 max-w-[370px] text-gray-400 text-sm md:text-base">
|
||
<p>
|
||
You can keep files with backups locally, in S3, in Google
|
||
Drive, NAS, Dropbox and other services
|
||
</p>
|
||
<p>
|
||
Please keep in mind that you need to have enough space on
|
||
the storage
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="flex-1 w-full lg:pl-10">
|
||
<img
|
||
src="/images/index/backup-step-3.svg"
|
||
alt="Step 3"
|
||
className="w-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
|
||
{/* Step 4 */}
|
||
<div className="flex flex-col lg:flex-row gap-4 md:gap-8 items-start rounded-lg border border-[#ffffff20] p-4 md:p-6">
|
||
<span className="px-3 py-1 rounded-lg bg-white text-black font-medium text-sm shrink-0">
|
||
Step 4
|
||
</span>
|
||
|
||
<div className="w-full lg:w-[400px] lg:shrink-0">
|
||
<h3 className="text-lg md:text-xl 2xl:text-2xl font-bold mb-3">
|
||
Choose where you want to receive notifications (optional)
|
||
</h3>
|
||
|
||
<div className="space-y-3 max-w-[370px] text-gray-400 text-sm md:text-base">
|
||
<p>
|
||
When backup succeed or failed, Databasus is able to send you
|
||
notification. It can be chat with DevOps, your emails or
|
||
even webhook of your team
|
||
</p>
|
||
<p>
|
||
We are going to support the most of popular messangers and
|
||
platforms
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="flex-1 w-full lg:pl-10">
|
||
<img
|
||
src="/images/index/backup-step-4.svg"
|
||
alt="Step 4"
|
||
className="w-full"
|
||
loading="lazy"
|
||
/>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
{/* CTA Button */}
|
||
<div className="text-center mt-8 md:mt-12">
|
||
<a
|
||
href="#installation"
|
||
className="inline-flex items-center gap-2 px-6 py-3 bg-white text-black rounded-lg text-[15px] font-medium hover:opacity-70 transition-colors"
|
||
>
|
||
Get started
|
||
<svg
|
||
aria-hidden={true}
|
||
width="18"
|
||
height="18"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="currentColor"
|
||
strokeWidth="2"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
>
|
||
<path d="M5 12h14M12 5l7 7-7 7" />
|
||
</svg>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{/* INSTALLATION SECTION */}
|
||
<section id="installation" className="px-4 md:px-6 lg:px-0">
|
||
<div className="max-w-[1000px] 2xl:max-w-[1200px] mx-auto border border-[#ffffff20] rounded-xl py-10 md:py-20 px-4 md:px-6">
|
||
<div className="max-w-[1100px] mx-auto">
|
||
<div className="text-center mb-8 md:mb-10">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">Get started</span>
|
||
</div>
|
||
|
||
<h2 className="text-3xl md:text-4xl lg:text-5xl font-bold mb-4 md:mb-6">
|
||
How to install?
|
||
</h2>
|
||
|
||
<p className="text-sm sm:text-base md:text-lg text-gray-200 max-w-[550px] mx-auto">
|
||
Databasus support many ways of installation. Both local and
|
||
cloud are supported. Both ways are extremely simple and easy to
|
||
use even for those who has no experience in administration or
|
||
DevOps
|
||
</p>
|
||
</div>
|
||
|
||
<InstallationComponent />
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{/* FAQ SECTION */}
|
||
<section id="faq" className="py-12 md:py-20 px-4 md:px-6 lg:px-0">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="text-center mb-8 md:mb-12">
|
||
<div className="inline-flex items-center justify-center px-3 md:px-4 py-1 md:py-1.5 rounded-lg border border-[#ffffff20] mb-4 md:mb-6">
|
||
<span className="text-sm font-medium">FAQ</span>
|
||
</div>
|
||
|
||
<h2 className="text-3xl md:text-4xl lg:text-5xl font-bold mb-4 md:mb-6">
|
||
Frequent questions
|
||
</h2>
|
||
|
||
<p className="text-base md:text-lg text-gray-200 max-w-[600px] mx-auto">
|
||
The goal of Databasus — 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
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8">
|
||
<FaqItem
|
||
number="1"
|
||
question="What is Databasus and why should I use it instead of hand-rolled scripts?"
|
||
answer="Databasus is an Apache 2.0 licensed, self-hosted service backing up databases. 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, SFTP, rclone, etc.), configuring retention policies to automatically prune old backups and notifying your team when tasks finish or fail — all without hand-rolled code"
|
||
/>
|
||
<FaqItem
|
||
number="2"
|
||
question="How do I install Databasus in the quickest manner?"
|
||
answer="Databasus supports multiple installation methods: automated script, Docker, Docker Compose and Kubernetes with Helm. The quickest route is to run the one-line cURL installer, which fetches the current Docker image, creates a docker-compose.yml and boots up the service so it will automatically restart on reboots. For Kubernetes environments, use the official Helm chart for production-ready deployments. Overall time is usually less than two minutes on a typical VPS."
|
||
/>
|
||
<FaqItem
|
||
number="3"
|
||
question="What backup schedules can I schedule?"
|
||
answer="You can choose from hourly, daily, weekly, monthly or cron 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. You can also configure retention policies to automatically clean up old backups — by time period, count, size limit or GFS (Grandfather-Father-Son), the latter being popular for enterprise compliance."
|
||
/>
|
||
<FaqItem
|
||
number="4"
|
||
question="How does Databasus ensure security?"
|
||
answer="Databasus enforces security on three levels: (1) Sensitive data encryption — all passwords, tokens and credentials are encrypted with AES-256-GCM and stored separately from the database; (2) Backup encryption — each backup file is encrypted with a unique key derived from a master key, backup ID and random salt, making backups useless without your encryption key even if someone gains storage access; (3) Read-only database access — Databasus only requires SELECT permissions and performs comprehensive checks to ensure no write privileges exist, preventing data corruption even if the tool is compromised."
|
||
/>
|
||
<FaqItem
|
||
number="5"
|
||
question="How do I set up and run my first backup job in Databasus?"
|
||
answer={
|
||
<>
|
||
To start your very first Databasus backup, simply log in to
|
||
the dashboard, click on New Backup, select an interval —
|
||
hourly, daily, weekly, monthly or cron. Then specify the exact
|
||
run time (e.g., 02:30 for off-peak hours).
|
||
<br />
|
||
<br />
|
||
Then input your PostgreSQL host, port number, database name,
|
||
credentials and SSL preference. Choose where the archive
|
||
should be sent (local path, S3 bucket, Google Drive folder,
|
||
Dropbox, etc.). <br />
|
||
<br />
|
||
If you need, add notification channels such as email, Slack,
|
||
Telegram or a webhook and click Save. Databasus 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.
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="6"
|
||
question="How does PostgreSQL monitoring work?"
|
||
answer="Databasus 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."
|
||
/>
|
||
<FaqItem
|
||
number="7"
|
||
question="Who is Databasus suitable for?"
|
||
answer="Databasus is designed for single developers, DevOps teams, organizations, startups, system administrators and IT departments who need reliable databases backups. Whether you're managing personal projects or production databases, Databasus provides enterprise-grade backup capabilities with a simple, intuitive interface."
|
||
/>
|
||
<FaqItem
|
||
number="8"
|
||
question="How is Databasus different from PgBackRest, Barman or pg_dump? Where can I read comparisons?"
|
||
answer={
|
||
<>
|
||
Databasus prefers simplicity — it provides a modern web
|
||
interface to manage backups for many databases at once,
|
||
instead of complex configuration files and command-line tools.
|
||
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.
|
||
<br />
|
||
<br />
|
||
At the same time, Databasus also works in agent mode — similar
|
||
to WAL-G or pgBackRest — for disaster recovery with WAL
|
||
archiving and Point-in-Time Recovery. The agent connects from
|
||
closed networks to the Databasus instance, so databases that
|
||
are not publicly exposed can still be backed up and managed
|
||
from a single dashboard.
|
||
<br />
|
||
<br />
|
||
We have detailed comparison pages for popular backup tools:{" "}
|
||
<a
|
||
href="/pgdump-alternative"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Databasus vs pg_dump
|
||
</a>
|
||
,{" "}
|
||
<a
|
||
href="/databasus-vs-pgbackrest"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Databasus vs pgBackRest
|
||
</a>
|
||
,{" "}
|
||
<a
|
||
href="/databasus-vs-barman"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Databasus vs Barman
|
||
</a>
|
||
,{" "}
|
||
<a
|
||
href="/databasus-vs-wal-g"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Databasus vs WAL-G
|
||
</a>{" "}
|
||
and{" "}
|
||
<a
|
||
href="/databasus-vs-pgbackweb"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Databasus vs pgBackWeb
|
||
</a>
|
||
. Each comparison explains the key differences, pros and cons,
|
||
and helps you choose the right tool for your needs.
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="9"
|
||
question="Is Databasus supported by Anthropic and OpenAI OSS programs?"
|
||
answer={
|
||
<>
|
||
Yes, we are proud that Databasus has been recognized as a
|
||
valuable open-source project by two of the world's
|
||
leading AI companies. In March 2026, Databasus was accepted
|
||
into both{" "}
|
||
<a
|
||
href="https://claude.com/contact-sales/claude-for-oss"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Claude for Open Source
|
||
</a>{" "}
|
||
by Anthropic and{" "}
|
||
<a
|
||
href="https://developers.openai.com/codex/community/codex-for-oss/"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Codex for Open Source
|
||
</a>{" "}
|
||
by OpenAI. This is an independent reliability confirmation for
|
||
us that the project has been evaluated and recognized as
|
||
critical infrastructure worth supporting.{" "}
|
||
<a
|
||
href="/faq#oss-programs"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
Read more →
|
||
</a>
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="10"
|
||
question="Is Databasus an alternative to pg_dump?"
|
||
answer="For logical backups, yes — Databasus is a modern replacement for pg_dump. It extends pg_dump with a user-friendly web interface, automated scheduling, multiple storage destinations, real-time notifications, health monitoring and backup encryption. Think of it as pg_dump with superpowers — all the reliability plus enterprise features without writing shell scripts. Beyond logical backups, Databasus also supports agent mode where physical backups with WAL archiving are used for disaster recovery scenarios, providing incremental backups and Point-in-Time Recovery."
|
||
/>
|
||
<FaqItem
|
||
number="11"
|
||
question="Which databases does Databasus support?"
|
||
answer="Databasus supports PostgreSQL, MySQL, MariaDB and MongoDB. However, Databasus was originally created specifically for PostgreSQL and maintains its primary focus on it — providing 100% excellent support and maximum efficiency for PostgreSQL backups. While MySQL, MariaDB and MongoDB are fully supported, PostgreSQL remains the core priority with the most optimized features and ongoing development."
|
||
/>
|
||
<FaqItem
|
||
number="12"
|
||
question="What backup types does Databasus support?"
|
||
answer={
|
||
<>
|
||
Databasus supports logical, physical, WAL archiving and
|
||
Point-in-Time Recovery (PITR) — so it suits both those who
|
||
want simple remote backups and those who need a solid disaster
|
||
recovery tool.
|
||
<br />
|
||
<br />
|
||
<strong>Remote mode</strong> — Databasus connects to the
|
||
database over the network and performs logical backups (like
|
||
pg_dump). No agent or additional software required. Ideal for
|
||
cloud-managed and publicly accessible databases.
|
||
<br />
|
||
<br />
|
||
<strong>Agent mode</strong> — a lightweight agent runs
|
||
alongside the database and connects to the Databasus instance.
|
||
This enables physical backups with continuous WAL archiving
|
||
and PITR — designed for disaster recovery and near-zero data
|
||
loss. The agent streams backups directly to Databasus, so the
|
||
database never needs to be exposed publicly.
|
||
<br />
|
||
<br />
|
||
Because the agent connects to the Databasus instance, you can
|
||
manage incremental backups for many databases from a single
|
||
dashboard — unlike standalone tools like WAL-G or pgBackRest
|
||
where each database is managed separately.
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="13"
|
||
question="Why was Postgresus renamed to Databasus?"
|
||
answer={
|
||
<>
|
||
Databasus has been developed since 2023. It was internal tool
|
||
to backup production and home projects databases. In start of
|
||
2025 it was released as open source project on GitHub. By the
|
||
end of 2025 it became popular and the time for renaming has
|
||
come in December 2025.
|
||
<br />
|
||
The renaming from Postgresus to Databasus was an important
|
||
step for the project's growth. There are several reasons:
|
||
<ol className="list-decimal list-inside mt-3 space-y-2">
|
||
<li>
|
||
<strong>Project evolution</strong> — Postgresus is no
|
||
longer a small tool that just adds UI for pg_dump. It
|
||
became a reliable backup management system for individual
|
||
users, DevOps, DBAs, teams and enterprises. Tens of
|
||
thousands of users use it daily. The initial positioning
|
||
is no longer suitable — it's not just a UI wrapper,
|
||
it's a solid backup management system now
|
||
</li>
|
||
<li>
|
||
<strong>Multiple databases support</strong> — while the
|
||
primary focus remains PostgreSQL (with 100% support in the
|
||
most efficient way), the project now supports MySQL,
|
||
MariaDB and MongoDB. More databases will be supported in
|
||
the future
|
||
</li>
|
||
<li>
|
||
<strong>Trademark compliance</strong> —
|
||
"postgres" is a trademark of PostgreSQL Inc. and
|
||
cannot be used in project names. For legal safety and
|
||
compliance, renaming was necessary
|
||
</li>
|
||
</ol>
|
||
<br />
|
||
If you're currently using Postgresus, you can continue
|
||
using it or migrate to Databasus following the installation
|
||
steps. Note that simply renaming the image isn't enough,
|
||
as they use different data folders and internal database
|
||
naming.
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="14"
|
||
question="How is AI used in Databasus development?"
|
||
answer={
|
||
<>
|
||
There have been questions about AI usage in project
|
||
development. As the project focuses on security, reliability
|
||
and production usage, we want to be transparent about how AI
|
||
is used in the development process.
|
||
<br />
|
||
<br />
|
||
AI is used as a helper for code quality verification,
|
||
documentation improvement and assistance during development.
|
||
AI is NOT used for writing entire code or code without tests.
|
||
The project has solid test coverage, CI/CD automation and
|
||
verification by experienced developers.
|
||
<br />
|
||
<br />
|
||
For detailed information about AI usage, development process
|
||
and security measures, please visit our{" "}
|
||
<a
|
||
href="/faq#ai-usage"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
dedicated FAQ page
|
||
</a>
|
||
.
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="15"
|
||
question="How can I join the Databasus community?"
|
||
answer={
|
||
<>
|
||
You can join our large community of developers, DBAs and
|
||
DevOps engineers at{" "}
|
||
<a
|
||
href="https://t.me/databasus_community"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
t.me/databasus_community
|
||
</a>
|
||
. The community is a great place to ask questions, share
|
||
experiences, get help with configuration and stay updated with
|
||
the latest features and releases.
|
||
</>
|
||
}
|
||
/>
|
||
<FaqItem
|
||
number="16"
|
||
question="Can I restore backups without Databasus?"
|
||
answer={
|
||
<>
|
||
Yes! You can restore backups directly from storage (like S3,
|
||
Google Drive, etc.) without Databasus itself. There is no
|
||
vendor lock-in, even on this open source tool. With just your{" "}
|
||
<code>secret.key</code> file, you can decrypt and restore any
|
||
backup manually using standard database tools.
|
||
<br />
|
||
<br />
|
||
This means if your Databasus instance is unavailable or you
|
||
lose access to it, your backups remain fully recoverable. See
|
||
our{" "}
|
||
<a
|
||
href="/how-to-recover-without-databasus"
|
||
className="text-blue-400 hover:text-blue-600"
|
||
>
|
||
manual recovery guide
|
||
</a>{" "}
|
||
for detailed step-by-step instructions on how to decrypt and
|
||
restore backups without Databasus.
|
||
</>
|
||
}
|
||
/>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
{/* FOOTER */}
|
||
<footer className="py-8 md:py-12 border-t border-[#ffffff20] px-4 md:px-6 lg:px-0">
|
||
<div className="mx-auto w-full max-w-[1000px] 2xl:max-w-[1200px]">
|
||
<div className="flex flex-col items-center">
|
||
<a href="/" className="flex items-center gap-2.5 mb-6">
|
||
<img
|
||
src="/logo.svg"
|
||
alt="Databasus logo"
|
||
width={32}
|
||
height={32}
|
||
className="h-7 w-7 md:h-8 md:w-8"
|
||
/>
|
||
|
||
<span className="text-base md:text-lg font-semibold">
|
||
Databasus
|
||
</span>
|
||
</a>
|
||
|
||
<div className="flex flex-col gap-3 mb-4 text-sm md:text-base">
|
||
{/* First row - Database backup links */}
|
||
<div className="flex flex-wrap items-center justify-center gap-4 md:gap-6">
|
||
<a href="/" className="hover:text-gray-200 transition-colors">
|
||
PostgreSQL backup
|
||
</a>
|
||
<a
|
||
href="/mysql-backup"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
MySQL and MariaDB backup
|
||
</a>
|
||
<a
|
||
href="/mongodb-backup"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
MongoDB backup
|
||
</a>
|
||
</div>
|
||
|
||
{/* Second row - General links */}
|
||
<div className="flex flex-wrap items-center justify-center gap-4 md:gap-6">
|
||
<a
|
||
href="/installation"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
Documentation
|
||
</a>
|
||
<a
|
||
href="/privacy"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
Privacy
|
||
</a>
|
||
<a
|
||
href="https://github.com/databasus/databasus"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
GitHub
|
||
</a>
|
||
<a
|
||
href="https://t.me/databasus_community"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
Community
|
||
</a>
|
||
<a
|
||
href="https://rostislav-dugin.com"
|
||
target="_blank"
|
||
rel="noopener noreferrer"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
Developer
|
||
</a>
|
||
</div>
|
||
|
||
{/* Third row - Cloud legal links */}
|
||
<div className="flex flex-wrap items-center justify-center gap-4 md:gap-6">
|
||
<a
|
||
href="/privacy-cloud"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
Privacy policy (cloud)
|
||
</a>
|
||
<a
|
||
href="/terms-of-use-cloud"
|
||
className="hover:text-gray-200 transition-colors"
|
||
>
|
||
Terms of use (cloud)
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<a
|
||
href="mailto:info@databasus.com"
|
||
className="hover:text-gray-200 transition-colors text-sm md:text-base mb-4"
|
||
>
|
||
info@databasus.com
|
||
</a>
|
||
|
||
<p className="text-gray-400 text-sm md:text-base text-center">
|
||
© 2026 Databasus. All rights reserved.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function FaqItem({
|
||
number,
|
||
question,
|
||
answer,
|
||
}: {
|
||
number: string;
|
||
question: string;
|
||
answer: React.ReactNode;
|
||
}) {
|
||
return (
|
||
<div className="rounded-lg border border-[#ffffff20] p-4 md:p-6">
|
||
<div className="flex items-center justify-center w-6 h-6 rounded border border-[#ffffff20] text-sm font-semibold mb-3 md:mb-4">
|
||
{number}
|
||
</div>
|
||
|
||
<h3 className="text-base md:text-lg font-bold mb-2 md:mb-3">
|
||
{question}
|
||
</h3>
|
||
|
||
<div className="text-gray-400 text-sm md:text-base">{answer}</div>
|
||
</div>
|
||
);
|
||
}
|