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.3.0.tar.gz (26.5 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.3.0-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for clidbs-4.3.0.tar.gz
Algorithm Hash digest
SHA256 1272f970ffac88d5180f953d35ae8c496fc56ee03673043a09761c7d5d9af1fd
MD5 7c65ff420cf167e15a0b16acfc93837c
BLAKE2b-256 8a80b608480a40ee120a787a499487f3b4f5e4e716cf86767c7995b29321b0fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clidbs-4.3.0-py3-none-any.whl
  • Upload date:
  • Size: 30.0 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd5abad09d5ee182505bdead9ecd6b22b422fb290c1e718826cb3703f6abf4b7
MD5 414cddedbf4516d703af1dd4e87fe034
BLAKE2b-256 079894c9ec58326d387b3b5ba314b51f1fb4b0de5293686131dca8ce7d6e371c

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