# Conflicts: # app/(auth)/login/page.tsx
Portabase
Free, open-source, and self-hosted solution for automated backup and restoration of your database instances.
Documentation • Demo • Installation • Contributing • Report Bug • Request Feature
📚 Table of Contents
✨ 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
🔧 Built With
🚀 Getting Started
Installation
Ensure Docker is installed on your machine before getting started.
Option 1: Docker Compose Setup
Create a docker-compose.yml file with the following configuration:
name: portabase
services:
portabase:
image: solucetechnologies/portabase:latest
env_file:
- .env
ports:
- '8887:80'
environment:
- TIME_ZONE="Europe/Paris"
volumes:
- portabase-private:/app/private
depends_on:
db:
condition: service_healthy
container_name: portabase-app
db:
image: postgres:17-alpine
ports:
- "5433:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=<your_database>
- POSTGRES_USER=<database_user>
- POSTGRES_PASSWORD=<database_password>
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U <database_user> -d <your_database>" ]
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres-data:
portabase-private:
Then run:
docker compose up -d
If you use reverse proxy like Traefik : Check this link
Option 2: Locally (Development)
- Clone the repository:
git clone https://github.com/Soluce-Technologies/portabase cd portabase - Start the development environment:
docker compose up
🛠️ Usage
Portabase provides a web dashboard to manage your database instances and backups.
It currently supports:
- PostgreSQL
- MySQL
Process
- Access the dashboard – Open
http://localhost:8887in your browser. - Sign up – Register the first user, who will automatically have the Admin role in the default workspace.
- Add your first agent – Follow this guide for setup instructions.
- Create organizations and projects – Link your databases to projects to enable backups and restores.
- Configure backup policies – Define schedules (hourly, daily, weekly, or monthly) and retention rules.
- Choose a storage provider – Select where backups will be stored (local, S3, etc.).
- Save and start – Portabase validates your configuration and starts automated backups based on your defined policies.
🗺️ Roadmap
- Add changelog
- Enhance documentation
- Implement testing procedures
- Include release file
- Improve security
- Enhance UX/UI
- Improve workspace management system
- Migrate to Drizzle ORM
- Add multi-language support
- Extend multi-database support:
- PostgreSQL
- MongoDB
- MySQL
- MariaDB
Check out open issues for more.
🤝 Contributing
Contributions are welcome and appreciated! Here's how to get started:
- Fork the repository
- Create a new branch:
git checkout -b feature/YourFeature - Commit your changes:
git commit -m "Add YourFeature" - Push to the branch:
git push origin feature/YourFeature - Open a pull request
Give the project a ⭐ if you like it!
Top Contributors
Developer Notes
Environment Variables
# 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="* * * * *"
To get more information about env variables, check that link
Semantic Versioning
Use the following format for Docker image versioning:
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
🙏 Acknowledgments
Thanks to all contributors and the open-source community!