Rambo Docker Tools — CLI for docker-compose generation
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
🐳 Rambo Docker Tools (RDT)
RDT is a CLI tool for generating production-ready docker-compose.yml files in seconds. Pick a service, answer a few questions (or skip them entirely with --yes), and RDT writes the compose block, volumes, healthchecks, resource limits, and .env variables for you.
Features
- Interactive wizard — guided prompts for port, volume, credentials, and dependencies
- Script mode — fully non-interactive via flags (
--yes,--port,--volume, etc.) - 20+ service presets across 7 categories (see Available Services)
- Smart Mapping — automatically detects and links related services (e.g. pgAdmin → PostgreSQL, Grafana → Prometheus)
.env/.env.examplegeneration — credentials are written to environment files automatically- Resource limits — every service ships with sane CPU and RAM caps
- Healthchecks — databases and brokers include ready-to-use healthcheck configs
- Multi-language UI — English and Russian, switchable at any time
Available Services
| Category | Services |
|---|---|
| Relational DB | PostgreSQL, MySQL, MariaDB, MS SQL Server, Oracle |
| NoSQL / Cache | MongoDB, Redis, Valkey, Cassandra, InfluxDB |
| Search / Logging | Elasticsearch, OpenSearch |
| Message Brokers | Kafka (KRaft), RabbitMQ |
| Identity / Auth | Keycloak |
| Monitoring | Prometheus, Grafana, Zookeeper |
| Admin Tools | pgAdmin, phpMyAdmin, Kafka UI, Mongo Express |
Run rdt list at any time to see the full list with images and default ports.
Installation
Prerequisites
- Python 3.10+
- Docker & Docker Compose (required only for the
rdt upcommand)
Option 1 — pipx (recommended for CLI tools)
pipx installs CLI tools in isolated environments and makes them available system-wide — no manual venv needed.
# Install pipx if you don't have it
pip install pipx
pipx ensurepath # add pipx bin dir to PATH (restart terminal after)
# Install RDT from PyPI
pipx install rdt-rambo
# Or install directly from GitHub (no PyPI account needed)
pipx install git+https://github.com/Skr0ls/RDT.git
Option 2 — pip (inside a virtual environment)
# From PyPI
pip install rdt-rambo
# Or from GitHub
pip install git+https://github.com/Skr0ls/RDT.git
Option 3 — from source (for development)
# 1. Clone the repository
git clone https://github.com/Skr0ls/RDT.git
cd RDT
# 2. Create and activate a virtual environment
python -m venv .venv
# Windows (PowerShell)
.venv\Scripts\Activate.ps1
# macOS / Linux
source .venv/bin/activate
# 3. Install in editable mode with all dependencies
pip install -e .
Verify installation
rdt --version
rdt --help
Publishing a new release to PyPI
For maintainers only.
# 1. Install build tools
pip install build twine
# 2. Build the distribution packages
python -m build
# → creates dist/rdt_rambo-X.Y.Z.tar.gz and dist/rdt_rambo-X.Y.Z-py3-none-any.whl
# 3. Upload to PyPI
twine upload dist/*
# You will be prompted for your PyPI API token
# Or upload to TestPyPI first to verify
twine upload --repository testpypi dist/*
After upload, users can install with pipx install rdt-rambo or pip install rdt-rambo.
🖥️ Usage
Interactive mode
Run rdt with no arguments to open the interactive menu:
rdt
Use the arrow keys to navigate and Enter to confirm. The menu offers all commands described below.
Commands
rdt init — Initialize a project
Creates a base docker-compose.yml with the shared rambo-net network.
rdt init # create docker-compose.yml in the current directory
rdt init --file my-compose.yml # custom file name
rdt init --force # overwrite an existing file
rdt add <service> — Add a service
Adds a configured service block to docker-compose.yml and writes credentials to .env.
# Interactive wizard (default)
rdt add postgres
# Script mode — use all defaults, no prompts
rdt add postgres --yes
# Custom port and volume path
rdt add postgres --yes --port 5433 --volume ./data/pg
# Add Redis and declare it depends on Postgres
rdt add redis --yes --depends-on postgres
# Generate unique random passwords instead of placeholders
rdt add postgres --hardcore --yes
# Target a custom compose file
rdt add mysql --yes --file infra/docker-compose.yml
| Flag | Short | Description |
|---|---|---|
--yes |
-y |
Skip the wizard and apply defaults |
--port |
-p |
Override the default host port |
--volume |
Named volume or local path for data (e.g. ./data/pg) |
|
--depends-on |
Add a depends_on entry (repeatable) |
|
--hardcore |
Generate unique random credentials | |
--file |
-f |
Path to the compose file (default: docker-compose.yml) |
rdt list — Browse available services
Prints a table of all supported services with their category, image, and default port.
rdt list
rdt up — Start containers
A thin proxy around docker compose up.
rdt up # start in detached mode (default)
rdt up --no-detach # stream logs to stdout
rdt up --file infra/docker-compose.yml
rdt lang — Change the interface language
rdt lang # interactive language picker
rdt lang list # show current and available languages
rdt lang set en # switch to English
rdt lang set ru # switch to Russian
The language preference is stored in ~/.rdt/config.json and can also be overridden per-session with the RDT_LANG environment variable:
RDT_LANG=en rdt add postgres
🔗 Smart Mapping
When you add an admin or monitoring tool, RDT scans the existing services in your compose file and automatically suggests a connection:
| Tool | Detects & links to |
|---|---|
| pgAdmin | PostgreSQL |
| phpMyAdmin | MySQL / MariaDB |
| Mongo Express | MongoDB |
| Kafka UI | Kafka |
| Grafana | Prometheus |
In interactive mode you are asked to confirm; in --yes / script mode the first matching service is applied automatically.
📁 Generated Files
| File | Description |
|---|---|
docker-compose.yml |
Compose config with all added services |
.env |
Environment variables with actual values |
.env.example |
Safe-to-commit template with empty values |
💡 Quick Example
# Bootstrap a project with Postgres + pgAdmin
rdt init
rdt add postgres --yes --port 5432 --volume ./data/pg
rdt add pgadmin --yes
rdt up
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
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 rdt_rambo-2.0.0.tar.gz.
File metadata
- Download URL: rdt_rambo-2.0.0.tar.gz
- Upload date:
- Size: 74.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b6c0137239606306bc45501c65e20253a237a6d7eeae9c3f90f54c0f99f483f
|
|
| MD5 |
0ec98be2acc9cf4a84cd0d109f383fe7
|
|
| BLAKE2b-256 |
603a3ab4e3be92e229f8d9e750b8a77ac2eba8720ce1491628c6c60454b0196f
|
File details
Details for the file rdt_rambo-2.0.0-py3-none-any.whl.
File metadata
- Download URL: rdt_rambo-2.0.0-py3-none-any.whl
- Upload date:
- Size: 75.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19d308ba1d53ddb2e76f86c4ac12f5b945489f61ee8b95d67ca70890efab79ce
|
|
| MD5 |
be941b208d9db1af34a6a29c7cb099ee
|
|
| BLAKE2b-256 |
7cebee41e3c5f95f54cd2d6482c075c9077d435a608f893bb9ad2166a9c8a9c3
|