{"id":34866394,"url":"https://github.com/databasus/databasus","last_synced_at":"2026-04-01T21:40:26.186Z","repository":{"id":297444817,"uuid":"996785011","full_name":"databasus/databasus","owner":"databasus","description":"Databases backup tool (PostgreSQL, MySQL, MongoDB)","archived":false,"fork":false,"pushed_at":"2026-01-16T07:27:23.000Z","size":77031,"stargazers_count":4888,"open_issues_count":2,"forks_count":231,"subscribers_count":15,"default_branch":"main","last_synced_at":"2026-01-16T23:53:20.208Z","etag":null,"topics":["backup","backups","database","database-backup","devops","docker","golang","kubernetes","mariadb","mongodb","mysql","pg","postgres","postgresql","s3","self-hosted","system-administration","tools","web-ui"],"latest_commit_sha":null,"homepage":"https://databasus.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/databasus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-06-05T13:10:03.000Z","updated_at":"2026-01-16T21:44:32.000Z","dependencies_parsed_at":"2025-06-25T07:33:45.439Z","dependency_job_id":"3bd0dcbb-b2e0-4457-aeeb-a8d48adb24ff","html_url":"https://github.com/databasus/databasus","commit_stats":null,"previous_names":["rostislavdugin/postgresus","databasus/databasus"],"tags_count":148,"template":false,"template_full_name":null,"purl":"pkg:github/databasus/databasus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databasus%2Fdatabasus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databasus%2Fdatabasus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databasus%2Fdatabasus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databasus%2Fdatabasus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/databasus","download_url":"https://codeload.github.com/databasus/databasus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databasus%2Fdatabasus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28538868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","backups","database","database-backup","devops","docker","golang","kubernetes","mariadb","mongodb","mysql","pg","postgres","postgresql","s3","self-hosted","system-administration","tools","web-ui"],"created_at":"2025-12-25T22:31:38.260Z","updated_at":"2026-04-01T21:40:26.171Z","avatar_url":"https://github.com/databasus.png","language":"Go","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.svg\" alt=\"Databasus Logo\" width=\"250\"/\u003e\n\n  \u003ch3\u003ePostgreSQL backup tool (with MySQL\\MariaDB and MongoDB support)\u003c/h3\u003e\n  \u003cp\u003eDatabasus is a free, open source and self-hosted tool to backup databases (with primary focus on PostgreSQL). Make backups with different storages (S3, Google Drive, FTP, etc.) and notifications about progress (Slack, Discord, Telegram, etc.)\u003c/p\u003e\n  \n  \u003c!-- Badges --\u003e\n   [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?logo=postgresql\u0026logoColor=white)](https://www.postgresql.org/)\n  [![MySQL](https://img.shields.io/badge/MySQL-4479A1?logo=mysql\u0026logoColor=white)](https://www.mysql.com/)\n  [![MariaDB](https://img.shields.io/badge/MariaDB-003545?logo=mariadb\u0026logoColor=white)](https://mariadb.org/)\n  [![MongoDB](https://img.shields.io/badge/MongoDB-47A248?logo=mongodb\u0026logoColor=white)](https://www.mongodb.com/)\n  \u003cbr /\u003e\n  [![Apache 2.0 License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n  [![Docker Pulls](https://img.shields.io/docker/pulls/databasus/databasus?color=brightgreen)](https://hub.docker.com/r/databasus/databasus)\n  [![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-lightgrey)](https://github.com/databasus/databasus)\n  [![Self Hosted](https://img.shields.io/badge/self--hosted-yes-brightgreen)](https://github.com/databasus/databasus)\n  [![Open Source](https://img.shields.io/badge/open%20source-❤️-red)](https://github.com/databasus/databasus)\n\n  \u003cp\u003e\n    \u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e •\n    \u003ca href=\"#-installation\"\u003eInstallation\u003c/a\u003e •\n    \u003ca href=\"#-usage\"\u003eUsage\u003c/a\u003e •\n    \u003ca href=\"#-license\"\u003eLicense\u003c/a\u003e •\n    \u003ca href=\"#-contributing\"\u003eContributing\u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp style=\"margin-top: 20px; margin-bottom: 20px; font-size: 1.2em;\"\u003e\n    \u003ca href=\"https://databasus.com\" target=\"_blank\"\u003e\u003cstrong\u003e🌐 Databasus website\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \n  \u003cimg src=\"assets/dashboard-dark.svg\" alt=\"Databasus Dark Dashboard\" width=\"800\" style=\"margin-bottom: 10px;\"/\u003e\n\n  \u003cimg src=\"assets/dashboard.svg\" alt=\"Databasus Dashboard\" width=\"800\"/\u003e\n\u003c/div\u003e\n\n---\n\n## ✨ Features\n\n### 💾 **Supported databases**\n\n- **PostgreSQL**: 12, 13, 14, 15, 16, 17 and 18\n- **MySQL**: 5.7, 8 and 9\n- **MariaDB**: 10, 11 and 12\n- **MongoDB**: 4, 5, 6, 7 and 8\n\n### 🔄 **Scheduled backups**\n\n- **Flexible scheduling**: hourly, daily, weekly, monthly or cron\n- **Precise timing**: run backups at specific times (e.g., 4 AM during low traffic)\n- **Smart compression**: 4-8x space savings with balanced compression (~20% overhead)\n\n### 🗑️ **Retention policies**\n\n- **Time period**: Keep backups for a fixed duration (e.g., 7 days, 3 months, 1 year)\n- **Count**: Keep a fixed number of the most recent backups (e.g., last 30)\n- **GFS (Grandfather-Father-Son)**: Layered retention — keep hourly, daily, weekly, monthly and yearly backups independently for fine-grained long-term history (enterprises requirement)\n- **Size limits**: Set per-backup and total storage size caps to control storage usage\n\n### 🗄️ **Multiple storage destinations** \u003ca href=\"https://databasus.com/storages\"\u003e(view supported)\u003c/a\u003e\n\n- **Local storage**: Keep backups on your VPS/server\n- **Cloud storage**: S3, Cloudflare R2, Google Drive, NAS, Dropbox, SFTP, Rclone and more\n- **Secure**: All data stays under your control\n\n### 📱 **Smart notifications** \u003ca href=\"https://databasus.com/notifiers\"\u003e(view supported)\u003c/a\u003e\n\n- **Multiple channels**: Email, Telegram, Slack, Discord, webhooks\n- **Real-time updates**: Success and failure notifications\n- **Team integration**: Perfect for DevOps workflows\n\n### 🔒 **Enterprise-grade security** \u003ca href=\"https://databasus.com/security\"\u003e(docs)\u003c/a\u003e\n\n- **AES-256-GCM encryption**: Enterprise-grade protection for backup files\n- **Zero-trust storage**: Backups are encrypted and remain useless to attackers, so you can safely store them in shared storage like S3, Azure Blob Storage, etc.\n- **Encryption for secrets**: Any sensitive data is encrypted and never exposed, even in logs or error messages\n- **Read-only user**: Databasus uses a read-only user by default for backups and never stores anything that can modify your data\n\nIt is also important for Databasus that you are able to decrypt and restore backups from storages (local, S3, etc.) without Databasus itself. To do so, read our guide on [how to recover directly from storage](https://databasus.com/how-to-recover-without-databasus). We avoid \"vendor lock-in\" even to open source tool!\n\n### 👥 **Suitable for teams** \u003ca href=\"https://databasus.com/access-management\"\u003e(docs)\u003c/a\u003e\n\n- **Workspaces**: Group databases, notifiers and storages for different projects or teams\n- **Access management**: Control who can view or manage specific databases with role-based permissions\n- **Audit logs**: Track all system activities and changes made by users\n- **User roles**: Assign viewer, member, admin or owner roles within workspaces\n\n### 🎨 **UX-Friendly**\n\n- **Designer-polished UI**: Clean, intuitive interface crafted with attention to detail\n- **Dark \u0026 light themes**: Choose the look that suits your workflow\n- **Mobile adaptive**: Check your backups from anywhere on any device\n\n### 🔌 **Connection types**\n\n- **Remote** — Databasus connects directly to the database over the network (recommended in read-only mode). No agent or additional software required. Works with cloud-managed and self-hosted databases\n- **Agent** — A lightweight Databasus agent (written in Go) runs alongside the database. The agent streams backups directly to Databasus, so the database never needs to be exposed publicly. Supports host-installed databases and Docker containers\n\n### 📦 **Backup types**\n\n- **Logical** — Native dump of the database in its engine-specific binary format. Compressed and streamed directly to storage with no intermediate files\n- **Physical** — File-level copy of the entire database cluster. Faster backup and restore for large datasets compared to logical dumps\n- **Incremental** — Physical base backup combined with continuous WAL segment archiving. Enables Point-in-time recovery (PITR) — restore to any second between backups. Designed for disaster recovery and near-zero data loss requirements\n\n### 🐳 **Self-hosted \u0026 secure**\n\n- **Docker-based**: Easy deployment and management\n- **Privacy-first**: All your data stays on your infrastructure\n- **Open source**: Apache 2.0 licensed, inspect every line of code\n\n### 📦 Installation \u003ca href=\"https://databasus.com/installation\"\u003e(docs)\u003c/a\u003e\n\nYou have four ways to install Databasus:\n\n- Automated script (recommended)\n- Simple Docker run\n- Docker Compose setup\n- Kubernetes with Helm\n\n\u003cimg src=\"assets/healthchecks.svg\" alt=\"Databasus Dashboard\" width=\"800\"/\u003e\n\n---\n\n## 📦 Installation\n\nYou have four ways to install Databasus: automated script (recommended), simple Docker run, or Docker Compose setup.\n\n### Option 1: Automated installation script (recommended, Linux only)\n\nThe installation script will:\n\n- ✅ Install Docker with Docker Compose (if not already installed)\n- ✅ Set up Databasus\n- ✅ Configure automatic startup on system reboot\n\n```bash\nsudo apt-get install -y curl \u0026\u0026 \\\nsudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh \\\n| sudo bash\n```\n\n### Option 2: Simple Docker run\n\nThe easiest way to run Databasus:\n\n```bash\ndocker run -d \\\n  --name databasus \\\n  -p 4005:4005 \\\n  -v ./databasus-data:/databasus-data \\\n  --restart unless-stopped \\\n  databasus/databasus:latest\n```\n\nThis single command will:\n\n- ✅ Start Databasus\n- ✅ Store all data in `./databasus-data` directory\n- ✅ Automatically restart on system reboot\n\n### Option 3: Docker Compose setup\n\nCreate a `docker-compose.yml` file with the following configuration:\n\n```yaml\nservices:\n  databasus:\n    container_name: databasus\n    image: databasus/databasus:latest\n    ports:\n      - \"4005:4005\"\n    volumes:\n      - ./databasus-data:/databasus-data\n    restart: unless-stopped\n```\n\nThen run:\n\n```bash\ndocker compose up -d\n```\n\n### Option 4: Kubernetes with Helm\n\nFor Kubernetes deployments, install directly from the OCI registry.\n\n**With ClusterIP + port-forward (development/testing):**\n\n```bash\nhelm install databasus oci://ghcr.io/databasus/charts/databasus \\\n  -n databasus --create-namespace\n```\n\n```bash\nkubectl port-forward svc/databasus-service 4005:4005 -n databasus\n# Access at http://localhost:4005\n```\n\n**With LoadBalancer (cloud environments):**\n\n```bash\nhelm install databasus oci://ghcr.io/databasus/charts/databasus \\\n  -n databasus --create-namespace \\\n  --set service.type=LoadBalancer\n```\n\n```bash\nkubectl get svc databasus-service -n databasus\n# Access at http://\u003cEXTERNAL-IP\u003e:4005\n```\n\n**With Ingress (domain-based access):**\n\n```bash\nhelm install databasus oci://ghcr.io/databasus/charts/databasus \\\n  -n databasus --create-namespace \\\n  --set ingress.enabled=true \\\n  --set ingress.hosts[0].host=backup.example.com\n```\n\nFor more options (NodePort, TLS, HTTPRoute for Gateway API), see the [Helm chart README](deploy/helm/README.md).\n\n---\n\n## 🚀 Usage\n\n1. **Access the dashboard**: Navigate to `http://localhost:4005`\n2. **Add your first database for backup**: Click \"New Database\" and follow the setup wizard\n3. **Configure schedule**: Choose from hourly, daily, weekly, monthly or cron intervals\n4. **Set database connection**: Enter your database credentials and connection details\n5. **Choose storage**: Select where to store your backups (local, S3, Google Drive, etc.)\n6. **Configure retention policy**: Choose time period, count or GFS to control how long backups are kept\n7. **Add notifications** (optional): Configure email, Telegram, Slack, or webhook notifications\n8. **Save and start**: Databasus will validate settings and begin the backup schedule\n\n### 🔑 Resetting password \u003ca href=\"https://databasus.com/password\"\u003e(docs)\u003c/a\u003e\n\nIf you need to reset the password, you can use the built-in password reset command:\n\n```bash\ndocker exec -it databasus ./main --new-password=\"YourNewSecurePassword123\" --email=\"admin\"\n```\n\nReplace `admin` with the actual email address of the user whose password you want to reset.\n\n### 💾 Backuping Databasus itself\n\nAfter installation, it is also recommended to \u003ca href=\"https://databasus.com/faq#backup-databasus\"\u003ebackup your Databasus itself\u003c/a\u003e or, at least, to copy secret key used for encryption (30 seconds is needed). So you are able to restore from your encrypted backups if you lose access to the server with Databasus or it is corrupted.\n\n---\n\n## 📝 License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details\n\n## 🤝 Contributing\n\nContributions are welcome! Read the \u003ca href=\"https://databasus.com/contribute\"\u003econtributing guide\u003c/a\u003e for more details, priorities and rules. If you want to contribute but don't know where to start, message me on Telegram [@rostislav_dugin](https://t.me/rostislav_dugin)\n\nAlso you can join our large community of developers, DBAs and DevOps engineers on Telegram [@databasus_community](https://t.me/databasus_community).\n\n## FAQ\n\n### AI disclaimer\n\nThere have been questions about AI usage in project development in issues and discussions. As the project focuses on security, reliability and production usage, it's important to explain how AI is used in the development process.\n\nFirst of all, we are proud to say that Databasus has been accepted into both [Claude for Open Source](https://claude.com/contact-sales/claude-for-oss) by Anthropic and [Codex for Open Source](https://developers.openai.com/codex/community/codex-for-oss/) by OpenAI in March 2026. For us it is one more signal that the project was recognized as important open-source software and was as critical infrastructure worth supporting independently by two of the world's leading AI companies. Read more at [databasus.com/faq](https://databasus.com/faq#oss-programs).\n\nDespite of this, we have the following rules how AI is used in the development process:\n\nAI is used as a helper for:\n\n- verification of code quality and searching for vulnerabilities\n- cleaning up and improving documentation, comments and code\n- assistance during development\n- double-checking PRs and commits after human review\n- additional security analysis of PRs via Codex Security\n\nAI is not used for:\n\n- writing entire code\n- \"vibe code\" approach\n- code without line-by-line verification by a human\n- code without tests\n\nThe project has:\n\n- solid test coverage (both unit and integration tests)\n- CI/CD pipeline automation with tests and linting to ensure code quality\n- verification by experienced developers with experience in large and secure projects\n\nSo AI is just an assistant and a tool for developers to increase productivity and ensure code quality. The work is done by developers.\n\nMoreover, it's important to note that we do not differentiate between bad human code and AI vibe code. There are strict requirements for any code to be merged to keep the codebase maintainable.\n\nEven if code is written manually by a human, it's not guaranteed to be merged. Vibe code is not allowed at all and all such PRs are rejected by default (see [contributing guide](https://databasus.com/contribute)).\n\nWe also draw attention to fast issue resolution and security [vulnerability reporting](https://github.com/databasus/databasus?tab=security-ov-file#readme).\n\n### You have a cloud version — are you truly open source?\n\nYes. Every feature available in Databasus Cloud is equally available in the self-hosted version with no restrictions, no feature gates and no usage limits. The entire codebase is Apache 2.0 licensed and always will be.\n\nDatabasus is not \"open core.\" We do not withhold features behind a paid tier and then call the limited remainder \"open source,\" as projects like GitLab or Sentry do. We believe open source means the complete product is open, not just a marketing label on a stripped-down edition.\n\nDatabasus Cloud runs the exact same code as the self-hosted version. The only difference is that we take care of infrastructure, availability, backups, reservations, monitoring and updates for you — so you don't have to. If you are using cloud, you can always move your databases from cloud to self-hosted if you wish.\n\nRevenue from Cloud funds full-time development of the project. Most large open-source projects rely on corporate backing or sponsorship to survive. We chose a different path: Databasus sustains itself so it can grow and improve independently, without being tied to any enterprise or sponsor.\n","funding_links":[],"categories":["Go","Backup"],"sub_categories":["Samples"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabasus%2Fdatabasus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatabasus%2Fdatabasus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabasus%2Fdatabasus/lists"}