A modern CLI tool for managing databases on VPS systems with SSL support
Project description
CLIDB
Tired of the database setup hassle? CLIDB is for developers who need instant databases for their projects. No more Docker compose files, no more configuration headaches - just one command and you're ready to code.
A powerful command-line tool for managing local development databases using Docker. Simplify your database management with features like automatic port allocation, backups, metrics monitoring, and more.
Why CLIDB?
-
🚀 Zero to Database in Seconds
clidb create myproject-db
-
😌 No More Setup Headaches
- Forget about Docker compose files
- No manual port configuration
- Automatic credential management
-
💪 Perfect for:
- Rapid prototyping
- Multiple client projects
- Testing and development
- CI/CD environments
Features
-
🗃️ Multiple Database Support
- PostgreSQL (versions 11-16)
- MySQL (8.0, 5.7)
- MariaDB (11.0, 10.11, 10.10)
- Redis (7.2, 7.0, 6.2)
- MongoDB (7.0, 6.0, 5.0)
- Neo4j (5, 4.4)
-
🔄 Automatic Port Management
- Smart port allocation for multiple instances
- Conflict resolution for occupied ports
- Public and private access modes
-
🔒 Security Features
- Automatic password generation
- SSL/TLS support with Let's Encrypt
- Secure credential storage
-
📊 Monitoring & Metrics
- Real-time performance monitoring
- CPU and memory usage
- Network and disk I/O stats
- Container health checks
-
💾 Backup & Restore
- Full database backups
- Point-in-time restoration
- Backup management with descriptions
- Automatic backup rotation
-
🔔 Notifications
- Discord integration
- Event notifications for:
- Database creation/deletion
- Start/stop events
- Backup operations
- Error alerts
Prerequisites
- Python 3.8 or higher
- Docker (can be installed using
clidb install-docker) - pip (Python package installer)
Installation
# Install using pip
pip install clidb
# Or install using pipx (recommended)
pipx install clidb
Quick Start
# Install Docker if needed
clidb install-docker
# Create a PostgreSQL database
clidb create mydb --type postgres --version 16
# List all databases
clidb list
# View database info
clidb info mydb
Usage Guide
Database Management
# Create a database
clidb create mydb --type postgres --version 16
# Create with specific port and access
clidb create mydb --type mysql --port 3306 --access private
# List all databases
clidb list
# Get connection info
clidb info mydb
# Start/stop databases
clidb start mydb
clidb stop mydb
# Remove a database
clidb remove mydb
Backup Operations
# Create a backup
clidb backup mydb --description "Pre-deployment backup"
# List all backups
clidb backups
# List backups for specific database
clidb backups --db mydb
# Restore from backup
clidb restore mydb 20240101_120000
# Delete old backup
clidb delete-backup mydb 20240101_120000
Performance Monitoring
# View current metrics
clidb metrics mydb
# Watch metrics in real-time
clidb metrics mydb --watch
SSL Configuration
# Setup SSL with automatic certificate
clidb ssl mydb example.com --email admin@example.com
# Remove SSL
clidb remove-ssl mydb example.com
# Verify domain configuration
clidb verify-domain example.com
Discord Notifications
Enable notifications by providing a webhook URL:
# Via command line
clidb create mydb --discord-webhook "https://discord.com/api/webhooks/..."
# Or via environment variable
export CLIDB_DISCORD_WEBHOOK="https://discord.com/api/webhooks/..."
Environment Variables
| Variable | Description | Default |
|---|---|---|
CLIDB_DISCORD_WEBHOOK |
Discord webhook URL for notifications | None |
CLIDB_HOST_IP |
Override auto-detected IP address | Auto-detected |
CLIDB_DEFAULT_DB |
Default database type | postgres |
CLIDB_DEFAULT_PORT |
Default starting port | Based on DB type |
File Locations
- Credentials:
~/.config/clidb/credentials.json - Backups:
~/.config/clidb/backups/ - Backup Metadata:
~/.config/clidb/backups/backup_metadata.json
Security Best Practices
-
Access Control
- Use private access mode for development
- Enable SSL for production environments
- Regularly rotate database passwords
-
Backup Management
- Regular backups with descriptive labels
- Test restore procedures periodically
- Keep backup metadata up to date
-
SSL/TLS
- Use valid email for Let's Encrypt notifications
- Keep certificates up to date
- Verify domain ownership before SSL setup
Troubleshooting
-
Port Conflicts
- CLIDB automatically finds the next available port
- Use
--portto specify a different port - Check port availability with
netstatorlsof
-
Docker Issues
- Run
clidb install-dockerto fix common problems - Check Docker daemon status
- Verify user is in docker group
- Run
-
Backup/Restore
- Ensure sufficient disk space
- Check database connection before backup
- Verify backup file permissions
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- GitHub Issues: Report a bug
- Documentation: Wiki
- Discussions: Community
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 clidbs-4.23.0.tar.gz.
File metadata
- Download URL: clidbs-4.23.0.tar.gz
- Upload date:
- Size: 32.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89309104ffd2fdbe4022802ddf4a73cf17f94a7b415277800a636fc3045e88c7
|
|
| MD5 |
30187f323edfe5c224a71378290282dc
|
|
| BLAKE2b-256 |
9b635002eaa534b7bf25e54fbc3699cdb1c00c86a1dd5d674a37562ddef25a9c
|
File details
Details for the file clidbs-4.23.0-py3-none-any.whl.
File metadata
- Download URL: clidbs-4.23.0-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4a2e2a9069ea65652d15248fd8e2013e3d6c366a18ad26bf765221e27344bfa
|
|
| MD5 |
42ef1531bcd2b0ef2e51c2dc851cf7a6
|
|
| BLAKE2b-256 |
afc70d0c80d165158ac43370a784748bab73d9a39bfd3102174ca5556ffbae91
|