Skip to content

rafa-mori/gdbase

GDBASE Banner

Go License: MIT Automation Releases Build


Modular, scalable, and automatic database management for modern systems.


Table of Contents

  1. About the Project
  2. Features
  3. Installation
  4. Usage
  5. Roadmap
  6. Contributing
  7. Contact

About the Project

GDBASE is a database management solution developed in Go, designed to be modular, scalable, and automatic. It allows zero-configuration by default, but supports advanced customizations via configuration files. It manages local databases, Docker, and multiple databases simultaneously, making it ideal for distributed systems.


Features

Dynamic and automatic configuration

  • Randomly generated passwords stored in the keyring.
  • Automatically adjusts for occupied ports.

🗄️ Multi-DB support

  • Redis, RabbitMQ, MongoDB, PostgreSQL, and SQLite ready to use.

🏗️ Modular architecture

  • Models follow the Model → Repo → Service pattern.
  • Ensures modularity and organization.

🔐 SSH tunnel for external databases

  • gdbase ssh tunnel securely connects to remote databases via SSH.

⚙️ Docker orchestration

  • Automatic container generation for portability and easy deployment.

📡 Monitoring and events

  • Event bus for internal action tracking.

Installation

Requirements:

  • Go 1.19+
  • Docker (for containerized databases)

Clone the repository and build:

# Clone the repository
git clone https://github.com/rafa-mori/gdbase.git
cd gdbase
go build -o gdbase .

Usage

CLI

Start the main server:

./gdbase start

See all available commands:

./gdbase --help

Main commands:

Command Function
start Initializes gdbase and sets up all services
status Shows status of active databases
config Creates a configuration file for customization
ssh tunnel Creates a secure tunnel for external DBs via SSH
docker Manages Docker containers for databases

Project Structure

The core implementation follows a clear and modular architecture:

./
├── cmd
│   ├── cli
│   ├── gen_models.go
│   ├── models.go
│   ├── main.go
│   ├── usage.go
│   └── wrpr.go
├── docs
│   └── assets
├── go.mod
├── go.sum
├── internal
│   ├── events
│   ├── models
│   └── services
├── tests
└── version

Configuration

GDBASE can run without any initial configuration, but supports customization via YAML/JSON files. By default, everything is generated automatically on first use.

Example configuration:

postgres:
  host: localhost
  port: 5432
  user: gdbase
  password: secure
redis:
  host: localhost
  port: 6379

Roadmap

  • Dynamic and automatic configuration
  • Multi-DB support (Redis, RabbitMQ, MongoDB, PostgreSQL, SQLite)
  • Integrated SSH tunnel
  • Docker orchestration
  • Plugins for new databases
  • Web dashboard for monitoring

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests. See the Contribution Guide for more details.


Contact

💌 Developer:
Rafael Mori
💼 Follow me on GitHub
I'm open to collaborations and new ideas. If you found the project interesting, get in touch!


Made with care by the Mori family! ❤️

About

Modular, scalable, and automatic database management for modern systems.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •