Skip to main content

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

  1. Access Control

    • Use private access mode for development
    • Enable SSL for production environments
    • Regularly rotate database passwords
  2. Backup Management

    • Regular backups with descriptive labels
    • Test restore procedures periodically
    • Keep backup metadata up to date
  3. SSL/TLS

    • Use valid email for Let's Encrypt notifications
    • Keep certificates up to date
    • Verify domain ownership before SSL setup

Troubleshooting

  1. Port Conflicts

    • CLIDB automatically finds the next available port
    • Use --port to specify a different port
    • Check port availability with netstat or lsof
  2. Docker Issues

    • Run clidb install-docker to fix common problems
    • Check Docker daemon status
    • Verify user is in docker group
  3. 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clidbs-4.24.0.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clidbs-4.24.0-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file clidbs-4.24.0.tar.gz.

File metadata

  • Download URL: clidbs-4.24.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

Hashes for clidbs-4.24.0.tar.gz
Algorithm Hash digest
SHA256 f5747c4ae0742d9b5f03c9b733e972cc32cbd86731bf7a1a83249ff7ad34552b
MD5 71c91f1f229c15a1cf026b24dce89225
BLAKE2b-256 30674babe47ef4bab1e5c11b6bdccb1200f09d37bbd080e1043bd488b9c3c242

See more details on using hashes here.

File details

Details for the file clidbs-4.24.0-py3-none-any.whl.

File metadata

  • Download URL: clidbs-4.24.0-py3-none-any.whl
  • Upload date:
  • Size: 39.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for clidbs-4.24.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0e0e322ac4066068533d89b5184f1629847fd7fc46b0f26090e0fe40bab02d8
MD5 b1406f91a520f8279d864eabb4f71a38
BLAKE2b-256 89878388ee08a6cda96f346bd8bb82e85d0cb75a1fcd3c59bd7d3d29445d1d44

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page