Database Server Manager — Interactive CLI to create and manage database servers via Docker
Project description
DBMS — Database Server Manager
Interactive CLI to create and manage database servers via Docker.
Features
- Interactive wizard — step-by-step guided setup for new database servers
- Multi-database support — PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
- Docker-powered — automatically generates and manages
docker-compose.yml - Port conflict detection — suggests the next available port if the default is taken
- Persistent state — server registry stored at
~/.dbms/servers.json - Rich terminal UI — colored output, progress spinners, and summary tables
Supported Databases
| Database | Default Port | Docker Image |
|---|---|---|
| PostgreSQL | 5432 | postgres |
| MySQL | 3306 | mysql |
| MariaDB | 3307 | mariadb |
| SQL Server | 1433 | mcr.microsoft.com/mssql/server |
| Oracle | 1521 | container-registry.oracle.com/database/express |
| SQLite | — | (no Docker required) |
Requirements
- Python 3.10+
- Docker with Docker Compose (for all databases except SQLite)
Installation
Recommended — pipx (isolated, always available globally)
pipx installs CLI tools in isolated environments so they don't interfere with other packages:
pipx install dbms-cli
pip
pip install dbms-cli
From source
git clone https://github.com/your-username/dbms.git
cd dbms
pip install .
Usage
Interactive menu (no arguments)
dbms
Launches a guided menu to choose an action.
Commands
dbms create # Interactive wizard to create a new server
dbms list # List all registered servers with status
dbms start <name> # Start a database server
dbms stop <name> # Stop a database server
dbms delete <name> # Delete a server (stops container + removes files)
dbms status # Show Docker daemon status and all servers
Walkthrough — Creating a server
$ dbms create
╔══════════════════════════════════════════╗
║ DBMS — Database Server Manager ║
║ Powered by Docker ║
╚══════════════════════════════════════════╝
─────────────── Create a new database server ───────────────
? What is your server name? › my-postgres
? Select a database: › PostgreSQL
? [1/4] Docker image version? › 16
? [2/4] Host port? › 5432
? [3/4] Username? › admin
? [4/4] Database name? › my_postgres
? Password? › ••••••••
─────────────────────── Summary ────────────────────────────
Server name my-postgres
Database PostgreSQL
Image postgres:16
Port localhost:5432
Username admin
Database name my_postgres
Password ••••••••
Folder ./my-postgres/
? Proceed with this configuration? › Yes
✔ Server folder created
✔ docker-compose.yml generated
✔ Configuration saved
✔ Container started
Connection hint:
psql -h localhost -p 5432 -U admin -d my_postgres
How it works
Each server gets its own subfolder containing a generated docker-compose.yml. Starting and stopping a server runs docker compose up -d / docker compose down inside that folder. All server metadata is tracked in ~/.dbms/servers.json.
SQLite is a special case — no Docker needed, DBMS simply creates a .db file in the server folder.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dbms_cli-1.0.0.tar.gz.
File metadata
- Download URL: dbms_cli-1.0.0.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
592acf1a372328edc0b7d4a031227b3f9e9be676c0cf74330c371738fcc12861
|
|
| MD5 |
f66268f79f1853233d970108bd83bafa
|
|
| BLAKE2b-256 |
06d7a322cead267d1218ebeaa1c6ee75a73f987a1489578c82e4db31b40883eb
|
File details
Details for the file dbms_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: dbms_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eea3c22e3f98a13e1bb6f73904945db0cbbfd9c5f910c3de9e697d3af221c87d
|
|
| MD5 |
22f221353ad472c403ccafe3ad67299d
|
|
| BLAKE2b-256 |
82f34eda14a1b95afad9536738a6c7f63550eb4fe44184c8745233d2fc6766a7
|