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.11.0.tar.gz (28.9 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.11.0-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: clidbs-4.11.0.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for clidbs-4.11.0.tar.gz
Algorithm Hash digest
SHA256 b1d080036270d41e45e6768ab5883a5d94a08fbb3696b0faac7247b0b3a76deb
MD5 89f0ab50b78a4b698bc8f5222fe019f8
BLAKE2b-256 4f759b5cb207ae0acdd3430da97bc67cdb57b759c129fcca5d27d4f8a5576092

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clidbs-4.11.0-py3-none-any.whl
  • Upload date:
  • Size: 32.9 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.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62c590c6d06c7067afe523c3f549250df37985b538171554a9ff27be57c55f32
MD5 72ee4dd85c7a9d578c88b9c35fd1a597
BLAKE2b-256 92f88c21e1bc861e33bff6338bed773fd80abf8a3769cb12999e2a21947dd740

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