Modular, scalable, and automatic database management for modern systems.
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.
✨ 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.
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 .
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 |
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
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
- 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
Contributions are welcome! Feel free to open issues or submit pull requests. See the Contribution Guide for more details.
💌 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! ❤️