Logo

Portabase

Free, open-source, and self-hosted solution for automated backup and restoration of your database instances.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Docker Pulls](https://img.shields.io/docker/pulls/solucetechnologies/portabase?color=brightgreen)](https://hub.docker.com/r/solucetechnologies/portabase) [![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-lightgrey)](https://github.com/RostislavDugin/postgresus) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?logo=postgresql&logoColor=white)](https://www.postgresql.org/) [![MySQL](https://img.shields.io/badge/MySQL-4479A1?logo=mysql&logoColor=white)](https://www.mysql.com/) [![MariaDB](https://img.shields.io/badge/MariaDB-003545?logo=mariadb&logoColor=white)](https://mariadb.org/) [![Self Hosted](https://img.shields.io/badge/self--hosted-yes-brightgreen)](https://github.com/RostislavDugin/postgresus)

DocumentationDemoInstallationContributingReport BugRequest Feature

![portabase-ezgif com-video-to-gif-converter](https://github.com/user-attachments/assets/e3929e58-fefd-44cc-ab26-6f8e1a860c43)
## 📚 Table of Contents - [About The Project](#about-the-project) - [Getting Started](#getting-started) - [Prerequisites](#prerequisites) - [Installation](#installation) - [Usage](#usage) - [Roadmap](#roadmap) - [Contributing](#contributing) - [License](#license) - [Contact](#contact) - [Acknowledgments](#acknowledgments) --- ## About The Project **Portabase** is a server dashboard tool designed to simplify the backup and restoration of your database instances. It integrates seamlessly with Portabase agents for managing operations securely and efficiently. GitHub Repository: [Portabase](https://github.com/Soluce-Technologies/portabase) ### 🔧 Built With - [![NextJS][NextJS]][NextJS-url] (v16 with App Router) - [![Drizzle][Drizzle]][Drizzle-url] - [![ShadcnUI][ShadcnUI]][ShadcnUI-url] - [![BetterAuth][BetterAuth]][BetterAuth-url] --- ## 🚀 Getting Started ### Prerequisites Ensure Docker is installed on your machine before getting started. ### Installation To run Portabase locally: 1. Clone the repository: ```bash git clone https://github.com/Soluce-Technologies/portabase cd portabase ``` 2. Start the development environment: ```bash docker compose up ``` --- ## 🛠️ Usage Portabase provides a dashboard to manage database instances and backups. It supports: - PostgreSQL (current) - MongoDB (coming soon) - MySQL (coming soon) You can access the dashboard at `http://localhost:3000` after starting the project. --- ## 🗺️ Roadmap - [ ] Add changelog - [ ] Enhance documentation - [ ] Implement testing procedures - [ ] Include release file - [ ] Improve security - [ ] Enhance UX/UI - [ ] Improve workspace management system - [x] Migrate to Drizzle ORM - [ ] Add multi-language support - [ ] Extend multi-database support: - [x] PostgreSQL - [ ] MongoDB - [ ] MySQL Check out [open issues](https://github.com/Soluce-Technologies/portabase/issues) for more. --- ## 🤝 Contributing Contributions are welcome and appreciated! Here's how to get started: 1. Fork the repository 2. Create a new branch: ```bash git checkout -b feature/YourFeature ``` 3. Commit your changes: ```bash git commit -m "Add YourFeature" ``` 4. Push to the branch: ```bash git push origin feature/YourFeature ``` 5. Open a pull request Give the project a ⭐ if you like it! ### Top Contributors [![Contributors](https://contrib.rocks/image?repo=Soluce-Technologies/portabase)](https://github.com/Soluce-Technologies/portabase/graphs/contributors) --- ## Developer Notes ### Environment Variables ```yml # Environment NODE_ENV=production # Database DATABASE_URL=postgresql://devuser:changeme@db:5432/devdb?schema=public # Project Info PROJECT_NAME="Portabase" PROJECT_DESCRIPTION="Portabase is a powerful database manager" PROJECT_URL=http://app.portabase.io PROJECT_SECRET= # SMTP (Email) SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASSWORD= SMTP_FROM= # Google OAuth AUTH_GOOGLE_ID= AUTH_GOOGLE_SECRET= AUTH_GOOGLE_METHOD= # S3/MinIO Configuration S3_ENDPOINT=http://app.s3.portabase.io S3_ACCESS_KEY= S3_SECRET_KEY= S3_BUCKET_NAME=portabase S3_PORT=9000 S3_USE_SSL=true # Storage Backend: 'local' or 's3' STORAGE_TYPE=local # Retention RETENTION_CRON="* * * * *" ``` ### Semantic Versioning Use the following format for Docker image versioning: ```bash major.minor.patch-rc.release # Example: 1.0.0-rc.1 major.minor.patch-rc.release-tag # Example: 1.0.0-rc.1-dev ``` --- ## 📄 License Distributed under the Apache License. See `LICENSE.txt` for more details. --- ## 📬 Contact - Killian Larcher - killian.larcher@soluce-technologies.com - Charles Gauthereau - charles.gauthereau@soluce-technologies.com - Project Link: [Portabase GitHub](https://github.com/Soluce-Technologies/portabase) --- ## 🙏 Acknowledgments Thanks to all contributors and the open-source community! --- [NextJS]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white [BetterAuth]: https://img.shields.io/badge/Better%20Auth-FFF?logo=betterauth&logoColor=000&style=for-the-badge [Drizzle]: https://img.shields.io/badge/Drizzle-111?style=for-the-badge&logo=Drizzle&logoColor=c5f74f [ShadcnUI]: https://img.shields.io/badge/shadcn/ui-000000?style=for-the-badge&logo=shadcn/ui&logoColor=white [NextJS-url]: https://nextjs.org/ [BetterAuth-url]: https://www.better-auth.com/ [Drizzle-url]: https://orm.drizzle.team/ [ShadcnUI-url]: https://ui.shadcn.com/